跳至主要内容

压缩模式

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

字段类型描述
校验和uint128哈希 (标头 + 压缩数据)
原始大小uint32不含标头的原始大小
数据大小uint32未压缩数据大小
模式字节压缩模式
压缩数据二进制压缩数据块

compression block diagram

标头是 (原始大小 + 数据大小 + 模式),原始大小包括 len(标头 + 压缩数据)。

校验和是hash(标头 + 压缩数据),使用ClickHouse CityHash.

无模式

如果使用模式,则压缩数据等于原始数据。由于哈希开销可以忽略不计,因此无压缩模式有助于确保带校验和的额外数据完整性。