ClickHouse/docs/ja/data-compression/compression-modes.md
2024-11-18 11:58:58 +09:00

3.0 KiB

slug sidebar_position title description keywords
/ja/data-compression/compression-modes 6 圧縮モード ClickHouseのカラム圧縮モード
圧縮
コーデック
エンコーディング
モード

圧縮モード

ClickHouseプロトコルは、チェックサム付きでデータブロックの圧縮をサポートしています。どのモードを選ぶか迷った場合は、LZ4を使用してください。

:::tip 使用可能なカラム圧縮コーデックについて詳しく学び、テーブル作成時またはその後に指定してください。 :::

モード

名前 説明
0x02 None 圧縮なし、チェックサムのみ
0x82 LZ4 非常に高速で、良好な圧縮
0x90 ZSTD Zstandard、かなり高速で最良の圧縮

LZ4とZSTDは同じ作者によって作られていますが、異なるトレードオフがあります。 Facebookのベンチマークからのデータ:

名前 比率 エンコーディング デコーディング
zstd 1.4.5 -1 2.8 500 MB/s 1660 MB/s
lz4 1.9.2 2.1 740 MB/s 4530 MB/s

ブロック

フィールド 説明
checksum uint128 (ヘッダー + 圧縮データ)のハッシュ
raw_size uint32 ヘッダーなしの生データサイズ
data_size uint32 非圧縮データサイズ
mode byte 圧縮モード
compressed_data binary 圧縮データのブロック

圧縮ブロック図

ヘッダーは(raw_size + data_size + mode)で構成され、生データサイズは(ヘッダー + 圧縮データ)の長さになります。

チェックサムはhash(header + compressed_data)で、ClickHouse CityHashを使用しています。

Noneモード

Noneモードが使用されている場合、compressed_dataは元のデータと同じです。圧縮を行わないモードは、チェックサムによって追加のデータ整合性を確保するのに有用であり、ハッシュ処理のオーバーヘッドはごくわずかです。