Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

Modes de compression

Le protocole ClickHouse prend en charge la compression des blocs de données avec sommes de contrôle. Utilisez LZ4 si vous ne savez pas quel mode choisir. ``

Modes

valeur nom description
0x02 None Aucune compression, uniquement des sommes de contrôle
0x82 LZ4 Extrêmement rapide, bonne compression
0x90 ZSTD Zstandard, assez rapide, meilleure compression

LZ4 et ZSTD ont tous deux été créés par le même auteur, mais avec des compromis différents. D’après les tests de performance de Facebook :

nom ratio compression décompression
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

Bloc

champ type description
checksum uint128 Somme de contrôle de (header + compressed data)
raw_size uint32 Taille brute sans en-tête
data_size uint32 Taille des données non compressées
mode byte Mode de compression
compressed_data binary Bloc de données compressées
Schéma illustrant la structure du bloc de compression de ClickHouse

L’en-tête est constitué de (raw_size + data_size + mode), et la taille brute correspond à len(header + compressed_data).

La somme de contrôle est hash(header + compressed_data), à l’aide de ClickHouse CityHash.

Mode None

Si le mode None est utilisé, compressed_data est égal aux données d’origine. Le mode sans compression est utile pour renforcer l’intégrité des données grâce aux sommes de contrôle, car le surcoût du hachage est négligeable.

Navigation