在Cassandra中创建表和创建列家族有什么区别?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在Cassandra中创建表和创建列家族有什么区别?相关的知识,希望对你有一定的参考价值。
我需要从性能和查询方面的细节,我从一些网站上了解到,在使用columnfamily时只能给出一个密钥,如果是这样你会给我的密钥空间建议什么,我需要使用group by,order by,count,sum ,ifnull,concat,join,有时是嵌套查询。
回答你提出的原始问题:列族和表是一回事。
- 名称“列族”用于较旧的Thrift API。
- 名称“table”用于较新的CQL API。
有关API的更多信息,请访问:http://wiki.apache.org/cassandra/API
如果您需要使用“group by,order by,count,sum,ifnull,concat,joins和有时嵌套查询”,那么您可能不想使用Cassandra,因为它不支持大多数。
CQL支持COUNT
,但最多只支持10000.它支持ORDER BY
,但仅支持群集密钥。你提到的其他事情根本不受支持。
请参阅文档:https://cassandra.apache.org/doc/old/CQL-3.0.html
它指定CQL的LRM支持TABLE关键字,只要支持COLUMNFAMILY。
这证明了TABLE和COLUMNFAMILY是同义词。
在cassandra中,table和columnfamily之间没有区别。他们是一个概念。
列族与关系数据库的表有些相关,具有分布差异甚至可能是理想主义的特征。
想象您有一个可能包含15列的用户实体,在关系数据库中,您可能希望将列分成基于小相关列的结构,我们都知道这些结构为表。在像Cassandra这样的分布式数据库中,您将能够将所有这些表条目连接成一个长行,因此如果您将使用profiler / db管理器,您将看到一个包含15列而不是2/3表的表。另一个有趣的事情是,每个列族都写入不同的节点,可能在不同的集群上,并被行键识别,这意味着您将拥有所有列族的单个键,而不需要维护PK或每个表的FK并保持它们之间的关系,具有1-1,1-n,nn关系。简单!
以上是关于在Cassandra中创建表和创建列家族有什么区别?的主要内容,如果未能解决你的问题,请参考以下文章