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 中的資料分佈。資料透過雜湊以叢集的形式進行分佈。主要元件是分割槽鍵、鍵值和令牌。分割槽鍵執行跨叢集節點的分佈。令牌用於以環形形式儲存行。複製因子決定了在整個叢集中建立的資料副本數量。
廣告
資料結構
網路
關係型資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP