mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-11-25 00:52:02 +00:00
3.0 KiB
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
は元のデータと同じです。圧縮を行わないモードは、チェックサムによって追加のデータ整合性を確保するのに有用であり、ハッシュ処理のオーバーヘッドはごくわずかです。