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

MergeTree tables settings

Системная таблица system.merge_tree_settings показывает глобально установленные настройки MergeTree.

Настройки MergeTree могут быть заданы в секции merge_tree файла конфигурации сервера или указаны для каждой таблицы MergeTree отдельно в клауза SETTINGS оператора CREATE TABLE.

Пример настройки параметра max_suspicious_broken_parts:

Настройте значение по умолчанию для всех таблиц MergeTree в конфигурационном файле сервера:

Установить для конкретной таблицы:

Измените настройки для конкретной таблицы с помощью ALTER TABLE ... MODIFY SETTING:

Настройки MergeTree

adaptive_write_buffer_initial_size

Начальный размер адаптивного буфера записи

add_implicit_sign_column_constraint_for_collapsing_engine

Если true, добавляет неявное ограничение для колонки sign таблицы CollapsingMergeTree или VersionedCollapsingMergeTree, разрешая только допустимые значения (1 и -1).

add_minmax_index_for_numeric_columns

При включении для всех числовых колонок таблицы добавляются минимально-максимальные (пропускающие) индексы.

add_minmax_index_for_string_columns

При включении для всех строковых колонок таблицы добавляются минимально-максимальные (пропускающие) индексы.

allow_experimental_replacing_merge_with_cleanup

Experimental feature. Learn more.

Разрешить экспериментальные слияния CLEANUP для ReplacingMergeTree с колонкой is_deleted. При включении позволяет использовать OPTIMIZE ... FINAL CLEANUP для ручного слияния всех частей в партиции до одной части и удаления любых удалённых строк.

Также позволяет автоматическое выполнение таких слияний в фоновом режиме с настройками min_age_to_force_merge_seconds, min_age_to_force_merge_on_partition_only и enable_replacing_merge_with_cleanup_for_min_age_to_force_merge.

allow_experimental_reverse_key

Experimental feature. Learn more.

Включает поддержку порядка сортировки по убыванию в ключах сортировки MergeTree. Эта настройка особенно полезна для аналитики временных рядов и запросов Top-N, позволяя данным храниться в обратном хронологическом порядке для оптимизации производительности запросов.

При включенном allow_experimental_reverse_key вы можете определить порядок сортировки по убыванию в клаузе ORDER BY таблицы MergeTree. Это позволяет использовать более эффективные оптимизации ReadInOrder вместо ReadInReverseOrder для запросов на убывание.

Пример

Используя ORDER BY time DESC в запросе, применяется ReadInOrder.

Значение по умолчанию: false

allow_floating_point_partition_key

Включает использование чисел с плавающей точкой в качестве ключа партиции.

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

  • 0 — Ключ партиции с плавающей точкой не разрешен.
  • 1 — Ключ партиции с плавающей точкой разрешен.

allow_nullable_key

Разрешить Nullable типы в качестве первичных ключей.

allow_reduce_blocking_parts_task

Фоновая задача, которая уменьшает блокирующие части для общих таблиц merge tree. Только в ClickHouse Cloud

allow_remote_fs_zero_copy_replication

Beta feature. Learn more.

Не используйте эту настройку в производстве, так как она не готова.

allow_summing_columns_in_partition_or_order_key

При включении позволяет использовать в таблице SummingMergeTree колонки для суммирования в качестве ключей партиции или сортировки.

allow_suspicious_indices

Отклонять первичные/вторичные индексы и ключи сортировки с идентичными выражениями.

allow_vertical_merges_from_compact_to_wide_parts

Разрешает вертикальные слияния из компактных в широкие части. Эта настройка должна иметь одно и то же значение на всех репликах.

always_fetch_merged_part

Если true, эта реплика никогда не объединяет части и всегда загружает объединенные части из других реплик.

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

  • true, false

Всегда копируйте данные вместо жестких ссылок во время мутаций/замен/отсоединений и т.д.

apply_patches_on_merge

Если true, патч части применяются при слиянии.

assign_part_uuids

При включении для каждой новой части будет назначен уникальный идентификатор части. Перед включением проверьте, что все реплики поддерживают UUID версии 4.

async_block_ids_cache_update_wait_ms

Как долго каждая итерация вставки будет ждать обновления кеша async_block_ids.

async_insert

Если true, данные из оператора INSERT хранятся в очереди и затем сбрасываются в таблицу в фоновом режиме.

background_task_preferred_step_execution_time_ms

Целевое время выполнения одного шага слияния или мутации. Может быть превышено, если один шаг занимает больше времени.

cache_populated_by_fetch

примечание

Эта настройка применяется только к ClickHouse Cloud.

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

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

Смотрите также

check_delay_period

Устаревшая настройка, ничего не делает.

check_sample_column_is_correct

Включает проверку при создании таблицы на то, что тип данных колонки для выборки или выражения выборки корректен. Тип данных должен быть одним из беззнаковых типов данных: UInt8, UInt16, UInt32, UInt64.

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

  • true — Проверка включена.
  • false — Проверка отключена при создании таблицы.

Значение по умолчанию: true.

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

clean_deleted_rows

Устаревшая настройка, ничего не делает.

cleanup_delay_period

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

cleanup_delay_period_random_add

Добавить равномерно распределенное значение от 0 до x секунд к cleanup_delay_period чтобы избежать эффекта стычки большого количества запросов и последующего DoS для ZooKeeper в случае очень большого количества таблиц.

cleanup_thread_preferred_points_per_iteration

Предпочтительный размер пакета для фоновой очистки (точки абстрактны, но 1 точка примерно эквивалентна 1 вставленному блоку).

cleanup_threads

Потоки для очистки устаревших потоков. Доступно только в ClickHouse Cloud

columns_and_secondary_indices_sizes_lazy_calculation

Ленивая подсчет размеров колонок и вторичных индексов при первом запросе, вместо инициализации таблицы.

columns_to_prewarm_mark_cache

Список колонок для предварительного прогрева кэша меток (если включено). Пустой означает все колонки.

compact_parts_max_bytes_to_buffer

Доступно только в ClickHouse Cloud. Максимальное количество байт для записи в одной полосе в компактных частях.

compact_parts_max_granules_to_buffer

Доступно только в ClickHouse Cloud. Максимальное количество гранул для записи в одной полосе в компактных частях.

compact_parts_merge_max_bytes_to_prefetch_part

Доступно только в ClickHouse Cloud. Максимальный размер компактной части для чтения в целом объеме в память во время слияния.

compatibility_allow_sampling_expression_not_in_primary_key

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

compress_marks

Метрики поддерживают компрессию, уменьшают размер файлов меток и ускоряют сетевую передачу.

compress_primary_key

Поддержка компрессии первичного ключа, уменьшает размер файла первичного ключа и ускоряет сетевую передачу.

concurrent_part_removal_threshold

Активация параллельного удаления частей (см. 'max_part_removal_threads') только если число неактивных частей данных составляет как минимум это значение.

deduplicate_merge_projection_mode

Разрешать или запрещать создание проекции для таблицы с не классическим MergeTree, т.е. не (Replicated, Shared) MergeTree. Игнорировать опцию предназначена только для совместимости, что может привести к неправильному ответу. В противном случае, если разрешено, что делать при слиянии проекций, либо удалять, либо восстанавливать. Так классический MergeTree будет игнорировать эту настройку. Это также управляет OPTIMIZE DEDUPLICATE, но действует на всех членах семьи MergeTree. Похоже на опцию lightweight_mutation_projection_mode, также на уровне частей.

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

  • ignore
  • throw
  • drop
  • rebuild

default_compression_codec

Указывает кодек сжатия по умолчанию, который будет использоваться, если для конкретной колонки в декларации таблицы не определен. Порядок выбора кодека сжатия для колонки:

  1. Кодек сжатия, определенный для колонки в декларации таблицы
  2. Кодек сжатия, определенный в default_compression_codec (эта настройка)
  3. Кодек сжатия по умолчанию, определенный в настройках compression Значение по умолчанию: пустая строка (не определено).

detach_not_byte_identical_parts

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

Настройка применяется к таблицам MergeTree с включенной репликацией данных.

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

  • 0 — Части удаляются.
  • 1 — Части отсоединяются.

detach_old_local_parts_when_cloning_replica

Не удалять старые локальные части при восстановлении потерянной реплики.

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

  • true
  • false

disable_detach_partition_for_zero_copy_replication

Отключить запрос DETACH PARTITION для репликации без копирования.

disable_fetch_partition_for_zero_copy_replication

Отключить запрос FETCH PARTITION для репликации без копирования.

disable_freeze_partition_for_zero_copy_replication

Отключить запрос FREEZE PARTITION для репликации без копирования.

disk

Имя диска для хранения. Может быть указано вместо политики хранения.

enable_block_number_column

Включить хранение колонки _block_number для каждой строки.

enable_block_offset_column

Сохраняет виртуальную колонку _block_number при слияниях.

enable_index_granularity_compression

Сжимает в памяти значения гранулярности индекса, если это возможно.

enable_max_bytes_limit_for_min_age_to_force_merge

Если настройки min_age_to_force_merge_seconds и min_age_to_force_merge_on_partition_only должны уважать настройку max_bytes_to_merge_at_max_space_in_pool.

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

  • true
  • false

enable_mixed_granularity_parts

Включает или отключает переход на контроль размера гранул с помощью настройки index_granularity_bytes. До версии 19.11 существовала только настройка index_granularity для ограничения размера гранулы. Настройка index_granularity_bytes улучшает производительность ClickHouse при выборке данных из таблиц с большими строками (десятки и сотни мегабайт). Если у вас есть таблицы с большими строками, вы можете включить эту настройку для таблиц для повышения эффективности запросов SELECT.

enable_replacing_merge_with_cleanup_for_min_age_to_force_merge

Experimental feature. Learn more.

Следует ли использовать слияния CLEANUP для ReplacingMergeTree при объединении партиций в одну часть. Требуются включенные allow_experimental_replacing_merge_with_cleanup, min_age_to_force_merge_seconds и min_age_to_force_merge_on_partition_only.

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

  • true
  • false

enable_the_endpoint_id_with_zookeeper_name_prefix

Включить идентификатор конечной точки с префиксом имени zookeeper для реплицированной таблицы merge tree.

enable_vertical_merge_algorithm

Включить использование вертикального алгоритма слияния.

enforce_index_structure_match_on_partition_manipulation

Если эта настройка включена для целевой таблицы запроса манипуляции с партицией (ATTACH/MOVE/REPLACE PARTITION), индексы и проекции должны быть идентичны между исходными и целевыми таблицами. В противном случае целевой таблицей может быть супермножество индексов и проекций исходной таблицы.

exclude_deleted_rows_for_part_size_in_merge

Если включено, фактический оцененный размер частей данных (т.е. исключая строки, которые были удалены с помощью DELETE FROM) будет использоваться при выборе частей для слияния. Обратите внимание, что это поведение инициируется только для частям данных, затронутым DELETE FROM, выполненным после включения этой настройки.

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

  • true
  • false

Смотрите также

execute_merges_on_single_replica_time_threshold

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

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

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

fault_probability_after_part_commit

Для тестирования. Не изменяйте это значение.

fault_probability_before_part_commit

Для тестирования. Не изменяйте это значение.

finished_mutations_to_keep

Сколько записей о завершенных мутациях следует хранить. Если ноль, то хранятся все.

force_read_through_cache_for_merges

Experimental feature. Learn more.

Принудительное чтение через файловый кэш для слияний.

fsync_after_insert

Выполнять fsync для каждой вставленной части. Значительно снижает производительность вставок, не рекомендуется использовать с широкими частями.

fsync_part_directory

Выполнять fsync для каталога частей после всех операций с частями (записи, переименования и т.д.).

in_memory_parts_enable_wal

Устаревшая настройка, ничего не делает.

in_memory_parts_insert_sync

Устаревшая настройка, ничего не делает.

inactive_parts_to_delay_insert

Если количество неактивных частей в одной партиции таблицы превышает значение inactive_parts_to_delay_insert, вставка INSERT искусственно замедляется.

подсказка

Это полезно, когда сервер не успевает быстро очищать части.

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

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

inactive_parts_to_throw_insert

Если количество неактивных частей в одной партиции превышает значение inactive_parts_to_throw_insert, INSERT прерывается с следующей ошибкой:

"Слишком много неактивных частей (N). Очистка частей обрабатывается значительно медленнее, чем вставки" исключение."

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

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

index_granularity

Максимальное количество строк данных между метками индекса. То есть, сколько строк соответствует одному значению первичного ключа.

index_granularity_bytes

Максимальный размер гранул данных в байтах.

Чтобы ограничить размер гранулы только количеством строк, установите на 0 (не рекомендуется).

initialization_retry_period

Период повторной попытки для инициализации таблицы в секундах.

kill_delay_period

Устаревшая настройка, ничего не делает.

kill_delay_period_random_add

Устаревшая настройка, ничего не делает.

kill_threads

Устаревшая настройка, ничего не делает.

lightweight_mutation_projection_mode

По умолчанию легковесное удаление DELETE не работает для таблиц с проекциями. Это связано с тем, что строки в проекции могут быть затронуты операцией DELETE. Поэтому значение по умолчанию будет равным throw. Однако эта опция может изменить поведение. С значениями либо drop, либо rebuild, удаления будут работать с проекциями. drop удалит проекцию, поэтому это может быть быстро в текущем запросе, поскольку проекция будет удалена, но медленно в будущих запросах, так как проекция больше не связана. rebuild перестроит проекцию, что может повлиять на производительность текущего запроса, но может ускорить будущие запросы. Хорошо, что эти опции будут работать только на уровне частей, что означает, что проекции в частях, которые не затрагиваются, останутся нетронутыми, а не вызовут каких-либо действий, таких как удаление или восстановление.

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

  • throw
  • drop
  • rebuild

load_existing_rows_count_for_old_parts

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

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

  • true
  • false

Смотрите также

lock_acquire_timeout_for_background_operations

Для фоновых операций, таких как слияния, мутации и т.д. Сколько секунд до неудачи в получении блокировок таблицы.

marks_compress_block_size

Размер блока сжатия меток, фактический размер блока для сжатия.

marks_compression_codec

Кодирование сжатия, используемое метками, метки достаточно малы и кешируются, поэтому по умолчанию используется сжатие ZSTD(3).

materialize_skip_indexes_on_merge

При включении слияния создают и сохраняют пропускающие индексы для новых частей. В противном случае их могут создавать/сохранять с помощью явного MATERIALIZE INDEX.

materialize_ttl_recalculate_only

Только перерасчет информации ttl при MATERIALIZE TTL.

max_avg_part_size_for_too_many_parts

Проверка "слишком много частей" согласно 'parts_to_delay_insert' и 'parts_to_throw_insert' будет активна только если средний размер части (в соответствующей партиции) не больше указанного порога. Если он больше указанного порога, вставки не будут ни замедлены, ни отклонены. Это позволяет иметь сотни терабайт в одной таблице на одном сервере, если части успешно объединяются в более крупные. Это не влияет на пределы для неактивных частей или общих частей.

max_bytes_to_merge_at_max_space_in_pool

Максимальный общий размер частей (в байтах), которые можно объединить в одну часть, если достаточно ресурсов. Примерно соответствует максимальному возможному размеру части, созданной автоматическим фоновым слиянием. (0 означает, что слияния будут отключены)

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

  • Любое неотрицательное целое число.

Планировщик слияний периодически анализирует размеры и количество частей в партициях, и если в пуле достаточно свободных ресурсов, он начинает фоновое слияние. Слияния происходят до тех пор, пока общий размер исходных частей не превысит max_bytes_to_merge_at_max_space_in_pool.

Слияния, инициированные OPTIMIZE FINAL, игнорируют max_bytes_to_merge_at_max_space_in_pool (учитывается только свободное место на диске).

max_bytes_to_merge_at_min_space_in_pool

Максимальный общий размер части (в байтах), который можно объединить в одну часть с минимальными доступными ресурсами в фонном пуле.

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

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

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

max_cleanup_delay_period

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

max_compress_block_size

Максимальный размер блоков необработанных данных перед их сжатием для записи в таблицу. Вы также можете указать эту настройку в глобальных настройках (см. max_compress_block_size). Значение, указанное при создании таблицы, переопределяет глобальное значение для этой настройки.

max_concurrent_queries

Максимальное количество одновременно выполняемых запросов, связанных с таблицей MergeTree. Запросы все еще будут ограничены другими настройками max_concurrent_queries.

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

  • Положительное целое число.
  • 0 — Без ограничения.

Значение по умолчанию: 0 (без ограничения).

Пример

max_delay_to_insert

Значение в секундах, которое используется для расчета задержки INSERT, если количество активных частей в одной партиции превышает значение parts_to_delay_insert.

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

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

Задержка (в миллисекундах) для INSERT рассчитывается по формуле:

Например, если в партиции 299 активных частей, а parts_to_throw_insert = 300, parts_to_delay_insert = 150, max_delay_to_insert = 1, INSERT откладывается на pow( 1 * 1000, (1 + 299 - 150) / (300 - 150) ) = 1000 миллисекунд.

Начиная с версии 23.1 формула была изменена на:

Например, если в партиции 224 активные части, а parts_to_throw_insert = 300, parts_to_delay_insert = 150, max_delay_to_insert = 1, min_delay_to_insert_ms = 10, INSERT откладывается на max( 10, 1 * 1000 * (224 - 150 + 1) / (300 - 150) ) = 500 миллисекунд.

max_delay_to_mutate_ms

Максимальная задержка мутации таблицы MergeTree в миллисекундах, если есть много незавершенных мутаций.

max_digestion_size_per_segment

Максимальное количество байтов для обработки на сегмент для построения индекса GIN.

max_file_name_length

Максимальная длина имени файла, чтобы сохранить его без хеширования. Действует только если настройка replace_long_file_name_to_hash включена. Значение этой настройки не включает длину расширения файла. Поэтому рекомендуется установить его ниже максимальной длины имени файла (обычно 255 байт) с некоторым запасом, чтобы избежать ошибок файловой системы.

max_files_to_modify_in_alter_columns

Не применять ALTER, если количество файлов для модификации (удаления, добавления) превышает эту настройку.

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

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

Значение по умолчанию: 75.

max_files_to_remove_in_alter_columns

Не применять ALTER, если количество файлов для удаления превышает эту настройку.

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

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

max_merge_delayed_streams_for_parallel_write

Максимальное количество потоков (колонок), которые могут быть очищены параллельно (аналог max_insert_delayed_streams_for_parallel_write для слияний). Работает только для вертикальных слияний.

max_merge_selecting_sleep_ms

Максимальное время ожидания перед повторной попыткой выбрать части для слияния после того, как не было выбрано частей. Более низкая настройка вызовет частое выполнение задач выбора в background_schedule_pool, что приведет к большому количеству запросов к ZooKeeper в масштабируемых кластерах.

max_number_of_merges_with_ttl_in_pool

Когда в пуле имеется больше указанного количества слияний с записями TTL, не назначать новое слияние с TTL. Это делается для того, чтобы оставить свободные потоки для обычных слияний и избежать «Слишком много частей».

max_number_of_mutations_for_replica

Ограничить количество мутаций частей на реплику до указанного количества. Ноль означает отсутствие ограничения на количество мутаций на реплику (выполнение все еще может быть ограничено другими настройками).

max_part_loading_threads

Устаревшая настройка, ничего не делает.

max_part_removal_threads

Устаревшая настройка, ничего не делает.

max_partitions_to_read

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

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

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

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

Вы также можете указать настройку сложности запроса max_partitions_to_read на уровне запроса / сессии / профиля.

max_parts_in_total

Если общее количество активных частей во всех партициях таблицы превышает значение max_parts_in_total, INSERT прерывается с исключением Слишком много частей (N).

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

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

Большое количество частей в таблице снижает производительность запросов ClickHouse и увеличивает время загрузки ClickHouse. Чаще всего это является следствием неправильного проектирования (ошибки при выборе стратегии распределения - слишком маленькие партиции).

max_parts_to_merge_at_once

Максимальное количество частей, которые могут быть слиты одновременно (0 - отключено). Не влияет на запрос OPTIMIZE FINAL.

max_postpone_time_for_failed_mutations_ms

Максимальное время задержки для неудачных мутаций.

max_postpone_time_for_failed_replicated_fetches_ms

Максимальное время задержки для неудачных реплицированных выборок.

max_postpone_time_for_failed_replicated_merges_ms

Максимальное время задержки для неудачных реплицированных слияний.

max_postpone_time_for_failed_replicated_tasks_ms

Максимальное время задержки для неудачных реплицированных задач. Значение используется, если задача не является выборкой, слиянием или мутацией.

max_projections

Максимальное количество проекций дерева слияний.

max_replicated_fetches_network_bandwidth

Ограничивает максимальную скорость обмена данными по сети в байтах в секунду для реплицированных получений. Эта настройка применяется к конкретной таблице, в отличие от настройки max_replicated_fetches_network_bandwidth_for_server, которая применяется к серверу.

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

Настройка не выполняется совершенно точно.

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

  • Положительное целое число.
  • 0 — Без ограничения.

Значение по умолчанию: 0.

Использование

Может быть использовано для ограничения скорости при репликации данных для добавления или замены новых узлов.

max_replicated_logs_to_keep

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

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

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

max_replicated_merges_in_queue

Сколько задач слияния и мутации частей разрешено одновременно в очереди ReplicatedMergeTree.

max_replicated_merges_with_ttl_in_queue

Сколько задач слияния частей с TTL разрешено одновременно в очереди ReplicatedMergeTree.

max_replicated_mutations_in_queue

Сколько задач мутации частей разрешено одновременно в очереди ReplicatedMergeTree.

max_replicated_sends_network_bandwidth

Ограничивает максимальную скорость обмена данными по сети в байтах в секунду для реплицированных отправок. Эта настройка применяется к конкретной таблице, в отличие от настройки max_replicated_sends_network_bandwidth_for_server, которая применяется к серверу.

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

Настройка не выполняется совершенно точно.

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

  • Положительное целое число.
  • 0 — Без ограничения.

Использование

Может быть использовано для ограничения скорости при репликации данных для добавления или замены новых узлов.

max_suspicious_broken_parts

Если количество поврежденных частей в одной партиции превышает значение max_suspicious_broken_parts, автоматическое удаление запрещено.

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

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

max_suspicious_broken_parts_bytes

Максимальный размер всех поврежденных частей, если больше - запретить автоматическое удаление.

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

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

merge_max_block_size

Количество строк, которые читаются из слитых частей в оперативную память.

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

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

Слияние читает строки из частей блоками по merge_max_block_size строк, затем сливает и записывает результат в новую часть. Прочитанный блок помещается в ОЗУ, поэтому merge_max_block_size влияет на размер ОЗУ, необходимого для слияния. Таким образом, слияния могут потреблять большое количество ОЗУ для таблиц с очень широкими строками (если средний размер строки 100кб, то при слиянии 10 частей, (100кб * 10 * 8192) = ~ 8ГБ ОЗУ). Уменьшая merge_max_block_size, вы можете снизить количество ОЗУ, необходимого для слияния, но замедлить само слияние.

merge_max_block_size_bytes

Сколько байтов в блоках должно формироваться для операций слияния. По умолчанию имеет то же значение, что и index_granularity_bytes.

merge_max_bytes_to_prewarm_cache

Доступно только в ClickHouse Cloud. Максимальный размер части (компактной или упакованной) для предварительного разогрева кэша во время слияния.

merge_selecting_sleep_ms

Минимальное время ожидания перед повторной попыткой выбрать части для слияния после того, как не было выбрано частей. Более низкая настройка вызовет частое выполнение задач выбора в background_schedule_pool, что приведет к большому количеству запросов к ZooKeeper в масштабируемых кластерах.

merge_selecting_sleep_slowdown_factor

Время ожидания для задачи выбора слияния умножается на этот коэффициент, когда нечего сливать и делится, когда слияние было назначено.

merge_selector_algorithm

Experimental feature. Learn more.

Алгоритм выбора частей для назначения слияний.

merge_selector_base

Влияет на увеличение записи назначенных слияний (настройка для экспертов, не изменяйте, если не понимаете, что она делает). Работает для простых и стохастически простых селекторов слияний.

merge_selector_blurry_base_scale_factor

Контролирует, когда логика начинает действовать относительно количества частей в партиции. Чем больше коэффициент, тем более запоздалая реакция будет.

merge_selector_enable_heuristic_to_remove_small_parts_at_right

Включить эвристику для выбора частей для слияния, которая удаляет части с правой стороны диапазона, если их размер меньше указанного соотношения (0.01) общей суммы. Работает для простых и стохастически простых селекторов слияний.

merge_selector_window_size

Сколько частей смотреть одновременно.

merge_total_max_bytes_to_prewarm_cache

Доступно только в ClickHouse Cloud. Максимальный размер частей в целом для предварительного разогрева кэша во время слияния.

merge_tree_clear_old_broken_detached_parts_ttl_timeout_seconds

Устаревшая настройка, ничего не делает.

merge_tree_clear_old_parts_interval_seconds

Устанавливает интервал в секундах для ClickHouse для выполнения очистки старых частей, WALов и мутаций.

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

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

merge_tree_clear_old_temporary_directories_interval_seconds

Устанавливает интервал в секундах для ClickHouse для выполнения очистки старых временных каталогов.

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

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

merge_tree_enable_clear_old_broken_detached

Устаревшая настройка, ничего не делает.

merge_with_recompression_ttl_timeout

Минимальная задержка в секундах перед повторным слиянием с рекомпрессией TTL.

merge_with_ttl_timeout

Минимальная задержка в секундах перед повторным слиянием с удалением TTL.

merge_workload

Используется для регулирования того, как ресурсы используются и распределяются между слияниями и другими рабочими нагрузками. Указанное значение используется как значение настройки workload для фоновых слияний этой таблицы. Если не указано (пустая строка), то вместо этого используется настройка сервера merge_workload.

См. также

min_absolute_delay_to_close

Минимальная абсолютная задержка для закрытия, остановки обслуживания запросов и непринятия Ok во время проверки состояния.

min_age_to_force_merge_on_partition_only

Применять ли min_age_to_force_merge_seconds только к целой партиции, а не к подмножеству.

По умолчанию игнорирует настройку max_bytes_to_merge_at_max_space_in_pool (см. enable_max_bytes_limit_for_min_age_to_force_merge).

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

  • true, false

min_age_to_force_merge_seconds

Слить части, если каждая часть в диапазоне старше значения min_age_to_force_merge_seconds.

По умолчанию игнорирует настройку max_bytes_to_merge_at_max_space_in_pool (см. enable_max_bytes_limit_for_min_age_to_force_merge).

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

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

min_bytes_for_compact_part

Устаревшая настройка, ничего не делает.

min_bytes_for_full_part_storage

Доступно только в ClickHouse Cloud. Минимальный некорректированный размер в байтах для использования полного типа хранения для части данных вместо упакованного.

min_bytes_for_wide_part

Минимальное количество байтов/строк в части данных, которые могут быть сохранены в формате Wide. Вы можете установить одну, обе или ни одну из этих настроек.

min_bytes_to_prewarm_caches

Минимальный размер (некорректированные байты), чтобы разогреть кэш меток и основной кэш индекса для новых частей.

min_bytes_to_rebalance_partition_over_jbod

Устанавливает минимальное количество байтов для включения балансировки при распределении новых больших частей по дискам объемов JBOD.

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

  • Положительное целое число.
  • 0 — Балансировка отключена.

Использование

Значение настройки min_bytes_to_rebalance_partition_over_jbod не должно быть меньше значения max_bytes_to_merge_at_max_space_in_pool / 1024. В противном случае ClickHouse вызовет исключение.

min_compress_block_size

Минимальный размер блоков необработанных данных, необходимых для сжатия при записи следующей метки. Вы также можете указать эту настройку в глобальных настройках (см. min_compress_block_size). Значение, указанное при создании таблицы, переопределяет глобальное значение для этой настройки.

min_compressed_bytes_to_fsync_after_fetch

Минимальное количество сжатых байтов для выполнения fsync для части после выборки (0 - отключено).

min_compressed_bytes_to_fsync_after_merge

Минимальное количество сжатых байтов для выполнения fsync для части после слияния (0 - отключено).

min_delay_to_insert_ms

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

min_delay_to_mutate_ms

Минимальная задержка мутации таблицы MergeTree в миллисекундах, если имеется много незавершенных мутаций.

min_free_disk_bytes_to_perform_insert

Минимальное количество байтов, которые должны быть свободными на дисковом пространстве для вставки данных. Если количество доступных свободных байтов меньше, чем min_free_disk_bytes_to_perform_insert, то выбрасывается исключение, и вставка не выполняется. Обратите внимание, что эта настройка:

  • учитывает настройку keep_free_space_bytes.
  • не учитывает количество данных, которые будут записаны операцией INSERT.
  • проверяется только в случае, если указано положительное (ненулевое) количество байтов.

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

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

Если указаны обе настройки min_free_disk_bytes_to_perform_insert и min_free_disk_ratio_to_perform_insert, ClickHouse будет ориентироваться на значение, которое позволит выполнить вставки на большем количестве свободной памяти.

min_free_disk_ratio_to_perform_insert

Минимальное отношение свободного к общему дисковому пространству для выполнения INSERT. Должно быть вещественным числом между 0 и 1. Обратите внимание, что эта настройка:

  • учитывает настройку keep_free_space_bytes.
  • не учитывает количество данных, которые будут записаны операцией INSERT.
  • проверяется только в случае, если указано положительное (ненулевое) отношение.

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

  • Float, 0.0 - 1.0.

Обратите внимание, что если указаны обе настройки min_free_disk_ratio_to_perform_insert и min_free_disk_bytes_to_perform_insert, ClickHouse будет учитывать значение, которое позволит выполнить вставки на большем количестве свободной памяти.

min_index_granularity_bytes

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

Для обеспечения защиты от случайного создания таблиц с очень низким index_granularity_bytes.

min_marks_to_honor_max_concurrent_queries

Минимальное количество меток, прочитанных запросом для применения настройки max_concurrent_queries.

примечание

Запросы все еще будут ограничены другими настройками max_concurrent_queries.

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

  • Положительное целое число.
  • 0 — Отключено (лимит max_concurrent_queries не применяется ни к каким запросам).

Пример

min_merge_bytes_to_use_direct_io

Минимальный объем данных для операции слияния, необходимый для использования прямого доступа к разделу хранения. При слиянии частей данных ClickHouse вычисляет общий объем хранилища всех данных, которые будут объединены. Если объем превышает min_merge_bytes_to_use_direct_io байт, ClickHouse читает и записывает данные на дисковое хранилище, используя интерфейс прямого доступа (O_DIRECT). Если min_merge_bytes_to_use_direct_io = 0, то прямой доступ отключен.

min_parts_to_merge_at_once

Минимальное количество частей данных, которые селектор слияния может выбрать для слияния одновременно (настройка для экспертов, не изменяйте, если не понимаете, что она делает). 0 - отключено. Работает для простых и стохастически простых селекторов слияний.

min_relative_delay_to_close

Минимальная задержка от других реплик для закрытия, остановки обслуживания запросов и непринятия Ok во время проверки состояния.

min_relative_delay_to_measure

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

min_relative_delay_to_yield_leadership

Устаревшая настройка, ничего не делает.

min_replicated_logs_to_keep

Храните около этого числа последних записей в журнале ZooKeeper, даже если они устарели. Это не влияет на работу таблиц: используется только для диагностики журнала ZooKeeper перед очисткой.

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

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

min_rows_for_compact_part

Устаревшая настройка, ничего не делает.

min_rows_for_full_part_storage

Доступно только в ClickHouse Cloud. Минимальное количество строк для использования полного типа хранения для части данных вместо упакованного.

min_rows_for_wide_part

Минимальное количество строк для создания части в широком формате вместо компактного.

min_rows_to_fsync_after_merge

Минимальное количество строк для выполнения fsync для части после слияния (0 - отключено).

mutation_workload

Используется для регулирования того, как ресурсы используются и распределяются между мутациями и другими рабочими нагрузками. Указанное значение используется как значение настройки workload для фоновых мутаций этой таблицы. Если не указано (пустая строка), то вместо этого используется настройка сервера mutation_workload.

См. также

non_replicated_deduplication_window

Количество недавно вставленных блоков в нереплицированной MergeTree таблице, для которых хранятся хеш-суммы для проверки на дублирование.

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

  • Любое положительное целое число.
  • 0 (отключить дедупликацию).

Механизм дедупликации используется, аналогичный реплицированным таблицам (см. настройку replicated_deduplication_window). Хеш-суммы созданных частей записываются в локальный файл на диске.

notify_newest_block_number

Experimental feature. Learn more.

Уведомить о номере самого нового блока для SharedJoin или SharedSet. Только в ClickHouse Cloud.

number_of_free_entries_in_pool_to_execute_mutation

Когда имеется менее указанного количества свободных записей в пуле, не выполнять мутации частей. Это делается для того, чтобы оставить свободные потоки для обычных слияний и избежать ошибок «Слишком много частей».

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

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

Использование

Значение настройки number_of_free_entries_in_pool_to_execute_mutation должно быть меньше значения background_pool_size * background_merges_mutations_concurrency_ratio. В противном случае ClickHouse вызовет исключение.

number_of_free_entries_in_pool_to_execute_optimize_entire_partition

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

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

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

Значение настройки number_of_free_entries_in_pool_to_execute_optimize_entire_partition должно быть меньше значения background_pool_size * background_merges_mutations_concurrency_ratio. В противном случае ClickHouse вызовет исключение.

number_of_free_entries_in_pool_to_lower_max_size_of_merge

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

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

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

number_of_mutations_to_delay

Если в таблице есть как минимум столь много незавершённых мутаций, искусственно замедлить мутации в таблице. Отключено, если установлено значение 0.

number_of_mutations_to_throw

Если в таблице есть как минимум столь много незавершённых мутаций, выбросить исключение 'Слишком много мутаций'. Отключено, если установлено значение 0.

number_of_partitions_to_consider_for_merge

Доступно только в ClickHouse Cloud. Максимум N партиций, которые мы будем учитывать для слияния. Партиции выбираются случайным образом с учетом веса, где вес - это количество частей данных, которые могут быть слиты в этой партиции.

old_parts_lifetime

Время (в секундах) хранения неактивных частей для защиты от потери данных в случае спонтанной перезагрузки сервера.

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

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

После слияния нескольких частей в новую часть ClickHouse помечает оригинальные части как неактивные и удаляет их только через old_parts_lifetime секунд. Неактивные части удаляются, если они не используются текущими запросами, т.е. если refcount части равен 1.

fsync не вызывается для новых частей, поэтому в течение некоторого времени новые части существуют только в оперативной памяти сервера (кэше ОС). Если сервер перезагрузится спонтанно, новые части могут быть утеряны или повреждены. Чтобы защитить данные, неактивные части не удаляются немедленно.

Во время запуска ClickHouse проверяет целостность частей. Если слитая часть повреждена, ClickHouse возвращает неактивные части в активный список, и позднее снова выполняет их слияние. Затем поврежденная часть переименовывается (добавляется префикс broken_) и перемещается в папку detached. Если слитая часть не повреждена, оригинальные неактивные части переименовываются (добавляется префикс ignored_) и перемещаются в папку detached.

Значение по умолчанию dirty_expire_centisecs (настройка ядра Linux) равно 30 секундам (максимальное время, в течение которого записанные данные хранятся только в ОЗУ), но под высоким нагрузками на дисковую систему данные могут записываться значительно позже. Экспериментально было выбрано значение 480 секунд для old_parts_lifetime, в течение которого новая часть гарантированно записывается на диск.

optimize_row_order

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

Имеет эффект только для обычных таблиц с движком MergeTree. Ничего не делает для специализированных таблиц с движком MergeTree (например, CollapsingMergeTree).

Таблицы MergeTree (по желанию) сжимаются с помощью кодеков сжатия. Общие кодеки сжатия, такие как LZ4 и ZSTD, достигают максимальных коэффициентов сжатия, если данные имеют паттерны. Долгие последовательности одного и того же значения, как правило, хорошо сжимаются.

Если эта настройка включена, ClickHouse пытается сохранить данные в вновь вставленных частях в порядке строк, который минимизирует количество равных

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

Нахождение оптимального порядка строк вычислительно невозможно (NP сложная задача). Поэтому ClickHouse использует эвристику для быстрого нахождения порядка строк, который всё ещё улучшает коэффициенты сжатия по сравнению с оригинальным порядком строк.

Эвристика для поиска порядка строк

В общем случае можно свободно перемешивать строки таблицы (или части таблицы), поскольку SQL считает одну и ту же таблицу (часть таблицы) в разных порядках равнозначными.

Эта свобода перемешивания строк ограничивается, когда для таблицы определяется первичный ключ. В ClickHouse первичный ключ C1, C2, ..., CN обязывает строки таблицы быть отсортированными по столбцам C1, C2, ... Cn (кластерный индекс). В результате строки могут перемешиваться только внутри "классов эквивалентности" строк, т.е. строк, которые имеют одинаковые значения в своих столбцах первичного ключа. Интуиция заключается в том, что первичные ключи с высокой кардинальностью, например, первичные ключи, включающие колонку с меткой времени DateTime64, приводят к множеству маленьких классов эквивалентности. Точно так же таблицы с первичным ключом низкой кардинальности создают несколько и крупных классов эквивалентности. Таблица без первичного ключа представляет крайний случай единого класса эквивалентности, который охватывает все строки.

Чем меньше и больше классы эквивалентности, тем выше степень свободы при перемешивании строк.

Эвристика, применяемая для нахождения наилучшего порядка строк в каждом классе эквивалентности, предложена D. Lemire, O. Kaser в Сортировка столбцов для меньших индексов и основана на сортировке строк внутри каждого класса эквивалентности по возрастающей кардинальности не первичных ключевых колонок.

Эта эвристика выполняет три шага:

  1. Найти все классы эквивалентности на основе значений строк в столбцах первичного ключа.
  2. Для каждого класса эквивалентности вычислить (обычно оценить) кардинальности не первичных ключевых колонок.
  3. Для каждого класса эквивалентности отсортировать строки в порядке возрастающей кардинальности не первичногоключевых колонок.

Если эта настройка включена, операции вставки приводят к дополнительным затратам CPU на анализ и оптимизацию порядка строк новых данных. Ожидается, что INSERT займет 30-50% больше времени в зависимости от характеристик данных. Коэффициенты сжатия LZ4 или ZSTD в среднем улучшаются на 20-40%.

Эта настройка работает лучше всего для таблиц без первичного ключа или с первичным ключом низкой кардинальности, т.е. для таблиц с небольшим количеством различных значений первичного ключа. Первичные ключи с высокой кардинальностью, например, включающие колонки с метками времени типа DateTime64, не ожидается, что получат выгоду от этой настройки.

part_moves_between_shards_delay_seconds

Experimental feature. Learn more.

Время, которое нужно подождать до/после перемещения частей между шардерами.

part_moves_between_shards_enable

Experimental feature. Learn more.

Экспериментальная/незавершенная функция перемещения частей между шардерами. Не учитывает выражения шардирования.

parts_to_delay_insert

Если количество активных частей в одной партиции превышает значение parts_to_delay_insert, INSERT искусственно замедляется.

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

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

ClickHouse искусственно выполняет INSERT дольше (добавляет 'sleep'), чтобы фоновый процесс слияния мог быстрее слить части, чем они добавляются.

parts_to_throw_insert

Если количество активных частей в одной партиции превышает значение parts_to_throw_insert, INSERT прерывается с исключением Слишком много частей (N). Слияния обрабатываются значительно медленнее, чем вставки.

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

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

Для достижения максимальной производительности запросов SELECT необходимо уменьшить количество обрабатываемых частей, см. Merge Tree.

До версии 23.6 это значение было установлено на 300. Вы можете задать более высокое другое значение, это уменьшит вероятность ошибки Слишком много частей, но в то же время производительность SELECT может ухудшиться. Также в случае проблем со слиянием (например, из-за недостаточного дискового пространства) вы заметите это позже, чем вы бы заметили с оригинальными 300.

prefer_fetch_merged_part_size_threshold

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

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

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

prefer_fetch_merged_part_time_threshold

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

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

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

prewarm_mark_cache

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

prewarm_primary_key_cache

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

primary_key_compress_block_size

Размер блока сжатия первичного ключа, фактический размер блока для сжатия.

primary_key_compression_codec

Кодек сжатия, используемый первичным ключом, если он достаточно мал и кэшируется, поэтому используется кодек сжатия по умолчанию ZSTD(3).

primary_key_lazy_load

Загружать первичный ключ в память при первом использовании вместо на инициализации таблицы. Это позволяет сэкономить память при наличии большого количества таблиц.

primary_key_ratio_of_unique_prefix_values_to_skip_suffix_columns

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

ratio_of_defaults_for_sparse_serialization

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

Если колонка разреженная (содержит в основном нули), ClickHouse может закодировать её в разреженном формате и автоматически оптимизировать вычисления - даные не требуют полной декомпрессии во время запросов. Чтобы включить эту разреженную сериализацию, определите настройку ratio_of_defaults_for_sparse_serialization менее 1.0. Если значение будет больше или равно 1.0, то колонки всегда будут записываться с использованием обычной полной сериализации.

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

  • число с плавающей запятой между 0 и 1, чтобы включить разреженную сериализацию
  • 1.0 (или больше), если вы не хотите использовать разреженную сериализацию

Пример

Обратите внимание, что колонка s в следующей таблице является пустой строкой для 95% строк. В my_regular_table мы не используем разреженную сериализацию, а в my_sparse_table мы устанавливаем ratio_of_defaults_for_sparse_serialization на 0.95:

Обратите внимание, что колонка s в my_sparse_table использует меньше места для хранения на диске:

Вы можете проверить, использует ли колонка разреженное кодирование, просмотрев колонку serialization_kind в таблице system.parts_columns:

Вы можете увидеть, какие части s были сохранены с использованием разреженной сериализации:

reduce_blocking_parts_sleep_ms

Доступно только в ClickHouse Cloud. Минимальное время ожидания перед повторной попыткой уменьшения блокирующих частей после того, как диапазоны не были удалены/заменены. Более низкое значение будет часто запускать задачи в background_schedule_pool, что приведет к большому количеству запросов к ZooKeeper в кластерах большого масштаба.

refresh_parts_interval

Если оно больше нуля — обновить список частей данных из файловой системы, чтобы проверить, были ли обновлены данные в фоне. Можно установить только в том случае, если таблица расположена на дисках только для чтения (что означает, что это реплика только для чтения, в то время как данные пишутся другой репликой).

remote_fs_execute_merges_on_single_replica_time_threshold

Когда это значение больше нуля, только одна реплика начинает слияние немедленно, если слитая часть находится на общем хранилище и включена опция allow_remote_fs_zero_copy_replication.

примечание

Zero-copy replication не готова для производства. Zero-copy replication по умолчанию отключена в ClickHouse версии 22.8 и выше. Эта функция не рекомендуется для использования в производственной среде.

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

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

remote_fs_zero_copy_path_compatible_mode

Experimental feature. Learn more.

Запускать zero-copy в совместимом режиме во время процесса преобразования.

remote_fs_zero_copy_zookeeper_path

Experimental feature. Learn more.

Путь ZooKeeper для информации о zero-copy, не зависящей от таблицы.

remove_empty_parts

Удалять пустые части после того, как они были удалены с помощью TTL, мутации или алгоритма слияния.

remove_rolled_back_parts_immediately

Experimental feature. Learn more.

Настройка для незавершенной экспериментальной функции.

remove_unused_patch_parts

Удалять в фоновом режиме патч-части, которые применены ко всем активным частям.

replace_long_file_name_to_hash

Если имя файла для колонки слишком длинное (более max_file_name_length байт), заменить его на SipHash128.

replicated_can_become_leader

Если true, реплики реплицированных таблиц на этом узле будут пытаться получить лидерство.

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

  • true
  • false

replicated_deduplication_window

Количество наиболее недавно вставленных блоков, для которых ClickHouse Keeper хранит хэш-суммы для проверки на дубликаты.

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

  • любое положительное целое число.
  • 0 (отключить дедупликацию)

Команда Insert создает один или несколько блоков (частей). Для дедупликации вставок, при записи в реплицированные таблицы ClickHouse записывает хэш-суммы созданных частей в ClickHouse Keeper. Хэш-суммы хранятся только для наиболее последних блоков replicated_deduplication_window. Самые старые хэш-суммы удаляются из ClickHouse Keeper.

Большое количество для replicated_deduplication_window замедляет Inserts, так как необходимо сравнивать больше записей. Хэш-сумма вычисляется из состава имён и типов полей и данных вставленной части (поток байтов).

replicated_deduplication_window_for_async_inserts

Количество наиболее недавно асинхронно вставленных блоков, для которых ClickHouse Keeper хранит хэш-суммы для проверки на дубликаты.

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

  • любое положительное целое число.
  • 0 (отключить дедупликацию для async_inserts)

Команда Async Insert будет кэшироваться в одном или нескольких блоках (частях). Для дедупликации вставок, при записи в реплицированные таблицы ClickHouse записывает хэш-суммы каждой вставки в ClickHouse Keeper. Хэш-суммы хранятся только для наиболее последних блоков replicated_deduplication_window_for_async_inserts. Самые старые хэш-суммы удаляются из ClickHouse Keeper. Большое количество replicated_deduplication_window_for_async_inserts замедляет Async Inserts, так как необходимо сравнивать больше записей. Хэш-сумма вычисляется из состава имён и типов полей и данных вставки (поток байтов).

replicated_deduplication_window_seconds

Количество секунд, после которых хэш-суммы вставленных блоков будут удалены из ClickHouse Keeper.

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

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

Похожее на replicated_deduplication_window, параметр replicated_deduplication_window_seconds указывает, как долго хранить хэш-суммы блоков для дедупликации вставок. Хэш-суммы старше, чем replicated_deduplication_window_seconds, удаляются из ClickHouse Keeper, даже если они меньше, чем replicated_deduplication_window.

Время относительно времени самой последней записи, а не по часам. Если это единственная запись, она будет храниться вечно.

replicated_deduplication_window_seconds_for_async_inserts

Количество секунд, после которых хэш-суммы асинхронных вставок будут удалены из ClickHouse Keeper.

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

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

Похожее на replicated_deduplication_window_for_async_inserts, параметр replicated_deduplication_window_seconds_for_async_inserts указывает, как долго хранить хэш-суммы блоков для дедупликации асинхронных вставок. Хэш-суммы, старше replicated_deduplication_window_seconds_for_async_inserts, удаляются из ClickHouse Keeper, даже если они меньше, чем replicated_deduplication_window_for_async_inserts.

Время относительно времени самой последней записи, а не по часам. Если это единственная запись, она будет храниться вечно.

replicated_fetches_http_connection_timeout

Устаревшая настройка, не выполняет никаких действий.

replicated_fetches_http_receive_timeout

Устаревшая настройка, не выполняет никаких действий.

replicated_fetches_http_send_timeout

Устаревшая настройка, не выполняет никаких действий.

replicated_max_mutations_in_one_entry

Максимальное количество команд мутации, которые можно объединить и выполнить в одной записи MUTATE_PART (0 означает неограниченно).

replicated_max_parallel_fetches

Устаревшая настройка, не выполняет никаких действий.

replicated_max_parallel_fetches_for_host

Устаревшая настройка, не выполняет никаких действий.

replicated_max_parallel_fetches_for_table

Устаревшая настройка, не выполняет никаких действий.

replicated_max_parallel_sends

Устаревшая настройка, не выполняет никаких действий.

replicated_max_parallel_sends_for_table

Устаревшая настройка, не выполняет никаких действий.

replicated_max_ratio_of_wrong_parts

Если соотношение неправильных частей к общему количеству частей меньше этого - разрешить начать.

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

  • число с плавающей запятой от 0.0 до 1.0.

shared_merge_tree_create_per_replica_metadata_nodes

Включает создание узлов /metadata и /columns на каждую реплику в ZooKeeper. Доступно только в ClickHouse Cloud.

shared_merge_tree_disable_merges_and_mutations_assignment

Остановить назначение слияний для общего дерева слияний. Доступно только в ClickHouse Cloud.

shared_merge_tree_enable_coordinated_merges

Experimental feature. Learn more.

Включает стратегию скоординированных слияний.

shared_merge_tree_enable_keeper_parts_extra_data

Experimental feature. Learn more.

Включает запись атрибутов в виртуальные части и коммитирование блоков в Keeper.

shared_merge_tree_enable_outdated_parts_check

Включить проверку устаревших частей. Доступно только в ClickHouse Cloud.

shared_merge_tree_idle_parts_update_seconds

Интервал в секундах для обновления частей без триггера от наблюдения ZooKeeper в общем дереве слияний. Только доступно в ClickHouse Cloud.

shared_merge_tree_initial_parts_update_backoff_ms

Начальный отход для обновления частей. Доступно только в ClickHouse Cloud.

shared_merge_tree_interserver_http_connection_timeout_ms

Тайм-ауты для HTTP-соединения между серверами. Доступно только в ClickHouse Cloud.

shared_merge_tree_interserver_http_timeout_ms

Тайм-ауты для HTTP-общения между серверами. Доступно только в ClickHouse Cloud.

shared_merge_tree_leader_update_period_random_add_seconds

Добавить равномерно распределенное значение от 0 до x секунд к периоду обновления shared_merge_tree_leader, чтобы избежать эффекта дождевой избыточности. Доступно только в ClickHouse Cloud.

shared_merge_tree_leader_update_period_seconds

Максимальный период повторной проверки лидерства для обновления частей. Доступно только в ClickHouse Cloud.

shared_merge_tree_max_outdated_parts_to_process_at_once

Максимальное количество устаревших частей, которые лидер попытается подтвердить для удаления за один HTTP-запрос. Доступно только в ClickHouse Cloud.

shared_merge_tree_max_parts_update_backoff_ms

Максимальный отход для обновления частей. Доступно только в ClickHouse Cloud.

shared_merge_tree_max_parts_update_leaders_in_total

Максимальное количество лидеров обновления частей. Доступно только в ClickHouse Cloud.

shared_merge_tree_max_parts_update_leaders_per_az

Максимальное количество лидеров обновления частей. Доступно только в ClickHouse Cloud.

shared_merge_tree_max_replicas_for_parts_deletion

Максимальное количество реплик, которые будут участвовать в удалении частей (поток-убийца). Доступно только в ClickHouse Cloud.

shared_merge_tree_max_replicas_to_merge_parts_for_each_parts_range

Максимальное количество реплик, которые будут пытаться назначить потенциально конфликтующие слияния (это позволяет избежать избыточных конфликтов в назначениях слияний). 0 означает отключено. Доступно только в ClickHouse Cloud.

shared_merge_tree_max_suspicious_broken_parts

Максимум повреждённых частей для SMT, если больше - отказать в автоматическом отсоединении.

shared_merge_tree_max_suspicious_broken_parts_bytes

Максимальный размер всех сломанных частей для SMT, если больше - запретить автоматическое отсоединение.

shared_merge_tree_memo_ids_remove_timeout_seconds

Как долго мы храним идентификаторы мемуизации вставок, чтобы избежать неправильных действий во время повторных вставок. Доступно только в ClickHouse Cloud.

shared_merge_tree_merge_coordinator_election_check_period_ms

Experimental feature. Learn more.

Время между запусками потока выборов координатора выполнения слияния.

shared_merge_tree_merge_coordinator_factor

Experimental feature. Learn more.

Коэффициент времени для задержки потока координатора.

shared_merge_tree_merge_coordinator_fetch_fresh_metadata_period_ms

Experimental feature. Learn more.

Как часто координатор слияния должен синхронизироваться с ZooKeeper, чтобы получать свежую метаданные.

shared_merge_tree_merge_coordinator_max_merge_request_size

Experimental feature. Learn more.

Число слияний, которые координатор может запросить у MergerMutator одновременно.

shared_merge_tree_merge_coordinator_max_period_ms

Experimental feature. Learn more.

Максимальное время между запусками потока координатора слияния.

shared_merge_tree_merge_coordinator_merges_prepare_count

Experimental feature. Learn more.

Количество записей слияния, которые координатор должен подготовить и распределить среди рабочих процессов.

shared_merge_tree_merge_coordinator_min_period_ms

Experimental feature. Learn more.

Минимальное время между запусками потока координатора слияния.

shared_merge_tree_merge_worker_fast_timeout_ms

Experimental feature. Learn more.

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

shared_merge_tree_merge_worker_regular_timeout_ms

Experimental feature. Learn more.

Время между запусками потока рабочего слияния.

shared_merge_tree_partitions_hint_ratio_to_reload_merge_pred_for_mutations

Перезагрузит предикат слияния в задаче выбора слияния/мутации, когда соотношение <кандидат партиций для мутаций только (партиции, которые нельзя слить)>/<кандидат партиций для мутаций> превышает значение этой настройки. Только доступно в ClickHouse Cloud.

shared_merge_tree_parts_load_batch_size

Количество задач получения метаданных частей для планирования одновременно. Только доступно в ClickHouse Cloud.

shared_merge_tree_postpone_next_merge_for_locally_merged_parts_ms

Время, чтобы сохранить локально объединенную часть без начала нового слияния, содержащего эту часть. Даёт другим репликам шанс получить часть и начать это слияние. Только доступно в ClickHouse Cloud.

shared_merge_tree_postpone_next_merge_for_locally_merged_parts_rows_threshold

Минимальный размер части (в строках), чтобы отложить назначение следующего слияния сразу после объединения его локально. Только доступно в ClickHouse Cloud.

shared_merge_tree_range_for_merge_window_size

Время, чтобы сохранить локально объединенную часть без начала нового слияния, содержащего эту часть. Даёт другим репликам шанс получить часть и начать это слияние. Только доступно в ClickHouse Cloud.

shared_merge_tree_read_virtual_parts_from_leader

Читать виртуальные части от лидера, когда возможно. Только доступно в ClickHouse Cloud.

shared_merge_tree_try_fetch_part_in_memory_data_from_replicas

Если включено, все реплики пытаются получить данные части в памяти (такие как первичный ключ, информация о партиции и т. д.) из других реплик, где они уже существуют.

shared_merge_tree_use_metadata_hints_cache

Включает запросы FS кэша подсказок из кэша в памяти на других репликах. Только доступно в ClickHouse Cloud.

shared_merge_tree_use_outdated_parts_compact_format

Использовать компактный формат для устаревших частей: снижает нагрузку на Keeper, улучшает обработку устаревших частей. Только доступно в ClickHouse Cloud.

shared_merge_tree_use_too_many_parts_count_from_virtual_parts

Если включено, счетчик слишком большого количества частей будет полагаться на общие данные в Keeper, а не на состояние локальной реплики. Только доступно в ClickHouse Cloud.

simultaneous_parts_removal_limit

Если существует много устаревших частей, поток очистки попытается удалить до simultaneous_parts_removal_limit частей за одну итерацию. simultaneous_parts_removal_limit, установленный на 0, означает неограниченное количество.

sleep_before_commit_local_part_in_replicated_table_ms

Для тестирования. Не изменяйте это.

sleep_before_loading_outdated_parts_ms

Для тестирования. Не изменяйте это.

storage_policy

Название политики накопления диска.

table_disk

Это диск таблицы, путь/конечная точка должны указывать на данные таблицы, а не на данные базы данных. Может быть установлен только для s3_plain/s3_plain_rewritable/web.

temporary_directories_lifetime

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

try_fetch_recompressed_part_timeout

Тайм-аут (в секундах) перед началом слияния с рекомпрессией. В это время ClickHouse пытается получить рекомпрессированную часть от реплики, которая назначила это слияние с рекомпрессией.

Рекомпрессия работает медленно в большинстве случаев, поэтому мы не начинаем слияние с рекомпрессией до истечения этого тайм-аута и пытаемся получить рекомпрессированную часть от реплики, которая назначила это слияние с рекомпрессией.

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

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

ttl_only_drop_parts

Управляет тем, полностью ли удаляются части данных в таблицах MergeTree, когда все строки в этой части истекли согласно их настройкам TTL.

Когда ttl_only_drop_parts отключен (по умолчанию), удаляются только строки, истекшие на основе их настройок TTL.

Когда ttl_only_drop_parts включен, вся часть удаляется, если все строки в этой части истекли в соответствии с их настройками TTL.

use_adaptive_write_buffer_for_dynamic_subcolumns

Разрешает использование адаптивных буферов записи при записи динамических подколонок для снижения использования памяти.

use_async_block_ids_cache

Если установлено в true, мы кэшируем хэш-суммы асинхронных вставок.

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

  • true
  • false

Блок, содержащий множество асинхронных вставок, будет генерировать множество хэш-сумм. Когда некоторые из вставок дублируются, Keeper вернет только одну дублированную хэш-сумму в одном RPC, что приведет к ненужным повторам RPC. Этот кэш будет следить за путём хэш-сумм в Keeper. Если изменения отслеживаются в Keeper, кэш будет обновлён как можно быстрее, чтобы мы могли фильтровать дублированные вставки в памяти.

use_compact_variant_discriminators_serialization

Включает компактный режим для бинарной сериализации дисcriminators в типе данных Variant. Этот режим позволяет использовать значительно меньше памяти для хранения дисcriminators в частях, когда присутствует в основном один вариант или много значений NULL.

use_const_adaptive_granularity

Всегда использовать постоянную гранулярность для всей части. Это позволяет сжимать в памяти значения гранулярности индекса. Это может быть полезно в чрезвычайно больших нагрузках с тонкими таблицами.

use_metadata_cache

Устаревшая настройка, ничего не делает.

use_minimalistic_checksums_in_zookeeper

Используйте малый формат (десятки байт) для контрольных сумм частей в ZooKeeper вместо обычных (десятки КБ). Перед включением проверьте, что все реплики поддерживают новый формат.

use_minimalistic_part_header_in_zookeeper

Метод хранения заголовков данных частей в ZooKeeper. Если включено, ZooKeeper хранит меньше данных. Для получения подробностей см. здесь.

use_primary_key_cache

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

vertical_merge_algorithm_min_bytes_to_activate

Минимальный (приблизительный) некомпрессированный размер в байтах в слиянии частей для активации алгоритма вертикального слияния.

vertical_merge_algorithm_min_columns_to_activate

Минимальное количество неключевых столбцов для активации алгоритма вертикального слияния.

vertical_merge_algorithm_min_rows_to_activate

Минимальная (приблизительная) сумма строк в слиянии частей для активации алгоритма вертикального слияния.

vertical_merge_remote_filesystem_prefetch

Если true, предзагрузка данных из удалённой файловой системы используется для следующего столбца во время слияния.

wait_for_unique_parts_send_before_shutdown_ms

Перед выключением таблица будет ждать необходимое время для отправки уникальных частей (существующих только на текущей реплике) другим репликам (0 означает отключено).

write_ahead_log_bytes_to_fsync

Устаревшая настройка, ничего не делает.

write_ahead_log_interval_ms_to_fsync

Устаревшая настройка, ничего не делает.

write_ahead_log_max_bytes

Устаревшая настройка, ничего не делает.

write_final_mark

Устаревшая настройка, ничего не делает.

write_marks_for_substreams_in_compact_parts

Позволяет записывать метки для каждого подпотока вместо каждой колонки в компактных частях. Это позволяет эффективно читать отдельные подколонки из части данных.

zero_copy_concurrent_part_removal_max_postpone_ratio

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

zero_copy_concurrent_part_removal_max_split_times

Максимальная глубина рекурсии для разбиения независимых диапазонов устаревших частей на более мелкие поддиапазоны. Рекомендуется не изменять.

zero_copy_merge_mutation_min_parts_size_sleep_before_lock

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

zero_copy_merge_mutation_min_parts_size_sleep_no_scale_before_lock

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

zookeeper_session_expiration_check_period

Период проверки истечения сессии ZooKeeper, в секундах.

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

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