Cassandra 中的数据分布
数据分布是通过一致性哈希来完成的,以使数据在集群中的节点上均匀分布。而不是将表的行放在单个节点上,而是将行分布到整个集群中,这使得表数据的负载得到均匀分配。分区键用于在节点之间分配数据并确定数据位置。
在 Cassandra 中,数据分布和复制协同工作。主要取决于三件事,即分区键、键值和令牌范围。
Cassandra 表
此表包含两行,其中一行有四列及其值,而第二行包含两列及其值。column 1 具有主键。
示例
在此示例中,我们将展示数据如何在集群中分布。
id name dob salary 1 x 5−12−2000 60000 2 y 6−12−1999 70000 3 z 7−12−1998 80000 4 a 8−1−1998 90000
下面给出的环形架构有四个节点,并提供令牌范围和特定的令牌 ID。分区器将生成令牌值并将它们分配到集群上。
分区器
它有助于在 Cassandra 集群中的节点之间分配数据。对行数据的分区键使用哈希来获取令牌值。Cassandra 中的默认分区器是 Murmur3。
令牌
它们是用于在环中存储行的哈希值。令牌是一个 64 位整数。令牌的范围为 -2^63 到 2^63。
例如:让我们为上表取一些随机的哈希值。
PARTITION KEY MURMUR 3 HASH VALUE x −700 y −300 z 400 a 700
复制因子
它显示了整个集群中数据的副本总数。复制因子=1 表示我们只有一份数据副本,因此如果它宕机,则无法恢复它。
复制因子=2 表示存在两个副本,依此类推。
结论
本文介绍了 Cassandra 中的数据分布。数据通过哈希以集群的形式进行分布。主要组件是分区键、键值和令牌。分区键执行跨集群节点的分布。令牌用于以环形形式存储行。复制因子决定了在整个集群中创建的数据副本数量。
广告