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 次檢視

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.