Skip to main content
Edit this page

圧縮モード

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

Tip

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

モード

名前説明
0x02None圧縮なし、チェックサムのみ
0x82LZ4非常に高速で、良好な圧縮
0x90ZSTDZstandard、かなり高速で最良の圧縮

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

名前比率エンコーディングデコーディング
zstd 1.4.5 -12.8500 MB/s1660 MB/s
lz4 1.9.22.1740 MB/s4530 MB/s

ブロック

フィールド説明
checksumuint128(ヘッダー + 圧縮データ)のハッシュ
raw_sizeuint32ヘッダーなしの生データサイズ
data_sizeuint32非圧縮データサイズ
modebyte圧縮モード
compressed_databinary圧縮データのブロック

圧縮ブロック図

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

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

Noneモード

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