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

estimateCompressionRatio

estimateCompressionRatio

Добавлено в версии v25.4

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

Примечание

В примерах ниже результат будет отличаться в зависимости от кодека сжатия по умолчанию, используемого сервером. См. Column Compression Codecs.

Синтаксис

estimateCompressionRatio([codec, block_size_bytes])(column)

Параметры

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

Аргументы

  • column — Столбец любого типа. Any

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

Возвращает приблизительный коэффициент сжатия для заданного столбца. 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 │
└────────────────────┘