メインコンテンツまでスキップ
メインコンテンツまでスキップ

圧縮モード

ClickHouseプロトコルは、データブロックの圧縮をチェックサムと共にサポートしています。モードを選択する際に不明な場合は、LZ4を使用してください。

ヒント

利用可能なカラム圧縮コーデックについて詳しく学び、テーブルを作成する際やその後に指定してください。

モード

名前説明
0x02なし圧縮なし、チェックサムのみ
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)であり、生サイズはlen(header + compressed_data)から構成されています。

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

なしモード

なしモードが使用されている場合、compressed_dataはオリジナルデータと等しくなります。圧縮なしのモードは、チェックサムを使用して追加のデータ整合性を確保するために有用です。なぜなら、ハッシュingのオーバーヘッドは無視できるからです。