列族儲存 的設計源於google的bigtable**,該**對以後的列族儲存(如:hbase,cassandra,hypertable)的實現產生了深遠的影響。
先來看看熟悉的excel**,它有助於我們理解列族儲存的模型,如圖 1 所示
電子**是乙個二維的**,通過「行號+列號」(3+c)可以快速地找到對應的單元格的值(column family)。和健值儲存類似,可以在這個單元格裡儲存任意型別的值。
圖 1
我們可以將「行號+列號」看成單元格的健,單元格的值為值,如圖 2:
圖 2這和列族儲存很類似,每個單元格只會通過已知的行列識別符號找到。並且,想電子**一樣,可以在任何時候向任何單元格插入資料,而不必為每一行插入所有列的資料。現在我們對圖中的健進行擴充套件,如圖 3:
圖 3除了行健和列名,列族儲存的健還有列族名和時間戳這兩個部分。列族通常用來將一些具有練習的列歸在一起,時間戳執行值儲存多個版本。
列族儲存有點兒像三維的立方體(行,列,時間)被硬生生壓縮成一維的健和值,當我們把這個一維的健值還原成二維的表時,會發現這個表是非常稀疏的。關係型資料庫儲存稀疏的資料不太在行,而列族儲存就是為這個設計的。此外,列族系統還有良好德擴充套件性,可用性以及弱模式等優點。
NoSQL架構模式與MySQL對比
lsm 樹 log structured merge tree 犧牲了一定的讀效能來換取寫入資料的高效能,hbase cassandra leveldb 都是用這種演算法作為儲存的引擎.當從 lsm 樹裡面讀資料時,我們首先從 memtable 中查詢資料,如果資料沒有找到,再從 sstable 中...
軟體架構模式的種類
在做軟體架構設計時,根據不同的抽象層次可分為三種不同層次的模式 架構模式 architectural pattern 設計模式 design pattern 模式 coding pattern 架構模式是乙個系統的高層次策略,涉及到大尺度的元件以及整體性質和力學。架構模式的好壞可以影響到總體布局和框...
軟體架構模式的種類
在做軟體架構設計時,根據不同的抽象層次可分為三種不同層次的模式 架構模式 architectural pattern 設計模式 design pattern 模式 coding pattern 架構模式是乙個系統的高層次策略,涉及到大尺度的元件以及整體性質和力學。架構模式的好壞可以影響到總體布局和框...