gpt4 book ai didi

Cassandra 每个分区有 20 亿个单元的限制,但什么是分区?

转载 作者:行者123 更新时间:2023-12-03 08:35:52 27 4
gpt4 key购买 nike

在 Cassandra Wiki 中,据说有 2 billion cells (rows x columns) 的限制每个分区。但我不清楚什么是分区?

每个列族的每个节点是否有一个分区,这意味着列族的最大大小将是 2 billion cells * number of nodes在集群中。

还是 Cassandra 会根据需要创建尽可能多的分区来存储列族的所有数据?

我正在开始一个新项目,所以我将使用 Cassandra 2.0。

最佳答案

随着 CQL3 的出现,术语与旧的节俭术语略有不同。
基本上

Create Table foo (a int , b int, c int, d int, PRIMARY KEY ((a,b),c))
将制作一个 CQL3 表。 a 和 b 中的信息用于制作分区键,这描述了信息将驻留在哪个节点上。这就是 20 亿小区限制中所说的“分区”。
在该分区内,信息将由 c 组织,称为集群键。 a、b 和 c 一起定义了 d 的唯一值。在这种情况下,分区中的单元数将为 c * d。所以在这个例子中,对于任何给定的 a 和 b 对,c 和 d 的组合只能有 20 亿个
因此,当您对数据进行建模时,您希望确保主键会发生变化,以便您的数据将随机分布在 Cassandra 中。然后使用集群键来确保您的数据以您想要的方式可用。
观看此视频以获取有关 cassandra 中的数据建模的更多信息
The Datamodel is Dead, Long live the datamodel
编辑:评论中的另一个例子
Create Table foo (a int , b int, c int, d int, e int, f int, PRIMARY KEY ((a,b),c,d))
分区将由 a 和 b 的组合唯一标识。
在分区内 c 和 d 将用于对分区内的单元格进行排序,因此布局将
看起来有点像:
(a1,b1) --> [c1,d1 : e1], [c1,d1  :f1], [c1,d2 : e2] ....  
所以在这个例子中,你可以有 20 亿个单元格,每个单元格包含:
  • c的值
  • d 值
  • e 或 f 的值

  • 所以 20 亿的限制是指 (c,d,e) 的唯一元组的总和。和 (c,d,f) .

    关于Cassandra 每个分区有 20 亿个单元的限制,但什么是分区?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20512710/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com