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.
“
| 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 |
| 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 |
El encabezado es (raw_size + data_size + mode); el tamaño bruto consiste en len(header + compressed_data).
La suma de verificación es hash(header + compressed_data), mediante ClickHouse CityHash.
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. Última modificación el 10 de junio de 2026