Настройки таблиц MergeTree
Системная таблица 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
Когда параметр включён, для всех числовых столбцов таблицы добавляются min-max (пропускающие) индексы.
add_minmax_index_for_string_columns
При включении параметра для всех строковых столбцов таблицы добавляются минимально-максимальные (пропускающие) индексы.
allow_coalescing_columns_in_partition_or_order_key
При включении разрешает использовать объединяемые столбцы в таблице CoalescingMergeTree в качестве ключа партиционирования или сортировки.
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_part_offset_column_in_projections
Разрешает использование столбца _part_offset в запросах SELECT с проекциями.
allow_reduce_blocking_parts_task
Фоновая задача, которая уменьшает количество блокирующих частей для таблиц SharedMergeTree. Только в 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
Разрешает вертикальные слияния из компактных частей в широкие части. Этот параметр должен иметь одинаковое значение на всех репликах.
alter_column_secondary_index_mode
Определяет, разрешать ли команды ALTER, которые изменяют столбцы, для которых построены вторичные индексы, и какое действие выполнять, если они разрешены. По умолчанию такие команды ALTER разрешены, и индексы перестраиваются.
Возможные значения:
rebuild(по умолчанию): Перестраивает все вторичные индексы, на которые влияет столбец в командеALTER.throw: Запрещает любыеALTERстолбцов, для которых построены вторичные индексы, вызывая исключение.drop: Удаляет зависимые вторичные индексы. Новые части не будут содержать этих индексов, для их воссоздания потребуетсяMATERIALIZE INDEX.compatibility: Соответствует исходному поведению:throwдляALTER ... MODIFY COLUMNиrebuildдляALTER ... UPDATE/DELETE.ignore: Предназначен для опытных пользователей. Оставляет индексы в неконсистентном состоянии, что может привести к некорректным результатам запросов.
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_cache.
async_insert
Если имеет значение true, данные из запроса INSERT помещаются в очередь и позже в фоновом режиме записываются в таблицу.
auto_statistics_types
Список типов статистики, разделённый запятыми, которые автоматически рассчитываются для всех соответствующих столбцов. Поддерживаемые типы статистики: tdigest, countmin, minmax, uniq.
background_task_preferred_step_execution_time_ms
Целевое время выполнения одного шага операции слияния или мутации. Может быть превышено, если один шаг выполняется дольше.
cache_populated_by_fetch
Этот параметр применяется только к ClickHouse Cloud.
Когда cache_populated_by_fetch отключен (значение по умолчанию), новые
части данных загружаются в файловый кеш только при выполнении запроса, который
использует эти части.
Если параметр включен, cache_populated_by_fetch приведет к тому, что все узлы будут загружать
новые части данных из хранилища в свой файловый кеш без необходимости выполнения запроса
для инициирования такого действия.
См. также
cache_populated_by_fetch_filename_regexp
Этот параметр применяется только к ClickHouse Cloud.
Если значение не пустое, в кэш после операции 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, чтобы избежать эффекта «стада» (thundering herd) и последующей DoS-атаки на ZooKeeper при очень большом числе таблиц.
cleanup_thread_preferred_points_per_iteration
Предпочитаемый размер пакета для фоновой очистки (points — абстрактная единица, но 1 point приблизительно соответствует одному вставленному блоку).
cleanup_threads
Устаревшая настройка, не оказывает никакого эффекта.
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
Разрешает создавать таблицу, в которой выражение выборки (sampling expression) не входит в первичный ключ. Параметр нужен только для временного запуска сервера с некорректными таблицами ради обеспечения обратной совместимости.
compress_marks
Метки поддерживают сжатие, что уменьшает размер файлов меток и ускоряет их передачу по сети.
compress_primary_key
Включает сжатие первичного ключа. Это уменьшает размер файла первичного ключа и ускоряет передачу данных по сети.
concurrent_part_removal_threshold
Включает одновременное удаление частей (см. max_part_removal_threads) только если
количество неактивных частей данных не меньше этого значения.
deduplicate_merge_projection_mode
Разрешать ли создание проекции для таблицы с неклассическим движком MergeTree,
то есть не (ReplicatedMergeTree, SharedMergeTree). Опция ignore предназначена
исключительно для совместимости и может приводить к некорректным результатам.
В противном случае, если создание разрешено, определяет действие при слиянии
проекций: либо drop, либо rebuild. Классический MergeTree игнорирует
этот параметр. Он также управляет поведением OPTIMIZE DEDUPLICATE, при этом
влияет на все движки семейства MergeTree. Аналогично опции
lightweight_mutation_projection_mode, действует на уровне частей (parts).
Возможные значения:
ignorethrowdroprebuild
default_compression_codec
Определяет кодек сжатия по умолчанию, который будет использоваться, если для конкретного столбца в описании таблицы не задан кодек. Порядок выбора кодека сжатия для столбца:
- Кодек сжатия, заданный для столбца в описании таблицы
- Кодек сжатия, заданный в
default_compression_codec(данная настройка) - Кодек сжатия по умолчанию, заданный в настройках
compression
Значение по умолчанию: пустая строка (не задано).
detach_not_byte_identical_parts
Включает или отключает отсоединение части на реплике после слияния или мутации, если она не является побайтно идентичной частям на других репликах. Если параметр отключён, часть удаляется. Включите его, если хотите проанализировать такие части позже.
Настройка применима к таблицам MergeTree с включённой
репликацией данных.
Возможные значения:
0— части удаляются;1— части отсоединяются.
detach_old_local_parts_when_cloning_replica
Не удалять старые локальные части при восстановлении потерянной реплики.
Возможные значения:
truefalse
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
Имя диска для хранения данных. Можно указать вместо политики хранения.
dynamic_serialization_version
Версия сериализации для типа данных Dynamic. Требуется для совместимости.
Возможные значения:
v1v2v3
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.
Возможные значения:
truefalse
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 при слиянии партиций
до одной части (part). Требует включения allow_experimental_replacing_merge_with_cleanup,
min_age_to_force_merge_seconds и min_age_to_force_merge_on_partition_only.
Возможные значения:
truefalse
enable_the_endpoint_id_with_zookeeper_name_prefix
Включает использование идентификатора endpoint с префиксом имени Zookeeper для реплицируемой таблицы MergeTree.
enable_vertical_merge_algorithm
Включает использование вертикального алгоритма слияния.
enforce_index_structure_match_on_partition_manipulation
Если этот параметр включен для целевой таблицы запроса на манипуляцию с партициями
(ATTACH/MOVE/REPLACE PARTITION), то индексы и проекции в исходной и целевой таблицах должны совпадать.
В противном случае целевая таблица может содержать надмножество индексов и проекций по сравнению с исходной таблицей.
escape_variant_subcolumn_filenames
Экранирует специальные символы в именах файлов, создаваемых для подстолбцов типа данных Variant в Wide-частях таблицы MergeTree. Необходимо для обеспечения совместимости.
exclude_deleted_rows_for_part_size_in_merge
Если параметр включен, при выборе частей для слияния используется оценочный реальный размер частей данных (то есть без учета тех строк,
которые были удалены с помощью DELETE FROM). Обратите внимание, что это поведение применяется только к тем частям данных,
на которые влияет DELETE FROM, выполненный после включения этого SETTING.
Возможные значения:
truefalse
См. также
- load_existing_rows_count_for_old_parts настройки
exclude_materialize_skip_indexes_on_merge
Исключает указанный через запятую список пропускаемых индексов из построения и хранения во время слияний. Не оказывает
никакого эффекта, если materialize_skip_indexes_on_merge имеет значение false.
Исключённые пропускаемые индексы по‑прежнему будут создаваться и сохраняться явным запросом MATERIALIZE INDEX или во время операций INSERT в зависимости от параметра сеанса materialize_skip_indexes_on_insert.
Пример:
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 прерывается
с ошибкой:
"Too many inactive parts (N). Parts cleaning are processing significantly slower than inserts".
Возможные значения:
- Любое положительное целое число.
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 перестроит
проекцию, что может повлиять на производительность текущего запроса, но
может ускорить выполнение будущих запросов. Преимущество в том, что эти варианты действуют
только на уровне части, то есть проекции в частях, которых операция не
затрагивает, останутся нетронутыми и не вызовут никаких действий, таких как
drop или rebuild.
Возможные значения:
throwdroprebuild
load_existing_rows_count_for_old_parts
Если параметр включён вместе с exclude_deleted_rows_for_part_size_in_merge, количество удалённых строк для существующих частей данных будет вычисляться при запуске таблицы. Имейте в виду, что это может замедлить загрузку таблицы при её запуске.
Возможные значения:
truefalse
См. также
lock_acquire_timeout_for_background_operations
Для фоновых операций, таких как слияния, мутации и т. д. Определяет, сколько секунд ожидать, прежде чем признать попытку получения блокировок таблицы неудачной.
marks_compress_block_size
Размер блока сжатия меток; фактический размер сжимаемого блока.
marks_compression_codec
Кодек сжатия, используемый для меток. Метки достаточно малы и кэшируются, поэтому по умолчанию используется ZSTD(3).
materialize_skip_indexes_on_merge
Если настройка включена, во время слияний для новых частей создаются и сохраняются индексы пропуска. В противном случае они могут быть созданы/сохранены явной командой MATERIALIZE INDEX или во время INSERT.
См. также exclude_materialize_skip_indexes_on_merge для более точного управления.
materialize_ttl_recalculate_only
Пересчитывать информацию о TTL только при выполнении MATERIALIZE TTL
max_avg_part_size_for_too_many_parts
Проверка 'too many parts' в соответствии с 'parts_to_delay_insert' и 'parts_to_throw_insert' будет активна только в том случае, если средний размер части (в соответствующей партиции) не превышает указанного порога. Если он превышает указанный порог, операции 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 определяет максимальный суммарный размер
частей, которые могут быть объединены, несмотря на нехватку доступного дискового пространства (в пуле).
Это необходимо для уменьшения количества мелких частей и вероятности ошибок
Too many parts.
Слияния резервируют дисковое пространство, удваивая суммарный размер объединяемых частей.
Таким образом, при небольшом количестве свободного места на диске может возникнуть ситуация,
когда свободное пространство есть, но оно уже зарезервировано выполняющимися крупными слияниями,
поэтому другие слияния не могут запускаться, и количество мелких частей растёт
с каждой вставкой.
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
Устаревшая настройка, ни на что не влияет.
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 не назначаются. Это позволяет сохранить свободные потоки для обычных слияний и избежать ошибки «Too many parts».
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 прерывается с исключением Too many parts (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
Максимальное время откладывания выполнения задачи репликации, завершившейся с ошибкой. Это значение применяется, если задача не является операцией fetch, merge или mutation.
max_projections
Максимальное количество проекций для таблиц MergeTree.
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
Максимальный суммарный размер всех повреждённых частей; если он превышен, автоматическое удаление запрещается.
Возможные значения:
- Любое положительное целое число.
max_uncompressed_bytes_in_patches
Максимальный несжатый объём данных во всех патч-частях, в байтах. Если объём данных во всех патч-частях превышает это значение, легковесные обновления отклоняются. 0 — без ограничений.
merge_max_block_size
Количество строк, которые считываются из сливаемых частей в память.
Возможные значения:
- Любое положительное целое число.
При слиянии строки считываются из частей блоками по merge_max_block_size строк, затем
объединяются и результат записывается в новую часть. Считываемый блок помещается в оперативную память,
поэтому merge_max_block_size влияет на объем оперативной памяти, необходимый для слияния.
Таким образом, операции слияния могут потреблять большой объем оперативной памяти для таблиц с очень широкими строками
(если средний размер строки — 100 KB, то при слиянии 10 частей
(100 KB * 10 * 8192) = ~ 8 GB оперативной памяти). Уменьшая merge_max_block_size,
вы можете сократить объем оперативной памяти, необходимый для слияния, но при этом замедлите его.
merge_max_block_size_bytes
Сколько байт должно быть в блоках, формируемых при операциях слияния. По умолчанию
имеет то же значение, что и index_granularity_bytes.
merge_max_bytes_to_prewarm_cache
Доступен только в ClickHouse Cloud. Максимальный размер части (compact или packed) для предварительного прогрева кэша во время слияния.
merge_max_dynamic_subcolumns_in_wide_part
Максимальное количество динамических подстолбцов, которое может быть создано в каждом столбце Wide-части данных после слияния. Это позволяет уменьшить число файлов, создаваемых в Wide-части данных, независимо от динамических параметров, указанных в типе данных.
Например, если таблица имеет столбец типа JSON(max_dynamic_paths=1024), а значение merge_max_dynamic_subcolumns_in_wide_part установлено в 128, после слияния в Wide-часть данных количество динамических путей в этой части будет уменьшено до 128, и только 128 путей будет записано как динамические подстолбцы.
merge_selecting_sleep_ms
Минимальное время ожидания перед повторной попыткой выбрать части для слияния после того, как не были выбраны никакие части. Более низкое значение может привести к более частому запуску задач в background_schedule_pool, что в крупных кластерах приводит к большому количеству запросов к ZooKeeper.
merge_selecting_sleep_slowdown_factor
Время ожидания задачи выбора частей для слияния умножается на этот коэффициент, когда нет частей для слияния, и делится на него, когда операция слияния назначена.
merge_selector_algorithm
Алгоритм выбора частей для выполнения слияний
merge_selector_base
Влияет на коэффициент write amplification назначенных слияний (настройка для экспертов, не изменяйте её, если не понимаете, как она работает). Работает для селекторов слияний Simple и StochasticSimple
merge_selector_blurry_base_scale_factor
Определяет, когда срабатывает логика по отношению к количеству частей в партиции. Чем больше коэффициент, тем позже будет реакция.
merge_selector_enable_heuristic_to_remove_small_parts_at_right
Включает эвристику выбора частей для слияния, которая удаляет части с правой границы диапазона, если их размер меньше заданного соотношения (0.01) от sum_size. Работает для селекторов слияний Simple и StochasticSimple.
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_level_for_full_part_storage
Доступна только в ClickHouse Cloud. Минимальный уровень парта, начиная с которого для парта данных используется полный тип хранения вместо упакованного.
min_level_for_wide_part
Минимальный уровень парта, начиная с которого часть данных создаётся в формате Wide вместо Compact.
min_marks_to_honor_max_concurrent_queries
Минимальное количество меток, читаемых запросом, при котором применяется настройка max_concurrent_queries.
Запросы по-прежнему будут ограничены другими настройками max_concurrent_queries.
Возможные значения:
- Положительное целое число.
0— Отключено (ограничениеmax_concurrent_queriesне применяется ни к каким запросам).
Пример
min_merge_bytes_to_use_direct_io
Минимальный объём данных для операции слияния, при котором используется прямой
доступ к диску хранения (direct I/O). При слиянии частей данных 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 — отключено. Работает для селекторов слияния Simple и StochasticSimple.
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
Минимальное число строк, при котором часть данных создаётся в формате Wide вместо Compact.
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.
nullable_serialization_version
Определяет метод сериализации, который используется для столбцов Nullable(T).
Возможные значения:
-
basic — Использовать стандартную сериализацию для
Nullable(T). -
allow_sparse — Разрешить использовать разреженное кодирование для
Nullable(T).
number_of_free_entries_in_pool_to_execute_mutation
Если количество свободных элементов в пуле меньше заданного значения, мутации частей не выполняются. Это нужно для того, чтобы оставить свободные потоки для обычных слияний и избежать ошибок "Too many parts".
Возможные значения:
- Любое положительное целое число.
Использование
Значение настройки 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). Это сделано для того, чтобы оставить свободные потоки
для обычных слияний и избежать ошибки «Too many parts».
Возможные значения:
- Положительное целое число.
Значение настройки 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
Если в таблице есть как минимум столько незавершённых мутаций, выбрасывается исключение Too many mutations. При значении 0 параметр отключён.
number_of_partitions_to_consider_for_merge
Доступно только в ClickHouse Cloud. До top N партиций, которые будут рассматриваться для слияния. Партиции выбираются случайным взвешенным образом, где вес — это количество частей, которые можно слить в данной партиции.
object_serialization_version
Версия сериализации для типа данных JSON. Требуется для обеспечения совместимости.
Возможные значения:
v1v2v3
Только версия v3 поддерживает изменение версии сериализации общих данных.
object_shared_data_buckets_for_compact_part
Количество бакетов общих данных при JSON-сериализации в компактных частях (Compact). Работает с вариантами сериализации общих данных map_with_buckets и advanced.
object_shared_data_buckets_for_wide_part
Количество бакетов для общей JSON-сериализации данных в широких (Wide) частях. Используется с режимами сериализации общих данных map_with_buckets и advanced.
object_shared_data_serialization_version
Версия сериализации общих данных в типе данных JSON.
Возможные значения:
map— хранить общие данные в видеMap(String, String)map_with_buckets— хранить общие данные в виде нескольких отдельных столбцовMap(String, String). Использование бакетов улучшает чтение отдельных путей из общих данных.advanced— специальная сериализация общих данных, разработанная для существенного улучшения чтения отдельных путей из общих данных. Обратите внимание, что эта сериализация увеличивает размер общих данных на диске, поскольку мы храним много дополнительной информации.
Количество бакетов для сериализаций map_with_buckets и advanced определяется настройками
object_shared_data_buckets_for_compact_part/object_shared_data_buckets_for_wide_part.
object_shared_data_serialization_version_for_zero_level_parts
Эта настройка позволяет задать отдельную версию сериализации общих данных внутри типа JSON для частей нулевого уровня, которые создаются при вставке данных.
Не рекомендуется использовать advanced сериализацию общих данных для частей нулевого уровня, поскольку это может значительно увеличить время вставки.
old_parts_lifetime
Время (в секундах) хранения неактивных частей для защиты от потери данных при внезапных перезагрузках сервера.
Возможные значения:
- Любое положительное целое число.
После слияния нескольких частей в новую часть ClickHouse помечает исходные
части как неактивные и удаляет их только по истечении old_parts_lifetime секунд.
Неактивные части удаляются, если они не используются текущими запросами, т.е. если
refcount части равен 1.
fsync не вызывается для новых частей, поэтому некоторое время новые части
существуют только в RAM сервера (кэше ОС). Если сервер перезагружается
внезапно, новые части могут быть потеряны или повреждены. Для защиты данных
неактивные части не удаляются немедленно.
При запуске ClickHouse проверяет целостность частей. Если слитая
часть повреждена, ClickHouse возвращает неактивные части в список активных
и позже сливает их снова. Затем повреждённая часть переименовывается (к имени
добавляется префикс broken_) и перемещается в папку detached. Если слитая
часть не повреждена, исходные неактивные части переименовываются (к имени
добавляется префикс ignored_) и перемещаются в папку detached.
Значение по умолчанию для dirty_expire_centisecs (параметр ядра Linux) — 30
секунд (максимальное время, в течение которого записанные данные хранятся только
в RAM), но при высокой нагрузке на дисковую подсистему данные могут быть записаны
значительно позже. Экспериментально было выбрано значение 480 секунд для
old_parts_lifetime, в течение которых новая часть гарантированно будет
записана на диск.
optimize_row_order
Определяет, должен ли порядок строк оптимизироваться во время вставок для улучшения сжимаемости вновь вставленной части таблицы.
Оказывает влияние только на обычные таблицы движка MergeTree. Ничего не делает для специализированных таблиц движка MergeTree (например, CollapsingMergeTree).
Таблицы MergeTree (опционально) сжимаются с помощью кодеков сжатия. Универсальные кодеки сжатия, такие как LZ4 и ZSTD, достигают максимальных коэффициентов сжатия, если данные демонстрируют выраженные шаблоны. Длинные последовательности одинаковых значений, как правило, сжимаются очень хорошо.
Если этот SETTING включен, ClickHouse пытается сохранить данные во вновь вставленных частях в таком порядке строк, который минимизирует количество серий одинаковых значений по столбцам новой части таблицы. Другими словами, небольшое количество серий одинаковых значений означает, что отдельные серии длинные и хорошо сжимаются.
Нахождение оптимального порядка строк вычислительно неосуществимо (NP-трудная задача). Поэтому ClickHouse использует эвристику, чтобы быстро найти порядок строк, который всё же улучшает коэффициенты сжатия по сравнению с исходным порядком строк.
Эвристика для поиска порядка строк
В общем случае строки таблицы (или части таблицы) можно свободно перемешивать, поскольку SQL считает одну и ту же таблицу (часть таблицы) в разных порядках строк эквивалентной.
Эта свобода перемешивания строк ограничивается, когда для таблицы определён
первичный ключ. В ClickHouse первичный ключ C1, C2, ..., CN требует, чтобы
строки таблицы были отсортированы по столбцам C1, C2, ... Cn (кластерный индекс).
В результате строки можно перемешивать только внутри «классов эквивалентности»
строк, то есть строк, у которых одинаковые значения в столбцах первичного ключа.
Интуитивно первичные ключи с высокой кардинальностью, например первичные ключи,
включающие столбец с меткой времени типа DateTime64, приводят к множеству
маленьких классов эквивалентности. Аналогично, таблицы с первичным ключом
с низкой кардинальностью создают немногочисленные, но крупные классы
эквивалентности. Таблица без первичного ключа представляет собой экстремальный
случай единственного класса эквивалентности, охватывающего все строки.
Чем реже встречаются и чем крупнее классы эквивалентности, тем выше степень свободы при повторном перемешивании строк.
Эвристика, применяемая для поиска наилучшего порядка строк в каждом классе эквивалентности, предложена D. Lemire, O. Kaser в работе Reordering columns for smaller indexes и основана на сортировке строк внутри каждого класса эквивалентности по возрастающей кардинальности столбцов, не входящих в первичный ключ.
Она выполняет три шага:
- Найти все классы эквивалентности на основе значений строк в столбцах первичного ключа.
- Для каждого класса эквивалентности вычислить (обычно оценить) кардинальности столбцов, не входящих в первичный ключ.
- Для каждого класса эквивалентности отсортировать строки в порядке возрастания кардинальности столбцов, не входящих в первичный ключ.
Если включено, операции вставки несут дополнительные затраты CPU на анализ и оптимизацию порядка строк новых данных. Ожидается, что операции INSERT будут выполняться на 30–50% дольше в зависимости от характеристик данных. Коэффициенты сжатия LZ4 или ZSTD в среднем улучшаются на 20–40%.
Этот SETTING лучше всего работает для таблиц без первичного ключа или с
первичным ключом с низкой кардинальностью, то есть таблиц с небольшим числом
различных значений первичного ключа.
Первичные ключи с высокой кардинальностью, например включающие столбцы меток
времени типа DateTime64, как правило, не дают заметного выигрыша от этого SETTING.
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 прерывается с исключением
Too many parts (N). Merges are processing significantly slower than inserts.
Возможные значения:
- Любое положительное целое число.
Для достижения максимальной производительности запросов SELECT необходимо
минимизировать количество обрабатываемых частей, см. Merge Tree.
До версии 23.6 это значение было равно 300. Вы можете задать более
высокое значение — это снизит вероятность ошибки Too many parts,
но при этом производительность 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
Если значение больше нуля, список частей данных обновляется из базовой файловой системы, чтобы проверить, были ли данные обновлены в фоновом режиме. Этот параметр можно задать только в том случае, если таблица расположена на дисках, доступных только для чтения (что означает, что это реплика только для чтения, в то время как данные записываются другой репликой).
refresh_statistics_interval
Интервал обновления кэша статистики в секундах. Если значение равно нулю, обновление будет отключено.
remote_fs_execute_merges_on_single_replica_time_threshold
Когда эта настройка имеет значение больше нуля, только одна реплика немедленно запускает слияние, если объединённая часть находится в общем хранилище.
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, реплики реплицируемых таблиц на этом узле будут пытаться получить роль лидера.
Возможные значения:
truefalse
replicated_deduplication_window
Количество последних вставленных блоков, для которых ClickHouse Keeper хранит хэш-суммы для проверки на наличие дубликатов.
Возможные значения:
- Любое положительное целое число.
- 0 (отключить дедупликацию)
Команда Insert создает один или несколько блоков (частей). Для
insert deduplication,
при записи в реплицируемые таблицы ClickHouse записывает хэш-суммы созданных
частей в ClickHouse Keeper. Хэш-суммы хранятся только для последних
replicated_deduplication_window блоков. Самые старые хэш-суммы
удаляются из ClickHouse Keeper.
Слишком большое значение replicated_deduplication_window замедляет операции Insert,
поскольку требуется сравнивать больше записей. Хэш-сумма вычисляется
из совокупности имен и типов полей и данных вставляемой части (потока байт).
replicated_deduplication_window_for_async_inserts
Количество последних асинхронно вставленных блоков, для которых ClickHouse Keeper хранит хэш-суммы для проверки дубликатов.
Возможные значения:
- Любое положительное целое число.
- 0 (отключить deduplication для async_inserts)
Команда Async Insert будет
кэшироваться в одном или нескольких блоках (частях). Для insert deduplication,
при записи в реплицируемые таблицы ClickHouse записывает хэш-суммы каждой
вставки в ClickHouse Keeper. Хэш-суммы хранятся только для последних
replicated_deduplication_window_for_async_inserts блоков. Самые старые хэш-
суммы удаляются из ClickHouse Keeper.
Слишком большое значение replicated_deduplication_window_for_async_inserts замедляет
Async Insert, потому что нужно сравнивать больше записей.
Хэш-сумма вычисляется на основе комбинации имён и типов полей
и данных вставки (потока байтов).
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
Если отношение неправильных частей к общему числу частей меньше этого значения — запуск разрешается.
Возможные значения:
- Float, 0.0 - 1.0
search_orphaned_parts_disks
ClickHouse сканирует все диски на наличие осиротевших частей при выполнении любой операции ATTACH или CREATE TABLE, чтобы не допустить пропуска частей данных на неопределённых (не включённых в политику) дисках. Осиротевшие части появляются в результате потенциально небезопасной переконфигурации хранилища, например, если диск был исключён из политики хранилища. Этот SETTING ограничивает перечень дисков, по которым выполняется поиск, по их типу.
Возможные значения:
- any — область поиска не ограничена.
- local — область поиска ограничена локальными дисками.
- none — пустая область, поиск не выполняется.
serialization_info_version
Версия информации о сериализации, используемая при записи serialization.json.
Этот параметр необходим для обеспечения совместимости во время обновления кластера.
Возможные значения:
basic— базовый формат.with_types— формат с дополнительным полемtypes_serialization_versions, позволяющим задавать версии сериализации для каждого типа. Это делает параметры, такие какstring_serialization_version, задействованными.
Во время поэтапного обновления установите значение basic, чтобы новые серверы создавали
части данных, совместимые со старыми серверами. После завершения обновления
переключитесь на WITH_TYPES, чтобы включить версии сериализации для каждого типа.
shared_merge_tree_activate_coordinated_merges_tasks
Активирует перепланирование задач скоординированных слияний. Это может быть полезно даже если shared_merge_tree_enable_coordinated_merges=0, поскольку в этом случае будет собираться статистика координатора слияний и это поможет при холодном запуске.
shared_merge_tree_create_per_replica_metadata_nodes
Включает создание узлов /metadata и /columns в ZooKeeper для каждой реплики. Доступно только в ClickHouse Cloud.
shared_merge_tree_disable_merges_and_mutations_assignment
Отключает назначение слияний для shared merge tree. Доступно только в ClickHouse Cloud.
shared_merge_tree_empty_partition_lifetime
В течение какого времени в секундах партиция будет храниться в Keeper, если у неё нет частей.
shared_merge_tree_enable_automatic_empty_partitions_cleanup
Включает очистку записей Keeper для пустых партиций.
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
Интервал в секундах для обновления частей, не инициированного срабатыванием watch-события ZooKeeper в shared merge tree. Доступно только в 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
Добавляет к shared_merge_tree_leader_update_period равномерно распределённую случайную величину в диапазоне от 0 до x секунд, чтобы избежать эффекта «thundering herd». Параметр доступен только в 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_outdated_parts_group_size
Сколько реплик будет входить в одну группу rendezvous-хеширования при очистке устаревших частей. Параметр доступен только в ClickHouse Cloud.
shared_merge_tree_partitions_hint_ratio_to_reload_merge_pred_for_mutations
Перезагружает предикат слияния в задаче выбора merge/mutate, когда отношение <candidate partitions for mutations only (partitions that cannot be merged)>/<candidate partitions 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_update_replica_flags_delay_ms
Как часто реплика пытается обновлять свои флаги в соответствии с фоновым расписанием.
shared_merge_tree_use_metadata_hints_cache
Позволяет запрашивать подсказки для кеша файловой системы из кеша в памяти на других репликах. Доступно только в 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.
shared_merge_tree_virtual_parts_discovery_batch
Сколько обнаружений партиций должно быть объединено в один пакет
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
Имя политики хранения на диске
string_serialization_version
Управляет форматом сериализации для столбцов верхнего уровня типа String.
Этот параметр действует только, если serialization_info_version установлен в "with_types".
Если задано значение with_size_stream, столбцы верхнего уровня типа String сериализуются
с отдельным подстолбцом .size, в котором хранятся длины строк, а не inline. Это позволяет
использовать реальные подстолбцы .size и может повысить эффективность сжатия.
Вложенные типы String (например, внутри Nullable, LowCardinality, Array или Map)
не затрагиваются, за исключением случаев, когда они появляются в Tuple.
Возможные значения:
single_stream— использовать стандартный формат сериализации с inline-размерами.with_size_stream— использовать отдельный поток для размеров для столбцов верхнего уровня типаString.
table_disk
Это диск таблицы; путь/endpoint должен указывать на данные таблицы, а не на данные базы данных. Может быть задан только для s3_plain/s3_plain_rewritable/web.
temporary_directories_lifetime
Сколько секунд хранить временные каталоги с префиксом tmp_. Не следует занижать это значение, так как слияния и мутации могут работать некорректно при слишком низком значении этого SETTING.
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, кэшируются хеш-суммы асинхронных вставок.
Возможные значения:
truefalse
Блок, содержащий несколько асинхронных вставок, сгенерирует несколько хеш-сумм. Когда часть вставок дублируется, Keeper вернёт только одну дублированную хеш-сумму в одном RPC, что приведёт к необходимости лишних повторных RPC-вызовов. Этот кэш будет отслеживать путь, по которому в Keeper хранятся хеш-суммы. Если в Keeper обнаруживаются обновления, кэш обновится как можно быстрее, чтобы можно было отфильтровывать дублированные вставки в памяти.
use_compact_variant_discriminators_serialization
Включает компактный режим двоичной сериализации дискриминаторов в типе данных Variant. Этот режим позволяет значительно сократить использование памяти для хранения дискриминаторов в частях, когда в данных в основном присутствует один вариант или много значений 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
Минимальное количество столбцов, не входящих в первичный ключ (PK), при котором активируется вертикальный алгоритм слияния.
vertical_merge_algorithm_min_rows_to_activate
Минимальное (приблизительное) суммарное количество строк в сливаемых частях для активации алгоритма вертикального слияния.
vertical_merge_optimize_lightweight_delete
Если включено, легковесное удаление оптимизируется при вертикальных слияниях.
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
Включает запись меток для каждого подпотока вместо каждого столбца в компактных частях. Это позволяет эффективно читать отдельные подстолбцы из части данных.
Например, столбец t Tuple(a String, b UInt32, c Array(Nullable(UInt32))) сериализуется в следующие подпотоки:
t.aдля данных String элемента кортежаat.bдля данных UInt32 элемента кортежаbt.c.size0для размеров массива элемента кортежаct.c.nullдля null-карты вложенных элементов массива элемента кортежаct.cдля данных UInt32 вложенных элементов массива элемента кортежаc
Когда эта настройка включена, для каждого из этих 5 подпотоков записывается метка, что означает, что при необходимости можно читать
данные каждого отдельного подпотока из гранулы независимо. Например, если нужно прочитать подстолбец t.c, будут прочитаны только данные
подпотоков t.c.size0, t.c.null и t.c, и не будут читаться данные из подпотоков t.a и t.b. Когда эта настройка отключена,
метка записывается только для столбца верхнего уровня t, что означает, что из гранулы всегда будет читаться весь столбец целиком, даже если нужны только данные некоторых подпотоков.
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 репликация включена, выполнение приостанавливается на случайный промежуток времени перед попыткой получения блокировки в зависимости от размера частей для слияния или мутации
zero_copy_merge_mutation_min_parts_size_sleep_no_scale_before_lock
Если zero-copy репликация включена, делать случайную паузу до 500 мс перед попыткой получить блокировку на слияние или мутацию.
zookeeper_session_expiration_check_period
Период проверки истечения срока действия сессии ZooKeeper (в секундах).
Возможные значения:
- Любое положительное целое число.