Ben*_*ery 33 limit cassandra column-family
在Cassandra Wiki中,据说2 billion cells (rows x columns)
每个分区有一个限制.但我不清楚什么是分区?
每个列系列的每个节点是否有一个分区,这意味着列族的最大大小将2 billion cells * number of nodes
在群集中.
或者,Cassandra会根据需要创建尽可能多的分区来存储列族的所有数据吗?
我正在开始一个新项目,所以我将使用Cassandra 2.0.
Rus*_*ssS 64
随着CQL3的出现,术语与旧的节约条款略有不同.
基本上
Create Table foo (a int , b int, c int, d int, PRIMARY KEY ((a,b),c))
Run Code Online (Sandbox Code Playgroud)
将制作一个CQL3表.a和b中的信息用于创建分区密钥,这描述了信息将驻留在哪个节点上.这是20亿细胞限制中谈到的'分区'.
在该分区内,信息将由c组织,称为群集密钥.a,b和c一起定义d的唯一值.在这种情况下,分区中的单元数量将是c*d.因此,在这个例子中,对于任何给定的a和b对,只有20亿个c和d的组合
因此,在为数据建模时,您需要确保主键不同,以便您的数据随机分布在Cassandra中.然后使用群集键确保您的数据以您希望的方式可用.
观看此视频,了解更多关于cassandra 数据模型的信息 Datamodel is Dead,数据模型万岁
Create Table foo (a int , b int, c int, d int, e int, f int, PRIMARY KEY ((a,b),c,d))
Run Code Online (Sandbox Code Playgroud)
分区将由a和b的组合唯一标识.
在分区c和d中将用于对分区内的单元格进行排序,因此布局看起来有点像:
(a1,b1) --> [c1,d1 : e1], [c1,d1 :f1], [c1,d2 : e2] ....
Run Code Online (Sandbox Code Playgroud)
因此,在此示例中,您可以拥有2亿个单元格,每个单元格包含:
所以2十亿限制是指独特的元组的总和(c,d,e)
及(c,d,f)
.