Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

圧縮モード

ClickHouseプロトコルは、チェックサム付きのデータブロック圧縮をサポートしています。 どのモードを選べばよいかわからない場合は、LZ4 を使用してください。 ``

モード

value name description
0x02 None 圧縮なし、チェックサムのみ
0x82 LZ4 非常に高速で、圧縮率も良好
0x90 ZSTD Zstandard、かなり高速で、圧縮率は最高

LZ4 と ZSTD はどちらも同じ著者によるものですが、トレードオフが異なります。 Facebook benchmarks より:

name ratio encoding decoding
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 (header + compressed data) の ハッシュ
raw_size uint32 ヘッダーを除いた元のサイズ
data_size uint32 非圧縮データサイズ
mode byte 圧縮モード
compressed_data binary 圧縮データのブロック
ClickHouse の圧縮ブロック構造を示す図

ヘッダーは (raw_size + data_size + mode) で、元のサイズは len(header + compressed_data) に相当します。

Checksum は ClickHouse CityHash を使用した hash(header + compressed_data) です。

None モード

None モードを使用すると、compressed_data は元のデータと同じです。 圧縮しないモードは、ハッシュ計算のオーバーヘッドがごく小さいため、チェックサムによる追加のデータ整合性の確保に役立ちます。

Navigation