列式儲存處理

2021-09-02 04:32:15 字數 983 閱讀 7938

下面以gbase 8a分析型資料庫為例,描述列儲存對資料儲存與管理的作用。

面對海量資料分析的 i/o 瓶頸,gbase 8a 把錶資料按列的方式儲存,其優勢體現在以下幾個方面。

不讀取無效資料:降低 i/o 開銷,同時提高每次 i/o 的效率,從而大大提高查詢效能。查詢語句只從磁碟上讀取所需要的列,其他列的資料是不需要讀取的。例如,有兩張表,每張表100gb 且有100 列,大多數查詢只關注幾個列,採用列儲存,不需要像行存資料庫一樣,將整行資料取出,只取出需要的列。磁碟 i/0 是行儲存的 1/10或更少,查詢響應時間提高 10 倍以上。

高壓縮比:壓縮比可以達到 5 ~ 20 倍以上,資料占有空間降低到傳統資料庫的1/10 ,節省了儲存裝置的開銷。

當資料庫的大小與資料庫伺服器記憶體大小之比達到或超過 2:1 (典型的大型系統配置值)時,列存的 i/o 優勢就顯得更加明顯;

gbase 8a 分析型資料庫的獨特列儲存格式,對每列資料再細分為「資料報」。這樣可以達到很高的可擴充套件性:無論乙個表有多大,資料庫只操作相關的資料報,效能不會隨著資料量的增加而下降。通過以資料報為單位進行 i/o 操作提公升資料吞吐量,從而進一步提高i/o效率。

由於採用列儲存技術,還可以實現高效的透明壓縮。

[img]

由於資料按列包儲存,每個資料報內都是同構資料,內容相關性很高,這使得gbase 8a 更易於實現壓縮,壓縮比通常能夠達到 1:10 甚至更優。這使得能夠同時在磁碟 i/o 和 cache i/o 上都提公升資料庫的效能,使 gbase 8a 在某些場景下的運算效能比傳統資料庫快 100 倍以上。

gbase 8a 允許使用者根據需要設定配置檔案,選擇是否進行壓縮。在啟用壓縮的情況下gbase 8a 根據資料的不同特性以及不同的分布狀況,自動採用相應的壓縮演算法,如:

[img]

行程編碼(適用於大量連續重複的資料,特別是排序資料);

基於資料的差值編碼(適用於重複率低,但彼此差值較小的資料列);

基於位置的差值編碼(適用於重複率高,但分布比較隨機的資料列)。

列式儲存簡介

關係表結構是被人們普遍接受的資料模型,通常一行資料由多個屬性組成,每個屬性是一列。但是磁碟是一維的,檔案只能順序寫,那麼先寫誰後寫誰呢?不同的寫檔案順序就對應了不同的儲存模型。傳統資料庫通常採用行式儲存,即先存一行資料,再存下一行資料。在大資料時代,乙個常見分析型場景是在資料倉儲中進行分析,如商店的...

列式儲存 一

最近做專案,客戶要求物件的屬性能夠動態新增,於是採用了列式儲存。1.傳統關係型資料庫的行式儲存方法為 資料庫表的字段表示物件屬性,一行資料完整的表示物件的所有屬性。如果要新增乙個屬性,如 聯絡郵箱 那麼就要重新設計表,增加一欄 email 相應的後台 也需要變動。2.關係型資料庫的行式儲存方法為 將...

行式儲存與列式儲存

行式儲存與列式儲存 行式儲存 資料儲存以行為單位,儲存完一行就會跳到第二行 row based store。維護大量的索引,儲存成本比較高,不能做到線性擴充套件,對於隨機讀的效率高。最大的特點就是對事務的處理能力支援的非常好。行式儲存最大的優點是關係之間的解決方案,行式儲存實現了關係型資料庫,如果表...