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

压缩模式

ClickHouse 协议支持带有校验和的 数据块 压缩。 如果不确定选择哪种模式,请使用 LZ4

提示

了解更多关于可用的 列压缩编码器,并在创建表时或之后指定它们。

模式

valuenamedescription
0x02None不压缩,仅有校验和
0x82LZ4极快,良好的压缩效果
0x90ZSTDZstandard,相当快,最佳压缩效果

LZ4 和 ZSTD 的作者相同,但有不同的权衡。 根据 Facebook 基准测试

nameratioencodingdecoding
zstd 1.4.5 -12.8500 MB/s1660 MB/s
lz4 1.9.22.1740 MB/s4530 MB/s

fieldtypedescription
checksumuint128Hash of (header + compressed data)
raw_sizeuint32原始大小(不含头部信息)
data_sizeuint32解压后的数据大小
modebyte压缩模式
compressed_databinary压缩数据块
展示 ClickHouse 压缩块结构的图示

头部是 (raw_size + data_size + mode),原始大小由 len(header + compressed_data) 组成。

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

无压缩模式

如果使用 None 模式,compressed_data 等于原始数据。 无压缩模式在确保数据完整性方面是有用的,因为其校验和开销可以忽略不计。