Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

Modos de compresión

El protocolo de ClickHouse admite la compresión de bloques de datos con sumas de comprobación. Use LZ4 si no está seguro de qué modo elegir. ``

Modos

valor nombre descripción
0x02 Ninguno Sin compresión, solo sumas de comprobación
0x82 LZ4 Extremadamente rápido, buena compresión
0x90 ZSTD Zstandard, bastante rápido, la mejor compresión

Tanto LZ4 como ZSTD fueron creados por el mismo autor, pero con distintas compensaciones. Según los benchmarks de Facebook:

nombre ratio compresión descompresión
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

Bloque

campo tipo descripción
checksum uint128 Hash de (encabezado + datos comprimidos)
raw_size uint32 Tamaño bruto sin encabezado
data_size uint32 Tamaño de los datos sin comprimir
mode byte Modo de compresión
compressed_data binary Bloque de datos comprimidos
Diagrama que ilustra la estructura del bloque de compresión de ClickHouse

El encabezado es (raw_size + data_size + mode); el tamaño bruto consiste en len(header + compressed_data).

La suma de comprobación es hash(header + compressed_data), mediante ClickHouse CityHash.

Modo None

Si se usa el modo None, compressed_data es igual a los datos originales. El modo sin compresión es útil para garantizar una mayor integridad de los datos mediante sumas de comprobación, porque la sobrecarga del hash es insignificante.

Navigation