Перейти к основному содержанию
Перейти к основному содержанию

estimateCompressionRatio

estimateCompressionRatio

Оценивает коэффициент сжатия заданного столбца, не выполняя его сжатие.

Синтаксис

оценитьКоэффициентСжатия(codec, block_size_bytes)(column)

Аргументы

  • column - Столбец любого типа

Параметры

  • codec - String, содержащая кодек сжатия или несколько кодеков, перечисленных через запятую в одной строке.
  • block_size_bytes - Размер блока сжатых данных. Аналогично одновременному заданию параметров max_compress_block_size и min_compress_block_size. Значение по умолчанию — 1 MiB (1048576 байт).

Оба параметра являются необязательными.

Возвращаемые значения

  • Возвращает примерный коэффициент сжатия для заданного столбца.

Тип: Float64.

Примеры

CREATE TABLE compression_estimate_example
(
    `number` UInt64
)
ENGINE = MergeTree()
ORDER BY number
SETTINGS min_bytes_for_wide_part = 0;

INSERT INTO compression_estimate_example
SELECT number FROM system.numbers LIMIT 100_000;
SELECT estimateCompressionRatio(number) AS estimate FROM compression_estimate_example;
┌───────────estimate─┐
│ 1.9988506608699999 │
└────────────────────┘
Примечание

Результат, показанный выше, будет отличаться в зависимости от кодека сжатия по умолчанию на сервере. См. раздел Кодеки сжатия столбцов.

SELECT estimateCompressionRatio('T64')(number) AS estimate FROM compression_estimate_example;
┌──────────estimate─┐
│ 3.762758101688538 │
└───────────────────┘

Функция также может задавать несколько кодеков:

SELECT estimateCompressionRatio('T64, ZSTD')(number) AS estimate FROM compression_estimate_example;
┌───────────estimate─┐
│ 143.60078980434392 │
└────────────────────┘