跳到主要内容
跳到主要内容

压缩模式

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

字段类型描述
校验和uint128Hash of (header + compressed data)
raw_sizeuint32不含标头的原始大小
data_sizeuint32未压缩数据大小
模式byte压缩模式
compressed_databinary压缩数据块

compression block diagram

标头为(raw_size + data_size + 模式),原始大小由 len(header + compressed_data) 组成。

校验和为 hash(header + compressed_data),使用 ClickHouse CityHash

无模式

如果使用模式,则 compressed_data 等于原始数据。无压缩模式对于通过校验和确保额外的数据完整性非常有用,因为哈希开销可以忽略不计。