天天看點

資料引擎-列存儲資料庫

列式資料庫是以列方式存儲資料,主要适合于即時查詢和批量資料處理

行式資料庫是以行方式存儲資料,主要适合于聯機事物處理和小批量資料處理。

舉個栗子

1.事實資料如下

資料引擎-列存儲資料庫

2.在傳統資料庫行資料庫中的存儲方法

資料引擎-列存儲資料庫

3.在列存儲資料庫中的邏輯結構

資料引擎-列存儲資料庫

4.在列存儲資料中的壓縮

因為列的集中存儲,友善采用多種高效的資料壓縮技術。行程編碼壓縮就是将資料值、資料出現的起始位置和持續長度儲存為一個三元組。行程壓縮适合于重複資料較多的場景。

資料引擎-列存儲資料庫

詞典編碼壓縮是生成一個原始值的符合對照詞典,符合的長度小于原始值的長度。位向量壓縮是将每一個不同的取值生成一個位向量。字典壓縮和位向量壓縮僅适合取值空間比較小的場景。對于取值空間比較大的場景,Sybase IQ中的BitWise索引可以并行化範圍求值操作。

資料引擎-列存儲資料庫

5.列存儲資料庫的查詢

舉個栗子:商家BA的iPhone6s的雙十一銷量

資料引擎-列存儲資料庫

依據查詢條件依次标定向量,标定日期中=2015/11/11,标定訂單類型=Sale,标定商家=BA,标定商品=iPhone6s,無關列無需掃描。

資料引擎-列存儲資料庫

将标定後的向量求交後,根據目标向量延遲物化目标列,然後根據物化後的列完成後續的求和計算SUM(1+1+1)=3

資料引擎-列存儲資料庫

6.行存儲和列存儲資料庫的對比

随着大資料的發展,列存儲資料庫也越來越受到歡迎。高效的壓縮比大大節省了硬碟和記憶體。全字段索引後的資料即是索引,使得資料庫管理者徹底告别針對應用場景反複調優索引結構。列存儲資料庫使得大資料即時分析成為可能。也有許多混合型的設計方案,舉個栗子:SQL Server2014中的RowGroup+ColumnSegments。

資料引擎-列存儲資料庫
資料引擎-列存儲資料庫