「分散式技術專題」資料分佈(原理、資料分片)
資料分佈是分散式資料庫的主要特徵。實現資料訪問的區域性化是分散式資料庫設計的重要內容。介紹了分散式資料庫系統的主要特徵及關鍵技術 ,重點對關係的分割和分散式資料的訪問進行了描述。如:分散式資料庫中的資料分佈在不同的節點上,有的事務分解成不同節點上的多個區域性事務,若某個區域性事務不能正常提交,則必須撤銷所有其他節點已提交的區域性事務。事務的這種性質,官能稱為事的原子性。
原理
資料分佈的策略,分散式資料庫的每個全域性關係可以分為若干個不相關的部分,每一個部分秒為一個片段。片段可以儲存在各個場地,這就是分佈;片段還允許重複地儲存在多個場地上,這就是重複;每個片段必定分配在一個場地上,這就是資料分佈或稱資料分配。
資料分片
資料分片 (Sharding)的原理就是將資料做水平切分,類似於hash分割槽的原理,透過應用架構解決訪問路由和資料合併的問題。
Sharding架構的優勢在於,叢集擴充套件能力很強,幾乎可以做到線性擴充套件,而且整個叢集的可用性也 很高,部分節點故障,不會影響其他節點提供服務。
Sharding原理簡單,容易實現,是一種非常好的解決資料庫擴充套件性的方案。但是Sharding對應 用場景的要求很高,因為一旦使用資料分片架構,如果需要跨不同的節點做join,或者統計型別的操作,將會變得非常困難,應該儘量避免。所以說 Sharding架構會損失部分關係型資料庫的特性,比如join,從而使資料庫退化為Key-Value store型別的儲存。所以,並不是所有的應用都適合做Sharding,它可能會造成應用架構複雜或者限制系統的功能,這也是它的缺陷所在。
將資料分片,使資料存放的單位不是關係而是片段,既有利於按照使用者的需求較好地組給你吧資料的分佈,也有利於控制資料的冗餘度。
分片的方式有多種,水平分片和垂直分片是兩種基本的分片方式。混合分片和匯出分片是較複雜的分片方式。
水平分片是指按一定的條件將關係按行分為若干個不相交的子集,每個子集為關係的一個片段。
垂直分片是指將關係按列分為若干個子集,垂直分片的片段必須能夠重構原來的全域性關 rtxi,既可以用連線的方法恢復原關係。因此垂直分片的諸片段通常都包含關係的碼。
匯出分片是按上述三和中分片的方式得到的片段繼續按另一種方式分片。如先安排好水平分片得到的一某一片段再進行垂直分片;或者按垂直分片得到的某一片段又安排好水平分片方式繼續分為若干片段。
無論哪種分片方式都應滿足以下條件:
完全性:
一個全域性關係中的資料必須完全地劃分為若干片段,不允許某些資料屬於全域性關係但不屬於任何一個片段。
不相交性:
不允許一個全域性關係的某些資料既屬於該全域性關係的某一個片段又屬於該全域性關係的別一個片段。
可重構性:
可以由片段重構全域性關係,對於垂直分片可以連線操作重構全域性關係;對於水平分片可以用並操作重構合局關係。
以上為資料分佈(原理、資料分片), 「分散式技術專題」是國產資料庫 hubble 團隊精心整編,專題會持續更新,歡迎大家保持關注。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70026685/viewspace-2935120/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 「分散式技術專題」資料分佈(資料複製、資料分片及優劣勢)分散式
- 「分散式技術專題」資料切分與合併分散式
- mongodb資料庫範圍分片資料分佈不均勻MongoDB資料庫
- 「分散式技術專題」資料庫常見的JOIN演算法分散式資料庫演算法
- 分散式資料庫技術論壇分散式資料庫
- 分散式儲存中的資料分佈策略分散式
- 「分散式技術專題」事務型、分析型資料資源隔離機制分散式
- 強!分庫分表與分散式資料庫技術選項分析分散式資料庫
- 聊聊Oracle的分散式資料庫技術Oracle分散式資料庫
- 破解分散式庫使用難點:資料分片策略分散式
- 華為CloudNative分散式資料庫技術解析Cloud分散式資料庫
- 分散式資料庫技術論壇回顧分散式資料庫
- 崑崙分散式資料庫技術特點分散式資料庫
- 崑崙分散式資料庫技術優勢分散式資料庫
- 阿里分散式資料庫未來技術之路阿里分散式資料庫
- 現代分散式資料庫 資料分佈方式 Round-Robin、Range、List 和 Hash分散式資料庫
- 「分散式技術專題」三種常見的資料庫查詢引擎執行模型分散式資料庫模型
- 分散式系統技術:儲存之資料庫分散式資料庫
- 真正硬核分散式資料庫:開發分散式SQL資料庫的6種技術挑戰 - YugaByte分散式資料庫SQL
- 分散式文件儲存資料庫之MongoDB分片叢集分散式資料庫MongoDB
- 「分散式技術專題」時鐘系列二:資料庫世界中為什麼要有時鐘?分散式資料庫
- 為資料賦能:騰訊TDSQL分散式金融級資料庫前沿技術SQL分散式資料庫
- Mysql資料分片技術(一)——初識表分割槽MySql
- 分散式 SQL 資料庫與表格最佳化技術分散式SQL資料庫
- 分散式資料庫技術之路未來如何發展?分散式資料庫
- 「分散式技術專題」副本機制分散式
- 「分散式技術專題」故障恢復分散式
- 大資料技術原理與應用——大資料概述大資料
- 分散式資料庫架構原理 - Alex Petrov分散式資料庫架構
- 分散式資料庫的複製原理 - Quastor分散式資料庫AST
- 分散式資料庫Google Spanner原理分析KP分散式資料庫Go
- 淺談分散式儲存系統的資料分佈演算法分散式演算法
- 資料分層:打造資料資產管家|得物技術
- 騰訊分散式資料庫TDSQL榮獲技術卓越獎分散式資料庫SQL
- 分散式資料庫技術的演進和發展方向分散式資料庫
- 大資料技術原理與應用大資料
- 大資料——Flink核心技術及原理大資料
- 分散式資料庫分散式資料庫