「分散式技術專題」資料分佈(原理、資料分片)

Hubble資料庫發表於2023-02-14

資料分佈是分散式資料庫的主要特徵。實現資料訪問的區域性化是分散式資料庫設計的重要內容。介紹了分散式資料庫系統的主要特徵及關鍵技術 ,重點對關係的分割和分散式資料的訪問進行了描述。如:分散式資料庫中的資料分佈在不同的節點上,有的事務分解成不同節點上的多個區域性事務,若某個區域性事務不能正常提交,則必須撤銷所有其他節點已提交的區域性事務。事務的這種性質,官能稱為事的原子性。

原理

資料分佈的策略,分散式資料庫的每個全域性關係可以分為若干個不相關的部分,每一個部分秒為一個片段。片段可以儲存在各個場地,這就是分佈;片段還允許重複地儲存在多個場地上,這就是重複;每個片段必定分配在一個場地上,這就是資料分佈或稱資料分配。

資料分片

資料分片 (Sharding)的原理就是將資料做水平切分,類似於hash分割槽的原理,透過應用架構解決訪問路由和資料合併的問題。

Sharding架構的優勢在於,叢集擴充套件能力很強,幾乎可以做到線性擴充套件,而且整個叢集的可用性也 很高,部分節點故障,不會影響其他節點提供服務。

Sharding原理簡單,容易實現,是一種非常好的解決資料庫擴充套件性的方案。但是Sharding對應 用場景的要求很高,因為一旦使用資料分片架構,如果需要跨不同的節點做join,或者統計型別的操作,將會變得非常困難,應該儘量避免。所以說 Sharding架構會損失部分關係型資料庫的特性,比如join,從而使資料庫退化為Key-Value store型別的儲存。所以,並不是所有的應用都適合做Sharding,它可能會造成應用架構複雜或者限制系統的功能,這也是它的缺陷所在。

將資料分片,使資料存放的單位不是關係而是片段,既有利於按照使用者的需求較好地組給你吧資料的分佈,也有利於控制資料的冗餘度。

分片的方式有多種,水平分片和垂直分片是兩種基本的分片方式。混合分片和匯出分片是較複雜的分片方式。

水平分片是指按一定的條件將關係按行分為若干個不相交的子集,每個子集為關係的一個片段。

垂直分片是指將關係按列分為若干個子集,垂直分片的片段必須能夠重構原來的全域性關 rtxi,既可以用連線的方法恢復原關係。因此垂直分片的諸片段通常都包含關係的碼。

匯出分片是按上述三和中分片的方式得到的片段繼續按另一種方式分片。如先安排好水平分片得到的一某一片段再進行垂直分片;或者按垂直分片得到的某一片段又安排好水平分片方式繼續分為若干片段。

無論哪種分片方式都應滿足以下條件:

完全性:

一個全域性關係中的資料必須完全地劃分為若干片段,不允許某些資料屬於全域性關係但不屬於任何一個片段。

不相交性:

不允許一個全域性關係的某些資料既屬於該全域性關係的某一個片段又屬於該全域性關係的別一個片段。

可重構性:

可以由片段重構全域性關係,對於垂直分片可以連線操作重構全域性關係;對於水平分片可以用並操作重構合局關係。


以上為資料分佈(原理、資料分片), 「分散式技術專題」是國產資料庫 hubble 團隊精心整編,專題會持續更新,歡迎大家保持關注。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70026685/viewspace-2935120/,如需轉載,請註明出處,否則將追究法律責任。

相關文章