全部產品
Search
文件中心

ApsaraDB for HBase:資料壓縮與編碼

更新時間:Jul 06, 2024

本文主要介紹Hbase在資料壓縮與編碼中的實際應用。

壓縮演算法

目前阿里雲平台支援壓縮演算法有: LZO、ZSTD、GZ、LZ4、SNAPPY NONE,其中NONE就代表不開啟壓縮。不同壓縮演算法在不同情境的壓縮比,及解壓速度對比如下,都是來自線上真實情境。

業務類型無壓縮表大小LZO(壓縮率/解壓速度MB/s)ZSTD(壓縮率/解壓速度MB/s)LZ4(壓縮率/解壓速度MB/s)
監控類419.75T5.82/37213.09/2565.19/463.8
日誌類77.26T4.11/3336.0/2874.16/496.1
風控類147.83T4.29/297.75.93/2704.19/441.38
消費記錄108.04T5.93/316.810.51/288.35.55/520.3
說明
  • 對rt要求極高,建議使用lz4壓縮演算法。
  • 對rt要求不高,特別是監控、物聯網等情境,建議使用zstd壓縮演算法。

編碼

HBase很早就支援了DataBlockEncoding,即通過減少HBase keyvalue中重複的部分來壓縮資料。我們推薦DATA_BLOCK_ENCODING使用diff。

操作步驟

  1. 修改表的屬性,此為壓縮編碼。
    alter 'test', {NAME => 'f', COMPRESSION => 'lz4', DATA_BLOCK_ENCODING =>'DIFF'}
  2. 壓縮編碼並不會立即生效,需要major_compact,此會耗時較長,注意在業務低峰期進行。
    major_compact 'test'
說明 壓縮編碼的參考文檔請參見阿里HBase資料壓縮編碼探索