Kev*_*ell 6 data-modeling cassandra
我有一个应用程序,其中Cassandra表的"自然"分区键似乎是"客户".这是我们想要查询数据的主要方式,我们可以获得良好的数据分布等.
但如果有超过100万的客户,那会是太多不同的分区吗?
我应该选择导致分区键数量较少的分区键吗?
我已经看了很多关于这个主题的相关问题,但似乎都没有解决这个问题.
Aar*_*ron 12
但如果有超过100万的客户,那会是太多不同的分区吗?
不.Murmur3Partitioner可以处理类似2 ^ 64(-2 ^ 63到+ 2 ^ 63)分区的内容.Cassandra旨在非常擅长存储大量数据并通过分区键进行检索.有在列数限制内分区(2十亿),但对于分区的总数,我认为你会没事的你所拥有的东西.
我应该选择导致分区键数量较少的分区键吗?
当然不.这可能会导致分区变得过大,和/或在群集中形成"热点".
选择一个好的分区密钥背后的主要任务是找到一个(两者)在集群中提供良好的数据分布,并匹配您的查询模式.从我正在阅读的内容来看,听起来你已经完成了这一切.
我认为您误解了分区键的使用方式。推荐的分区器获取您的分区键值,然后从它们计算 128 位哈希。散列称为记录的标记,正是该标记值决定了您的记录的存储位置。每个 Cassandra 节点都有一组与之关联的令牌范围。如果记录的令牌落在某个节点的范围内,则该记录将存储在该节点上。分区的数量不是由您选择的分区键决定的:它是集群中令牌范围的数量。这大致等于您在配置数据存储节点时选择的vnode总数。
归档时间: |
|
查看次数: |
2504 次 |
最近记录: |