Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Cassandra UUID分区密钥和分区大小_Cassandra_Primary Key_Partition - Fatal编程技术网

Cassandra UUID分区密钥和分区大小

Cassandra UUID分区密钥和分区大小,cassandra,primary-key,partition,Cassandra,Primary Key,Partition,给一张桌子 CREATE TABLE sensors_by_id ( id uuid, time timeuuid, some_text text, PRIMARY KEY (id, time) ) 当有很多条目时,这个比例会变大吗?我不确定,如果一个UUID字段足以作为一个好的分区键,或者是否需要创建一些人工键,如week_first_day或类似的东西?这实际上取决于您将如何插入数据-如果您为每次插入都随机生成UUID,那么重复的机会就会增加,并且您会得到

给一张桌子

CREATE TABLE sensors_by_id (
    id uuid,
    time timeuuid,
    some_text text,
    PRIMARY KEY (id, time)
) 

当有很多条目时,这个比例会变大吗?我不确定,如果一个UUID字段足以作为一个好的分区键,或者是否需要创建一些人工键,如week_first_day或类似的东西?

这实际上取决于您将如何插入数据-如果您为每次插入都随机生成UUID,那么重复的机会就会增加,并且您会得到所谓的“瘦行”(许多内部有一行的分区)。即使您开始获取副本,每行也不会有那么多…

分区大小可能有问题,因为cassandra对每个分区的磁盘大小有限制

好的经验法则是将最大行数保持在100000项以下,磁盘大小保持在100MB以下

使用这个公式很容易计算分区大小

您可以阅读有关数据建模的更多信息

因此,在当前模式下,1000每个分区行数,平均大小100字节部分文本列将为:

Number of Values: (1000000 * (3 - 2 - 0) + 0) = 1000000

Partition Size on Disk: (16 + 0 + (1000000 * 116) + (8 * 1000000))
= 124000016 bytes (118.26 Mb)
因此,您可以看到,每个分区的118.26 Mb超出了限制。所以你需要优化你的分区键


我是用我的开源项目计算出来的-。

谢谢。在这一点上,我并不太担心复制品。瘦行似乎在集群中分布得很好,所以这是一个“开始”?是的,这是一个开始。