Cassandra 中的数据分布
dbmsdatabaseprogramming
数据分布是通过一致性哈希来实现的,以使数据均匀分布在集群中的节点上。表的行不是放在单个节点上,而是分布在集群中,从而使表数据的负载均匀分布。分区键用于在节点之间分配数据并确定数据位置。
在 Cassandra 中,数据分布和复制协同工作。主要取决于三个因素,即分区键、键值和令牌范围。
Cassandra 表
此表由两行组成,其中一行有四列,后跟它们的值,而第二行包含两列,列中显示它们的值。第 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 中的数据分发。数据以集群的形式通过散列进行分发。主要组件是分区键、键值和令牌。分区键在集群中的节点之间执行分发。令牌用于以环形式存储行。复制因子决定了整个集群中数据的副本数。