全部產品
Search
文件中心

ApsaraDB for HBase:資料壓縮與編碼

更新時間:Oct 30, 2024

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

壓縮演算法

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

業務類型

無壓縮表大小

LZO(壓縮率/解壓速度MB/s)

ZSTD(壓縮率/解壓速度MB/s)

LZ4(壓縮率/解壓速度MB/s)

監控類

419.75T

5.82/372

13.09/256

5.19/463.8

日誌類

77.26T

4.11/333

6.0/287

4.16/496.1

風控類

147.83T

4.29/297.7

5.93/270

4.19/441.38

消費記錄

108.04T

5.93/316.8

10.51/288.3

5.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資料壓縮編碼探索