Сжатие
Сжатие используется для уменьшения трафика по сети при передаче большого количества данных, а также для создания сразу сжатых дампов.
Внутренний формат сжатия ADQM можно использовать при передаче данных. Формат сжатых данных нестандартный, для работы с ним используется специальная программа "Clickhouse-compressor". Она устанавливается вместе с пакетом
clickhouse-client
. Для повышения эффективности вставки данных можно отключить проверку контрольной суммы на стороне сервера с помощью настройки http_native_compression_disable_checksumming_on_decompress
.Если в URL указано
compress=1
, то сервер сжимает отправляемые данные. Если указано decompress=1
, то сервер распаковывает те данные, которые передаются методом POST
.Также можно использовать сжатие HTTP. ADQM поддерживает следующие методы сжатия:
gzip
;br
;deflate
;xz
.
Для отправки сжатого запроса
POST
добавьте заголовок Content-Encoding: compression_method
. Чтобы ADQM сжимал ответ, разрешите сжатие настройкой enable_http_compression
и добавьте заголовок Accept-Encoding: compression_method
. Уровень сжатия данных для всех методов можно задать с помощью настройки http_zlib_compression_level
.Примеры:
Отправка сжатых данных на сервер$ echo "SELECT 1" | gzip -c | \ curl -sS --data-binary @- -H 'Content-Encoding: gzip' 'http://localhost:8123/'
Получение сжатых данных с сервера$ curl -vsS "http://localhost:8123/?enable_http_compression=1" \ -H 'Accept-Encoding: gzip' --output result.gz -d 'SELECT number FROM system.numbers LIMIT 3' $ zcat result.gz