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
sign таблицы CollapsingMergeTree
или VersionedCollapsingMergeTree, разрешающее только допустимые значения (1 и -1).
add_minmax_index_for_block_number_column
_block_number добавляется неявный min-max-индекс (skipping).
Чтобы это сработало, требуется enable_block_number_column = 1. Индекс строится только во время слияний,
а не при вставке: в момент вставки номер блока является временным, поэтому индекс строился бы по константе.
add_minmax_index_for_block_offset_column
_block_offset добавляется неявный min-max-индекс (skipping).
Чтобы это вступило в силу, необходимо enable_block_offset_column = 1. Индекс строится только во время слияний,
а не при вставке.
add_minmax_index_for_numeric_columns
add_minmax_index_for_string_columns
add_minmax_index_for_temporal_columns
allow_coalescing_columns_in_partition_or_order_key
allow_commit_order_projection
_block_number и _block_offset, сохраняя исходный порядок вставки при слияниях.
Требует, чтобы были включены enable_block_number_column и enable_block_offset_column.
allow_experimental_replacing_merge_with_cleanup
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
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
allow_part_offset_column_in_projections
allow_reduce_blocking_parts_task
allow_remote_fs_zero_copy_replication
allow_summing_columns_in_partition_or_order_key
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, false
always_use_copy_instead_of_hardlinks
apply_patches_on_merge
assign_part_uuids
async_block_ids_cache_update_wait_ms
async_insert
auto_statistics_types
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.
cache_populated_by_fetch включен).
check_delay_period
check_sample_column_is_correct
UInt8, UInt16,
UInt32, UInt64.
Возможные значения:
true— Проверка включена.false— Проверка отключена при создании таблицы.
true.
По умолчанию ClickHouse server проверяет при создании таблицы тип данных
столбца для сэмплирования или выражения для семплирования. Если у вас уже есть таблицы с
некорректным выражением для семплирования и вы не хотите, чтобы сервер сгенерировал исключение
при запуске, установите check_sample_column_is_correct в false.
clean_deleted_rows
cleanup_delay_period
cleanup_delay_period_random_add
cleanup_thread_preferred_points_per_iteration
cleanup_threads
clone_replica_zookeeper_create_get_part_batch_size
columns_and_secondary_indices_sizes_lazy_calculation
columns_to_prewarm_mark_cache
compact_parts_max_bytes_to_buffer
compact_parts_max_granules_to_buffer
compact_parts_merge_max_bytes_to_prefetch_part
compatibility_allow_sampling_expression_not_in_primary_key
compress_marks
compress_per_column_in_compact_parts
true (по умолчанию), каждый столбец в грануле
начинает новый сжатый блок, что позволяет ClickHouse не читать с диска ненужные столбцы.
Если false, все столбцы в пределах гранулы упаковываются в один и тот же сжатый блок,
что улучшает коэффициент сжатия, но требует распаковки большего объёма данных при чтении.
Это полезно для рабочих нагрузок, которые всегда читают все столбцы (например, проекции).
compress_primary_key
concurrent_part_removal_threshold
max_part_removal_threads) только если
количество неактивных частей данных не меньше этого значения.
concurrent_part_removal_threshold_for_remote_disk
concurrent_part_removal_threshold, но используется, когда хотя бы одна
из удаляемых частей хранится на удалённом диске. Значение по умолчанию ниже,
поскольку удаление каждой части в удалённом хранилище обычно требует отдельного
сетевого запроса (например, одного HTTP DELETE на часть в объектном хранилище), поэтому
последовательное удаление даже 100 частей может задержать DROP TABLE на
десятки секунд.
deduplicate_merge_projection_mode
ignore предназначена исключительно для
совместимости и может приводить к некорректным результатам. В остальных случаях, если создание
разрешено, определяет, что делать при слиянии проекций: удалить их или пересобрать. Для классического
MergeTree эта настройка игнорируется. Она также управляет OPTIMIZE DEDUPLICATE,
но действует на все движки семейства MergeTree. Как и
опция lightweight_mutation_projection_mode, она применяется на уровне part.
Возможные значения:
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
disable_fetch_partition_for_zero_copy_replication
disable_freeze_partition_for_zero_copy_replication
disk
distributed_index_analysis_min_indexes_bytes_to_activate
distributed_index_analysis_min_parts_to_activate
dynamic_serialization_version
v1v2v3
enable_block_number_column
enable_block_offset_column
_block_offset во время слияний.
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
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
enable_vertical_merge_algorithm
enforce_index_structure_match_on_partition_manipulation
ATTACH/MOVE/REPLACE PARTITION), индексы и проекции
в исходной и целевой таблицах должны быть идентичны. В противном случае
целевая таблица может содержать надмножество индексов и проекций исходной таблицы.
escape_index_filenames
escape_variant_subcolumn_filenames
exclude_deleted_rows_for_part_size_in_merge
DELETE FROM). Обратите внимание, что это поведение срабатывает только для частей данных,
затронутых DELETE FROM, выполненным после включения этой настройки.
Возможные значения:
truefalse
- настройка load_existing_rows_count_for_old_parts
exclude_materialize_skip_indexes_on_merge
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_part_directory
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
перестраивает проекцию, что может повлиять на производительность текущего
запроса, но ускорить последующие запросы. Важно, что эти варианты работают
только на уровне частей: проекции в тех частях, которые не были затронуты,
останутся без изменений, и для них не будет запускаться никаких действий,
таких как drop или rebuild.
Возможные значения:
throwdroprebuild
load_existing_rows_count_for_old_parts
truefalse
lock_acquire_timeout_for_background_operations
map_buckets_coefficient
sqrt и linear для вычисления количества бакетов на основе среднего размера Map.
Для стратегии sqrt: round(map_buckets_coefficient * sqrt(avg_map_size)).
Для стратегии linear: round(map_buckets_coefficient * avg_map_size).
Игнорируется, если map_buckets_strategy имеет значение constant.
map_buckets_min_avg_size
with_buckets.
Если средний размер Map меньше этого значения, независимо от других настроек бакетов используется один бакет.
Значение 0 отключает этот порог и всегда применяет стратегию разбиения по бакетам.
Эта настройка позволяет избежать накладных расходов на сериализацию с бакетами для небольших Map, где выигрыш от нее незначителен.
map_buckets_strategy
Map with_buckets на основе среднего размера Map.
Возможные значения:
- constant — Всегда использовать max_buckets_in_map в качестве количества бакетов независимо от среднего размера
Map. - sqrt — Использовать
round(map_buckets_coefficient * sqrt(avg_map_size))в качестве количества бакетов с ограничением в диапазоне[1, max_buckets_in_map]. - linear — Использовать
round(map_buckets_coefficient * avg_map_size)в качестве количества бакетов с ограничением в диапазоне[1, max_buckets_in_map].
map_serialization_version
Map.
Возможные значения:
- basic — Использовать стандартную сериализацию для
Map. - with_buckets — Разбивать ключи по бакетам при сериализации. Использование бакетов улучшает чтение отдельных ключей из Map.
with_buckets определяется параметрами max_buckets_in_map и map_buckets_strategy.
map_serialization_version_for_zero_level_parts
Map для частей нулевого уровня, создаваемых при вставках.
Её можно использовать, чтобы сохранить сериализацию basic для частей нулевого уровня и избежать
снижения производительности при вставках, одновременно используя with_buckets для слитых частей.
marks_compress_block_size
marks_compression_codec
materialize_skip_indexes_on_merge
materialize_statistics_on_merge
materialize_ttl_recalculate_only
max_avg_part_size_for_too_many_parts
max_buckets_in_map
Map. Работает с сериализацией Map with_buckets.
Фактическое количество бакетов определяется параметром map_buckets_strategy.
Максимально допустимое значение — 256.
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_concurrent_queries
max_concurrent_queries.
Возможные значения:
- Положительное целое число.
0— Без ограничений.
0 (без ограничений).
Пример
max_delay_to_insert
INSERT, если
число активных частей в одной партиции превышает
значение parts_to_delay_insert.
Возможные значения:
- Любое положительное целое число.
INSERT вычисляется по формуле:
INSERT
задерживается на pow( 1 * 1000, (1 + 299 - 150) / (300 - 150) ) = 1000
мс.
Начиная с версии 23.1 формула была изменена следующим образом:
INSERT откладывается на max( 10, 1 * 1000 * (224 - 150 + 1) / (300 - 150) ) = 500 миллисекунд.
max_delay_to_mutate_ms
max_digestion_size_per_segment
max_file_name_length
replace_long_file_name_to_hash.
Значение этой настройки не включает длину расширения файла. Поэтому
рекомендуется задавать его ниже максимальной длины имени файла (обычно 255
байт), оставляя некоторый запас, чтобы избежать ошибок файловой системы.
max_files_to_modify_in_alter_columns
ALTER, если количество файлов для изменения (удаления, добавления)
превышает значение этой настройки.
Возможные значения:
- Любое положительное целое число.
max_files_to_remove_in_alter_columns
- Любое положительное целое число.
max_merge_delayed_streams_for_parallel_write
max_merge_selecting_sleep_ms
max_number_of_merges_with_ttl_in_pool
max_number_of_mutations_for_replica
max_part_loading_threads
max_part_removal_threads
max_partitions_to_read
- Любое положительное целое число.
max_parts_in_total
max_parts_in_total, выполнение INSERT прерывается с исключением Too many parts (N).
Возможные значения:
- Любое положительное целое число.
max_parts_to_merge_at_once
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
- Любое положительное целое число.
max_replicated_merges_in_queue
max_replicated_merges_with_ttl_in_queue
max_replicated_mutations_in_queue
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
merge_max_block_size
- Любое положительное целое число.
merge_max_block_size строк, затем
сливаются, а результат записывается в новую часть. Считанный блок помещается в оперативную память,
поэтому merge_max_block_size влияет на объём оперативной памяти, необходимой для слияния.
Таким образом, слияния могут потреблять большой объём оперативной памяти в таблицах с очень широкими строками
(если средний размер строки — 100 КБ, то при слиянии 10 частей
(100kb * 10 * 8192) = ~ 8GB оперативной памяти). Уменьшая merge_max_block_size,
можно сократить объём оперативной памяти, необходимой для слияния, но замедлить сам процесс слияния.
merge_max_block_size_bytes
index_granularity_bytes.
merge_max_bytes_to_prewarm_cache
merge_max_dynamic_subcolumns_in_compact_part
merge_max_dynamic_subcolumns_in_wide_part
merge_selecting_sleep_ms
merge_selecting_sleep_slowdown_factor
merge_selector_algorithm
merge_selector_base
merge_selector_blurry_base_scale_factor
merge_selector_enable_heuristic_to_lower_max_parts_to_merge_at_once
merge_selector_enable_heuristic_to_remove_small_parts_at_right
merge_selector_heuristic_to_lower_max_parts_to_merge_at_once_exponent
merge_selector_window_size
merge_total_max_bytes_to_prewarm_cache
merge_tree_clear_old_broken_detached_parts_ttl_timeout_seconds
merge_tree_clear_old_parts_interval_seconds
- Любое положительное целое число.
merge_tree_clear_old_temporary_directories_interval_seconds
- Любое положительное целое число.
merge_tree_enable_clear_old_broken_detached
merge_with_recompression_ttl_timeout
merge_with_ttl_timeout
merge_workload
workload для
фоновых слияний этой таблицы. Если значение не указано (пустая строка), вместо него
используется настройка сервера merge_workload.
См. также
min_absolute_delay_to_close
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
min_bytes_for_wide_part
Wide. Можно задать один, оба или ни один из этих параметров.
min_bytes_to_prewarm_caches
min_bytes_to_rebalance_partition_over_jbod
- Положительное целое число.
0— балансировка отключена.
min_bytes_to_rebalance_partition_over_jbod должно
быть не меньше значения
max_bytes_to_merge_at_max_space_in_pool
/ 1024. В противном случае ClickHouse генерирует исключение.
min_columns_to_activate_adaptive_write_buffer
- 0 - без ограничений
- 1 - всегда включен
min_compress_block_size
min_compressed_bytes_to_fsync_after_fetch
min_compressed_bytes_to_fsync_after_merge
min_delay_to_insert_ms
min_delay_to_mutate_ms
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
min_level_for_wide_part
Wide вместо Compact.
min_marks_to_honor_max_concurrent_queries
Запросы всё равно будут ограничиваться другими настройками
max_concurrent_queries.- Положительное целое число.
0— отключено (ограничениеmax_concurrent_queriesне применяется ни к одному запросу).
min_merge_bytes_to_use_direct_io
min_merge_bytes_to_use_direct_io байт, ClickHouse читает и записывает
данные на диск хранилища через интерфейс прямого I/O (параметр O_DIRECT).
Если min_merge_bytes_to_use_direct_io = 0, прямой I/O отключён.
min_parts_to_merge_at_once
min_relative_delay_to_close
min_relative_delay_to_measure
min_relative_delay_to_yield_leadership
min_replicated_logs_to_keep
- Любое положительное целое число.
min_rows_for_compact_part
min_rows_for_full_part_storage
min_rows_for_wide_part
Wide вместо Compact.
min_rows_to_fsync_after_merge
mutation_workload
workload для
фоновых мутаций этой таблицы. Если оно не указано (пустая строка), вместо него
используется настройка сервера mutation_workload.
См. также
non_replicated_deduplication_window
- Любое положительное целое число.
0(отключает дедупликацию).
notify_newest_block_number
nullable_serialization_version
Nullable(T).
Возможные значения:
-
basic — использовать стандартную сериализацию для
Nullable(T). -
allow_sparse — разрешить использование разреженного кодирования для
Nullable(T).
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). Это нужно, чтобы оставить свободные потоки
для обычных слияний и избежать ошибки “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
number_of_mutations_to_throw
number_of_partitions_to_consider_for_merge
object_serialization_version
v1v2v3
v3 поддерживает изменение версии сериализации общих данных.
Количество бакетов для сериализации общих данных в JSON в компактных частях. Работает с сериализациями общих данных map_with_buckets и advanced.
Максимально допустимое значение — 256.
Количество бакетов общих данных при JSON-сериализации в частях типа Wide. Работает с сериализациями общих данных map_with_buckets и advanced.
Максимально допустимое значение — 256.
Версия сериализации общих данных внутри типа данных 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.
Эта настройка позволяет указать другую версию сериализации
общих данных внутри JSON type для частей нулевого уровня, создаваемых при вставках.
Рекомендуется не использовать сериализацию общих данных advanced для частей нулевого уровня, так как это может
значительно увеличить время вставки.
old_parts_lifetime
- Любое положительное целое число.
old_parts_lifetime секунд.
Неактивные части удаляются, если они не используются текущими запросами, то есть если
refcount части равен 1.
Для новых частей не вызывается fsync, поэтому некоторое время новые части существуют только
в оперативной памяти сервера (кэше ОС). Если сервер внезапно перезагрузится, новые
части могут быть потеряны или повреждены. Чтобы защитить данные, неактивные части не удаляются
сразу.
При запуске ClickHouse проверяет целостность частей. Если слитая
часть повреждена, ClickHouse возвращает неактивные части в список активных
и позже снова сливает их. Затем повреждённая часть переименовывается (добавляется
префикс broken_) и перемещается в папку detached. Если слитая часть
не повреждена, исходные неактивные части переименовываются (добавляется
префикс ignored_) и перемещаются в папку detached.
Значение dirty_expire_centisecs по умолчанию (параметр ядра Linux) — 30
секунд (максимальное время, в течение которого записанные данные хранятся только в оперативной памяти), но при
высокой нагрузке на дисковую систему данные могут быть записаны значительно позже. Экспериментально
для old_parts_lifetime было выбрано значение 480 секунд, за которое
гарантированно выполняется запись новой части на диск.
optimize_row_order
DateTime64, заметного эффекта от этого параметра не ожидается.
part_minmax_index_columns
partition_key_only— отслеживаются только столбцы ключа партиции.with_block_number_offset— столбцы ключа партиции, а также сохранённые виртуальные столбцы_block_numberи_block_offset. Позволяет отсеивать части по этим столбцам.
part_moves_between_shards_delay_seconds
part_moves_between_shards_enable
parts_to_delay_insert
parts_to_delay_insert, выполнение INSERT искусственно замедляется.
Возможные значения:
- Любое положительное целое число.
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
prefer_fetch_merged_part_size_threshold, то предпочтительнее получить
слитую часть с реплики, а не выполнять слияние локально. Это позволяет ускорить
очень длительные слияния.
Возможные значения:
- Любое положительное целое число.
prewarm_mark_cache
prewarm_primary_key_cache
Размер блока сжатия первичного ключа; фактический размер сжимаемого блока.
primary_key_compression_codec
primary_key_lazy_load
primary_key_ratio_of_unique_prefix_values_to_skip_suffix_columns
propagate_types_serialization_versions_to_nested_types
ratio_of_defaults_for_sparse_serialization
ratio_of_defaults_for_sparse_serialization
значение меньше 1.0. Если значение больше или равно 1.0,
столбцы всегда будут записываться с использованием обычной полной сериализации.
Возможные значения:
- Float в диапазоне от
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
refresh_parts_interval
refresh_statistics_interval
remote_fs_execute_merges_on_single_replica_time_threshold
Репликация с нулевым копированием не готова к использованию в продакшне
Репликация с нулевым копированием отключена по умолчанию в ClickHouse версии 22.8 и
выше.Эту возможность не рекомендуется использовать в продакшне.
- Любое положительное целое число.
remote_fs_zero_copy_path_compatible_mode
remote_fs_zero_copy_zookeeper_path
remove_empty_parts
remove_rolled_back_parts_immediately
remove_unused_patch_parts
replace_long_file_name_to_hash
replicated_can_become_leader
true, реплики реплицируемых таблиц на этом узле будут пытаться
стать лидером.
Возможные значения:
truefalse
replicated_deduplication_window
- Любое положительное целое число.
- 0 (отключает дедупликацию)
Insert создаёт один или несколько блоков (частей). Для
дедупликации вставок
при записи в реплицируемые таблицы ClickHouse записывает хеш-суммы
созданных частей в ClickHouse Keeper. Хеш-суммы хранятся только для
последних replicated_deduplication_window блоков. Самые старые хеш-суммы
удаляются из ClickHouse Keeper.
Большое значение replicated_deduplication_window замедляет Inserts,
поскольку приходится сравнивать больше записей. Хеш-сумма вычисляется на
основе состава имён и типов полей, а также данных вставленной
части (потока байтов).
replicated_deduplication_window_for_async_inserts
- Любое положительное целое число.
- 0 (отключает дедупликацию для async_inserts)
replicated_deduplication_window_for_async_inserts блоков. Самые старые хеш-суммы
удаляются из ClickHouse Keeper.
Большое значение replicated_deduplication_window_for_async_inserts замедляет
Async Inserts, поскольку приходится сравнивать больше записей.
Хеш-сумма вычисляется на основе набора имён и типов полей,
а также данных вставки (потока байтов).
replicated_deduplication_window_seconds
- Любое положительное целое число.
replicated_deduplication_window_seconds задаёт, как долго хранить хеш-
суммы блоков для дедупликации вставок. Хеш-суммы старше
replicated_deduplication_window_seconds удаляются из ClickHouse Keeper,
даже если они моложе, чем replicated_deduplication_window.
Время отсчитывается относительно времени самой последней записи, а не
относительно текущего времени. Если это единственная запись, она будет храниться вечно.
replicated_deduplication_window_seconds_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_fetches_min_part_level
replicated_fetches_min_part_level_timeout_seconds
replicated_fetches_min_part_level всё равно будет загружена.
Используйте 0, чтобы отключить тайм-аут (части с уровнем ниже минимального откладываются на неопределённый срок до слияния).
По умолчанию: 300 (принудительная загрузка через 5 минут).
replicated_max_mutations_in_one_entry
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
- any - область поиска не ограничена.
- local - область поиска ограничена локальными дисками.
- none - пустая область, поиск не выполняется
serialization_info_version
serialization.json.
Эта настройка необходима для обеспечения совместимости при обновлении кластера.
Возможные значения:
basic- Базовый формат.with_types- Формат с дополнительным полемtypes_serialization_versions, позволяющим задавать версии сериализации для каждого типа. Это делает эффективными такие настройки, какstring_serialization_version.
basic, чтобы новые серверы создавали
части данных, совместимые со старыми серверами. После завершения обновления
переключитесь на WITH_TYPES, чтобы включить версии сериализации для каждого типа.
Когда включено (по умолчанию), столбцы типа Array с именами, содержащими точки и имеющими общий префикс (например, n.a и n.b),
рассматриваются как часть структуры Nested: они используют один общий файл смещений на диске (например, n.size0),
и во время INSERT проверяется, что размеры их массивов совпадают.
Когда отключено, каждый столбец типа Array получает собственный отдельный файл смещений, имена с точками не имеют
особой семантики, и скалярный столбец может сосуществовать со столбцами типа Array с именами с точками и тем же префиксом
(например, n UInt32 наряду с n.a Array(String)). Этот параметр нельзя изменить после создания таблицы.
Включает перепланирование задач координируемых слияний. Это может быть полезно даже при
shared_merge_tree_enable_coordinated_merges=0, поскольку позволяет заполнить статистику координатора слияний
и облегчить холодный старт.
Включает создание узлов /metadata и /columns для каждой реплики в ZooKeeper.
Доступно только в ClickHouse Cloud
Останавливает назначение слияний для shared merge tree. Доступно только в ClickHouse
Cloud
Сколько секунд партиция будет храниться в Keeper, если в ней нет частей.
Включает очистку записей Keeper для пустых партиций.
Включает стратегию координируемых слияний
Включает запись атрибутов в виртуальные части и коммит блоков в Keeper
Включает проверку устаревших частей. Доступно только в ClickHouse Cloud.
Интервал в секундах между обновлениями частей без срабатывания наблюдения ZooKeeper
в shared merge tree. Доступно только в ClickHouse Cloud
Начальная задержка перед обновлением частей. Доступно только в ClickHouse Cloud
Тайм-аут для межсерверного HTTP-соединения. Доступно только в ClickHouse Cloud
Тайм-ауты межсерверного HTTP-взаимодействия. Доступно только в ClickHouse
Cloud
Добавляет к shared_merge_tree_leader_update_period
равномерно распределённое случайное значение от 0 до x секунд,
чтобы избежать эффекта «стадного инстинкта». Доступно только в ClickHouse Cloud
Максимальный интервал повторной проверки лидерства при обновлении частей. Доступно только в
ClickHouse Cloud
Максимальное количество устаревших частей, удаление которых лидер попытается подтвердить
за один HTTP-запрос. Доступно только в ClickHouse Cloud.
Максимальная задержка при обновлении частей. Доступно только в ClickHouse Cloud
Максимальное число лидеров обновления частей. Доступно только в ClickHouse Cloud
Максимальное количество лидеров, отвечающих за обновление частей. Доступно только в ClickHouse Cloud
Максимальное количество реплик, участвующих в удалении частей (поток killer). Доступно только
в ClickHouse Cloud
Максимальное число реплик, которые будут пытаться назначать потенциально конфликтующие слияния (это позволяет избежать лишних конфликтов при назначении слияний). 0 означает, что параметр отключён. Доступно только в ClickHouse Cloud
Максимальное число поврежденных частей для SMT; при превышении автоматическое отсоединение запрещается.
Максимальный суммарный размер всех поврежденных частей для SMT; при превышении этого значения автоматическое отсоединение запрещается.
Как долго хранятся идентификаторы мемоизации вставки, чтобы избежать некорректных действий при
повторных попытках вставки. Доступно только в ClickHouse Cloud
Время между запусками потока выбора координатора слияния
Коэффициент изменения задержки потока координатора
Как часто координатор слияния должен синхронизироваться с ZooKeeper, чтобы получать актуальные метаданные
Количество слияний, которые coordinator может одновременно запрашивать у MergerMutator
Максимальный интервал между запусками потока координатора слияний
Количество записей о слияниях, которые координатор должен подготовить и распределить между воркерами.
Если установлено значение ‘auto’, оно равно максимальному количеству задач слияния, разрешённых для одной реплики, умноженному на количество активных реплик.
Минимальный интервал между запусками потока координатора слияний
Тайм-аут, который использует рабочий поток слияния, если после немедленного действия необходимо обновить его состояние
Интервал времени между запусками рабочего потока слияния
Сколько реплик будет входить в одну и ту же группу rendezvous hash при очистке устаревших частей.
Доступно только в ClickHouse Cloud.
Повторно загружает предикат слияния в задаче выбора merge/mutate, когда отношение <candidate partitions for mutations only (partitions that cannot be merged)>/<candidate partitions for mutations> превышает значение этого параметра. Доступно только
в ClickHouse Cloud
Количество задач на получение метаданных частей, планируемых одновременно. Доступно только в
ClickHouse Cloud
Время, в течение которого локально слитая часть хранится без запуска нового слияния, включающего
эту часть. Это дает другим репликам возможность получить эту часть и начать это слияние.
Доступно только в ClickHouse Cloud.
Минимальный размер части (в строках), начиная с которого назначение следующего слияния откладывается сразу после её локального слияния. Доступно только в ClickHouse Cloud.
Время, в течение которого локально слитая часть хранится без запуска нового слияния, включающего
эту часть. Это дает другим репликам возможность получить эту часть и начать это слияние.
Доступно только в ClickHouse Cloud
Читать виртуальные части с лидера, когда это возможно. Доступно только в ClickHouse
Cloud
Как часто реплики пытаются обновлять набор реплик в фоновом режиме. Момент следующего запуска
равномерно выбирается случайным образом в диапазоне [0, value] секунд. Исключение: value = 0 не подпадает под это правило;
в реализации используется минимальное значение 200 мс, поэтому момент следующего запуска случайным образом выбирается в диапазоне [0, 200] мс.
Если включено, все реплики пытаются получать данные части, хранящиеся в памяти (например, первичный
ключ, информацию о партиции и т. д.), с других реплик, где они уже есть.
Как часто реплика будет пытаться повторно загружать свои флаги по фоновому расписанию.
Включает запрос подсказок кэша FS из кэша в памяти
на других репликах. Доступно только в ClickHouse Cloud
Использовать компактный формат для устаревших частей: снижает нагрузку на Keeper, улучшает
обработку устаревших частей. Доступно только в ClickHouse Cloud
Если включено, при подсчете Too many parts будут использоваться общие данные в Keeper, а не
локальное состояние реплики. Доступно только в ClickHouse Cloud
Если настройка включена, SharedMergeTree использует один из сеансов ZooKeeper из серверного пула.
Сколько операций обнаружения партиций упаковывать в батч
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, в котором хранятся длины строк, а не в общем потоке. Это позволяет использовать реальные
подстолбцы .size и может повысить эффективность сжатия.
Вложенные типы String (например, внутри Nullable, LowCardinality, Array или Map)
не затрагиваются, кроме случаев, когда они встречаются в Tuple.
Возможные значения:
single_stream— Использовать стандартный формат сериализации со встроенными размерами.with_size_stream— Использовать отдельный поток размеров для столбцовStringверхнего уровня.
table_disk
table_readonly
temporary_directories_lifetime
try_fetch_recompressed_part_timeout
- Любое положительное целое число.
ttl_only_drop_parts
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
use_compact_variant_discriminators_serialization
use_const_adaptive_granularity
use_metadata_cache
use_minimalistic_checksums_in_zookeeper
use_minimalistic_part_header_in_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_optimize_lightweight_delete
true, при вертикальном слиянии легковесное удаление оптимизируется.
vertical_merge_optimize_ttl_delete
vertical_merge_remote_filesystem_prefetch
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
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_merge_mutation_min_parts_size_sleep_no_scale_before_lock
zookeeper_session_expiration_check_period
- Любое положительное целое число.