このドキュメントでは、ApsaraDB for HBase のデータ圧縮とエンコーディングの実用的なアプリケーションについて紹介します。
圧縮アルゴリズム
現在、ApsaraDB for HBase プラットフォームでは、LZO、ZSTD、GZ、LZ4、SNAPPY、および NONE の圧縮アルゴリズムをサポートしています。NONE は、圧縮が無効になっていることを意味します。次の表は、さまざまなシナリオにおける圧縮アルゴリズムの圧縮率と速度を比較したものです。
| ビジネスの種類 | 圧縮されていないテーブルのサイズ | LZO (圧縮率/解凍速度、単位: MB/s) | ZSTD (圧縮率/解凍速度、単位: MB/s) | LZ4 (圧縮率/解凍速度、単位: MB/s) |
| 監視 | 419.75 TB | 5.82/372 | 13.09/256 | 5.19/463.8 |
| ログ | 77.26 TB | 4.11/333 | 6.0/287 | 4.16/496.1 |
| リスク制御 | 147.83 TB | 4.29/297.7 | 5.93/270 | 4.19/441.38 |
| トランザクションレコード | 108.04 TB | 5.93/316.8 | 10.51/288.3 | 5.55/520.3 |
説明
- 応答時間 ( RT ) の要件が厳しいシナリオでは、LZ4 圧縮アルゴリズムを使用することをお勧めします。
- 監視やモノのインターネット ( IoT ) などの RT 要件が低いシナリオでは、ZSTD 圧縮アルゴリズムを使用することをお勧めします。
エンコーディング
ApsaraDB for HBase は、HBase KeyValue の重複部分を削減することでデータを圧縮する DataBlockEncoding をサポートしています。DATA_BLOCK_ENCODING には DIFF を使用することをお勧めします。
手順
- テーブルの COMPRESSION プロパティを変更します。
alter 'test', {NAME => 'f', COMPRESSION => 'lz4', DATA_BLOCK_ENCODING =>'DIFF'} - 変更はすぐには有効になりません。変更を有効にするには、メジャーコンパクションを実行する必要があります。メジャーコンパクションは時間がかかるため、オフピーク時に実行することをお勧めします。
major_compact 'test'
説明 詳細については、「ApsaraDB for HBase 圧縮エンコーディングの探索」をご参照ください。