Перейти к основному содержанию
Протокол ClickHouse поддерживает сжатие блоков данных с контрольными суммами. Если не уверены, какой режим выбрать, используйте LZ4. “
Подробнее о доступных кодеках сжатия столбцов и о том, как указывать их при создании таблиц или позже.

Режимы

значениеимяописание
0x02NoneБез сжатия, только контрольные суммы
0x82LZ4Очень быстрый, хорошее сжатие
0x90ZSTDZstandard, довольно быстрый, лучшее сжатие
И LZ4, и ZSTD созданы одним и тем же автором, но с разными компромиссами. Из бенчмарков Facebook:
имякоэффициенткодированиедекодирование
zstd 1.4.5 -12.8500 MB/s1660 MB/s
lz4 1.9.22.1740 MB/s4530 MB/s

Блок

полетипописание
checksumuint128Хэш от (header + compressed data)
raw_sizeuint32Исходный размер без заголовка
data_sizeuint32Размер несжатых данных
modebyteРежим сжатия
compressed_databinaryБлок сжатых данных
Заголовок имеет вид (raw_size + data_size + mode), а raw_size равен len(header + compressed_data). Контрольная сумма вычисляется как hash(header + compressed_data) с использованием ClickHouse CityHash.

Режим None

Если используется режим None, compressed_data совпадает с исходными данными. Режим без сжатия полезен для обеспечения дополнительной целостности данных с помощью контрольных сумм, поскольку накладные расходы на хеширование пренебрежимо малы.
Последнее изменение 10 июня 2026 г.