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 中的数据分布。数据通过哈希以集群的形式进行分布。主要组件是分区键、键值和令牌。分区键执行跨集群节点的分布。令牌用于以环形形式存储行。复制因子决定了在整个集群中创建的数据副本数量。

更新于: 2023年7月14日

311 次查看

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告