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
Разрешить экспериментальные слияния 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
Включает поддержку порядка сортировки по убыванию в ключах сортировки 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
Не используйте эту настройку в производстве, так как она не готова.
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
always_use_copy_instead_of_hardlinks
Всегда копируйте данные вместо жестких ссылок во время мутаций/замен/отсоединений и т.д.
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
Указывает кодек сжатия по умолчанию, который будет использоваться, если для конкретной колонки в декларации таблицы не определен. Порядок выбора кодека сжатия для колонки:
- Кодек сжатия, определенный для колонки в декларации таблицы
- Кодек сжатия, определенный в
default_compression_codec
(эта настройка) - Кодек сжатия по умолчанию, определенный в настройках
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
Следует ли использовать слияния 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
Смотрите также
- load_existing_rows_count_for_old_parts настройка
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
Принудительное чтение через файловый кэш для слияний.
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
Алгоритм выбора частей для назначения слияний.
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
Уведомить о номере самого нового блока для 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 в Сортировка столбцов для меньших индексов и основана на сортировке строк внутри каждого класса эквивалентности по возрастающей кардинальности не первичных ключевых колонок.
Эта эвристика выполняет три шага:
- Найти все классы эквивалентности на основе значений строк в столбцах первичного ключа.
- Для каждого класса эквивалентности вычислить (обычно оценить) кардинальности не первичных ключевых колонок.
- Для каждого класса эквивалентности отсортировать строки в порядке возрастающей кардинальности не первичногоключевых колонок.
Если эта настройка включена, операции вставки приводят к дополнительным затратам CPU на анализ и оптимизацию порядка строк новых данных. Ожидается, что INSERT займет 30-50% больше времени в зависимости от характеристик данных. Коэффициенты сжатия LZ4 или ZSTD в среднем улучшаются на 20-40%.
Эта настройка работает лучше всего для таблиц без первичного ключа или с первичным
ключом низкой кардинальности, т.е. для таблиц с небольшим количеством различных
значений первичного ключа. Первичные ключи с высокой кардинальностью, например,
включающие колонки с метками времени типа DateTime64
, не ожидается, что
получат выгоду от этой настройки.
part_moves_between_shards_delay_seconds
Время, которое нужно подождать до/после перемещения частей между шардерами.
part_moves_between_shards_enable
Экспериментальная/незавершенная функция перемещения частей между шардерами. Не учитывает выражения шардирования.
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
Запускать zero-copy в совместимом режиме во время процесса преобразования.
remote_fs_zero_copy_zookeeper_path
Путь ZooKeeper для информации о zero-copy, не зависящей от таблицы.
remove_empty_parts
Удалять пустые части после того, как они были удалены с помощью TTL, мутации или алгоритма слияния.
remove_rolled_back_parts_immediately
Настройка для незавершенной экспериментальной функции.
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
Включает стратегию скоординированных слияний.
shared_merge_tree_enable_keeper_parts_extra_data
Включает запись атрибутов в виртуальные части и коммитирование блоков в 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
Время между запусками потока выборов координатора выполнения слияния.
shared_merge_tree_merge_coordinator_factor
Коэффициент времени для задержки потока координатора.
shared_merge_tree_merge_coordinator_fetch_fresh_metadata_period_ms
Как часто координатор слияния должен синхронизироваться с ZooKeeper, чтобы получать свежую метаданные.
shared_merge_tree_merge_coordinator_max_merge_request_size
Число слияний, которые координатор может запросить у MergerMutator одновременно.
shared_merge_tree_merge_coordinator_max_period_ms
Максимальное время между запусками потока координатора слияния.
shared_merge_tree_merge_coordinator_merges_prepare_count
Количество записей слияния, которые координатор должен подготовить и распределить среди рабочих процессов.
shared_merge_tree_merge_coordinator_min_period_ms
Минимальное время между запусками потока координатора слияния.
shared_merge_tree_merge_worker_fast_timeout_ms
Тайм-аут, который поток рабочего слияния будет использовать, если потребуется обновить своё состояние после немедленного действия.
shared_merge_tree_merge_worker_regular_timeout_ms
Время между запусками потока рабочего слияния.
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, в секундах.
Возможные значения:
- Любое положительное целое число.