Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

настройки сеанса merge_tree_*

Эти настройки доступны в system.settings и автоматически сгенерированы на основе исходного файла.

merge_tree_coarse_index_granularity

Тип
UInt64
По умолчанию
8

При поиске данных ClickHouse проверяет метки данных в файле индекса. Если ClickHouse обнаруживает, что требуемые ключи находятся в некотором диапазоне, он делит этот диапазон на merge_tree_coarse_index_granularity поддиапазонов и рекурсивно ищет требуемые ключи в этих поддиапазонах.

Возможные значения:

  • Любое положительное чётное целое число.

merge_tree_compact_parts_min_granules_to_multibuffer_read

Только в ClickHouse Cloud
Тип
UInt64
По умолчанию
16

Действует только в ClickHouse Cloud. Число гранул в stripe компактной части таблиц MergeTree, при котором используется multibuffer reader, поддерживающий параллельное чтение и prefetch. При чтении из remote fs использование multibuffer reader увеличивает число запросов на чтение. Часть читается одним буфером, если она содержит меньше гранул, чем этот порог, и меньше гранул, чем число читаемых столбцов, поскольку в этом случае reader с одним буфером отправляет меньше запросов на чтение, чем multibuffer reader.

merge_tree_determine_task_size_by_prewhere_columns

Тип
Bool
По умолчанию
1

Определяет, использовать ли для определения размера задачи чтения только размер столбцов PREWHERE.

merge_tree_generic_exclusion_search_max_steps

Тип
UInt64
По умолчанию
0
История версий
ВерсияЗначение по умолчаниюКомментарий
26.70Новая настройка, ограничивающая количество шагов универсального алгоритма поиска с исключением по индексу первичного ключа.

Когда фильтр нельзя представить как один непрерывный диапазон первичного ключа, например если он использует не первый столбец ключа, ClickHouse запускает итеративный универсальный алгоритм поиска с исключением по меткам индекса. Тот же алгоритм используется и для анализа текстового индекса. Эта настройка ограничивает количество шагов (проверок индекса), которое алгоритм выполняет для каждой части данных.

Сначала бюджет расходуется на самые большие оставшиеся диапазоны меток. Когда он исчерпывается, диапазоны, которые не были полностью проанализированы, принимаются целиком, поэтому запрос остается корректным, но может читать больше гранул, чем при поиске без ограничений. Меньший бюджет ускоряет анализ индекса ценой чтения большего объема данных. Это ограничение приблизительное, а не строгое: поиск может превысить его примерно на один раунд разбиения, а если часть уже разделена на множество диапазонов (например, кэшем условий запроса), каждый из них проверяется как минимум один раз независимо от ограничения.

Количество шагов, выполненных поиском для каждой части данных, выводится в сообщениях лога уровня trace для запроса, а profile events IndexGenericExclusionSearchStepLimitReached и TextIndexGenericExclusionSearchStepLimitReached подсчитывают, сколько раз бюджет был исчерпан.

Значение 0 (по умолчанию) означает неограниченное количество шагов.

Возможные значения:

  • 0 — неограниченное количество шагов, либо любое положительное целое число.

merge_tree_max_bytes_to_use_cache

Тип
UInt64
По умолчанию
2013265920

Если в рамках одного запроса ClickHouse нужно прочитать более merge_tree_max_bytes_to_use_cache байт, кэш несжатых блоков не используется.

Кэш несжатых блоков хранит данные, извлеченные для запросов. ClickHouse использует этот кэш, чтобы ускорить обработку повторяющихся небольших запросов. Эта настройка защищает кэш от вытеснения запросами, которые читают большие объемы данных. Размер кэша несжатых блоков задается настройкой сервера uncompressed_cache_size.

Возможные значения:

  • Любое положительное целое число.

merge_tree_max_rows_to_use_cache

Тип
UInt64
По умолчанию
1048576

Если ClickHouse нужно прочитать в рамках одного запроса более merge_tree_max_rows_to_use_cache строк, кэш несжатых блоков не используется.

Кэш несжатых блоков хранит данные, извлечённые при выполнении запросов. ClickHouse использует этот кэш, чтобы ускорить обработку повторяющихся небольших запросов. Эта настройка защищает кэш от вытеснения запросами, которые читают большие объёмы данных. Размер кэша несжатых блоков задаётся настройкой сервера uncompressed_cache_size.

Возможные значения:

  • Любое положительное целое число.

merge_tree_min_bytes_for_concurrent_read

Тип
UInt64
По умолчанию
251658240

Если количество байтов, которое нужно прочитать из одного файла таблицы на движке MergeTree, превышает merge_tree_min_bytes_for_concurrent_read, ClickHouse пытается читать этот файл параллельно в нескольких потоках.

Возможное значение:

  • Положительное целое число.

merge_tree_min_bytes_for_concurrent_read_for_remote_filesystem

Тип
UInt64
По умолчанию
0
История версий
ВерсияЗначение по умолчаниюКомментарий
24.100Настройка устарела

Минимальное количество байтов, которое должно быть прочитано из одного файла, прежде чем движок MergeTree сможет распараллелить чтение при чтении из удалённой файловой системы. Мы не рекомендуем использовать эту настройку.

Возможные значения:

  • Положительное целое число.

merge_tree_min_bytes_for_seek

Тип
UInt64
По умолчанию
0

Если расстояние между двумя блоками данных, которые нужно прочитать из одного файла, меньше merge_tree_min_bytes_for_seek байт, ClickHouse последовательно считывает участок файла, содержащий оба блока, чтобы избежать дополнительного seek.

Возможные значения:

  • Любое положительное целое число.

merge_tree_min_bytes_per_read_stream

Тип
UInt64
По умолчанию
65536
История версий
ВерсияЗначение по умолчаниюКомментарий
26.865536Новая настройка, ограничивающая число потоков при обычном локальном неупорядоченном сканировании узких столбцов `MergeTree` с помощью модели затрат sqrt; она снижает накладные расходы на поток на машинах с большим числом ядер. previous_value=0 (отключено), поэтому `compatibility` с версиями до 26.8 восстанавливает прежнее число потоков.

Накладные расходы на поток, выраженные в байтовом эквиваленте. Управляет максимальным числом потоков чтения, создаваемых для обычного локального неупорядоченного сканирования MergeTree. Упорядоченные чтения, чтения с FINAL, многоуровневые чтения и чтения с параллельных реплик не изменяются. Ограничение по объёму вычисляется как ceil(sqrt(estimated_read_bytes / this_setting)). ClickHouse также сохраняет не менее 16 потоков и не менее четверти числа потоков, запрошенных до применения этого ограничения, поэтому фактическое число потоков равно min(requested_streams, max(volume_based_cap, 16, floor(requested_streams / 4))). Эти нижние границы сохраняют параллелизм на последующих этапах для выражений и агрегаций с высокой нагрузкой на CPU, стоимость которых не отражается в estimated_read_bytes.

estimated_read_bytes — это несжатый размер считываемых столбцов в диапазонах меток, оставшихся после отсечения по индексу и партициям. Используется несжатый размер, поскольку накладные расходы на поток сопоставляются с объёмом работы, выполняемой каждым потоком, который зависит от количества обработанных значений, а не от степени их сжатия.

Ограничение не применяется, если объём чтения нельзя достоверно оценить, например когда для вычисления недавно добавленного столбца DEFAULT старой части требуются другие физические столбцы или когда выбранный диапазон считывает только часть столбца переменной ширины.

Значение по умолчанию 64 КБ получено из модели затрат T(N) = W/N + F + V·N, где W — полезная работа, F — фиксированные накладные расходы конвейера, а V — переменные затраты на поток. Оптимальное число потоков равно sqrt(W/V). Выражение W в байтах через пропускную способность даёт C = throughput · V ≈ 400 MB/s · 0.17 ms ≈ 64 KB. Увеличение этого значения уменьшает число потоков (более консервативный подход); уменьшение позволяет использовать больше потоков. Установите 0, чтобы отключить эту оптимизацию.

Возможные значения:

  • Неотрицательное целое число.

merge_tree_min_bytes_per_task_for_remote_reading

Псевдонимы: filesystem_prefetch_min_bytes_for_single_read_task

Тип
UInt64
По умолчанию
2097152
История версий
ВерсияЗначение по умолчаниюКомментарий
24.82097152Значение унифицировано с `filesystem_prefetch_min_bytes_for_single_read_task`

Минимальное число байтов, считываемых за одну задачу.

merge_tree_min_read_task_size

Тип
NonZeroUInt64
По умолчанию
8
История версий
ВерсияЗначение по умолчаниюКомментарий
24.108новая настройка

Жесткий нижний предел размера задачи (даже если число гранул мало, а количество доступных потоков велико, мы не будем выделять задачи меньшего размера

merge_tree_min_rows_for_concurrent_read

Тип
UInt64
По умолчанию
163840

Если число строк, считываемых из файла таблицы MergeTree, превышает merge_tree_min_rows_for_concurrent_read, ClickHouse пытается читать этот файл параллельно в несколько потоков.

Возможные значения:

  • Положительное целое число.

merge_tree_min_rows_for_concurrent_read_for_remote_filesystem

Тип
UInt64
По умолчанию
0
История версий
ВерсияЗначение по умолчаниюКомментарий
24.100Настройка устарела

Минимальное количество строк, которое должно быть прочитано из одного файла, прежде чем движок MergeTree сможет распараллелить чтение из удалённой файловой системы. Мы не рекомендуем использовать эту настройку.

Возможные значения:

  • Положительное целое число.

merge_tree_min_rows_for_seek

Тип
UInt64
По умолчанию
0

Если расстояние между двумя блоками данных, которые нужно прочитать из одного файла, меньше merge_tree_min_rows_for_seek строк, то ClickHouse не выполняет seek в файле, а читает данные последовательно.

Возможные значения:

  • Любое положительное целое число.

merge_tree_prefetch_json_shared_data_substreams

Тип
Bool
По умолчанию
1
История версий
ВерсияЗначение по умолчаниюКомментарий
26.81Новая настройка для управления предварительным чтением под-потоков общих данных JSON, которые считываются с seek к метке в частях Wide.

Включает предварительное чтение под-потоков общих данных JSON в частях Wide, которые считываются с seek к метке. Такое предварительное чтение начинается с начала гранулы, тогда как под-поток обычно считывается не с этой позиции, поэтому оно может оказаться бесполезным. Отключите настройку, чтобы пропустить эти операции предварительного чтения.

merge_tree_read_split_ranges_into_intersecting_and_non_intersecting_injection_probability

Тип
Float
По умолчанию
0
История версий
ВерсияЗначение по умолчаниюКомментарий
24.30Для тестирования `PartsSplitter` — с указанной вероятностью при каждом чтении из MergeTree разделять диапазоны чтения на пересекающиеся и непересекающиеся.

Для тестирования PartsSplitter — с указанной вероятностью при каждом чтении из MergeTree разделять диапазоны чтения на пересекающиеся и непересекающиеся.

merge_tree_storage_snapshot_sleep_ms

Тип
UInt64
По умолчанию
0
История версий
ВерсияЗначение по умолчаниюКомментарий
25.60Новая настройка для отладки согласованности снимка хранилища при выполнении запроса

Добавляет искусственную задержку (в миллисекундах) при создании снимка хранилища для таблиц MergeTree. Используется только для тестирования и отладки.

Возможные значения:

  • 0 - Без задержки (по умолчанию)
  • N - Задержка в миллисекундах

merge_tree_use_const_size_tasks_for_remote_reading

Тип
Bool
По умолчанию
1

Использовать ли задачи фиксированного размера для чтения из удалённой таблицы.

merge_tree_use_deserialization_prefixes_cache

Тип
Bool
По умолчанию
1
История версий
ВерсияЗначение по умолчаниюКомментарий
25.21Новая настройка для управления использованием кэша префиксов десериализации в MergeTree

Включает кэширование метаданных столбцов из префиксов файлов при чтении с удалённых дисков в MergeTree.

merge_tree_use_prefixes_deserialization_thread_pool

Тип
Bool
По умолчанию
1
История версий
ВерсияЗначение по умолчаниюКомментарий
25.21Новая настройка, управляющая использованием пула потоков для параллельной десериализации префиксов в MergeTree

Включает использование пула потоков для параллельного чтения префиксов в частях Wide в MergeTree. Размер этого пула потоков задаётся настройкой сервера max_prefixes_deserialization_thread_pool_size.

merge_tree_use_v1_object_and_dynamic_serialization

Тип
Bool
По умолчанию
0
История версий
ВерсияЗначение по умолчаниюКомментарий
24.110Добавлена новая версия сериализации V2 для типов JSON и Dynamic

Если параметр включен, в MergeTree для типов JSON и Dynamic будет использоваться версия сериализации V1 вместо V2. Изменение этого параметра вступает в силу только после перезапуска сервера.

Navigation