adaptive_write_buffer_initial_size
add_implicit_sign_column_constraint_for_collapsing_engine
true, добавляет неявное ограничение для столбца sign таблицы CollapsingMergeTree
или VersionedCollapsingMergeTree, разрешающее только допустимые значения (1 и -1).
alter_column_secondary_index_mode
ALTER, изменяющие столбцы, на которые распространяются вторичные индексы, и какое действие выполнять, если
они разрешены. По умолчанию такие команды ALTER разрешены, а индексы перестраиваются.
Возможные значения:
rebuild(по умолчанию): Перестраивает все вторичные индексы, затронутые столбцом в командеALTER.throw: Запрещает любые командыALTERдля столбцов, на которые распространяются явные вторичные индексы, генерируя исключение. Неявные индексы не подпадают под это ограничение и будут перестроены.drop: Удаляет зависимые вторичные индексы. Новые части не будут содержать эти индексы, и для их повторного создания потребуетсяMATERIALIZE INDEX.compatibility: Соответствует исходному поведению:throwдляALTER ... MODIFY COLUMNиrebuildдляALTER ... UPDATE/DELETE.ignore: Предназначено для опытных пользователей. Оставляет индексы в несогласованном состоянии, что может привести к некорректным результатам запроса.
apply_patches_on_merge
assign_part_uuids
auto_statistics_types
minmax устарел: он является подмножеством basic, поэтому вместо него следует использовать basic.
background_task_preferred_step_execution_time_ms
clean_deleted_rows
clone_replica_zookeeper_create_get_part_batch_size
compatibility_allow_sampling_expression_not_in_primary_key
compute_exact_num_defaults_for_sparse_columns
optimize_trivial_count_with_sparsity_filter,
который использует сохранённый счётчик num_defaults (для столбца с типом Nullable
дополнительно требуется nullable_serialization_version = 'allow_sparse').
Если оставить этот параметр отключённым, вставки/слияния останутся такими же быстрыми, как и раньше; при включении
добавляется проход O(rows) для каждого столбца, поддерживающего разреженное хранение.
deduplicate_merge_projection_mode
ignore предназначен исключительно для
совместимости и может приводить к некорректным результатам. В остальных случаях, если это разрешено,
задаёт действие при merge проекций: drop или rebuild. Для классического
MergeTree эта настройка игнорируется. Она также управляет OPTIMIZE DEDUPLICATE,
но действует на все члены семейства MergeTree. Как и параметр
lightweight_mutation_projection_mode, она также работает на уровне части.
Возможные значения:
ignorethrowdroprebuild
deduplication_hashes_cache_update_wait_ms
deduplication_hashes в памяти обновится до
более новой версии, прежде чем снова проверять его на наличие уже вставленных блоков. Кэш отражает
каталог deduplication_hashes в ClickHouse Keeper, чтобы вставки могли обнаруживать дубликаты без
round-trip к Keeper.
default_compression_codec
- Кодек сжатия, заданный для столбца в объявлении таблицы
- Кодек сжатия, заданный в
default_compression_codec(эта настройка) - Кодек сжатия по умолчанию, заданный в настройках
compressionЗначение по умолчанию: пустая строка (не задано).
disk
dynamic_serialization_version
v1v2v3
enforce_index_structure_match_on_partition_manipulation
ATTACH/MOVE/REPLACE PARTITION), индексы и проекции в исходной и целевой таблицах
должны быть идентичны. В противном случае целевая таблица может содержать
надмножество индексов и проекций исходной таблицы.
execute_merges_on_single_replica_time_threshold
- Любое положительное целое число.
finished_mutations_to_keep
force_read_through_cache_for_merges
initialization_retry_period
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
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).
object_serialization_version
v1v2v3
v3 поддерживает изменение версии сериализации общих данных.
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, дадут заметный выигрыш от этого параметра.
packed_skip_index_max_bytes
skp_idx.packed для каждой части вместо записи в отдельные файлы
skp_idx_<name>.idx2 / .mrk2. Подстримы большего размера остаются в
legacy-структуре с отдельными файлами. Решение принимается независимо для
каждого подстрима во время записи, поэтому одна часть может содержать небольшие
индексы (например, minmax) в упакованном виде, а крупные (например, тяжёлый
bloom_filter) — в отдельных файлах. Установите 0, чтобы полностью отключить
упаковку (по умолчанию).
Каждый подстрим skip-индекса фактически состоит из файла данных и файла marks; оба
буферизуются в памяти до достижения порога, прежде чем принимается решение о spill.
Поэтому пиковое потребление памяти при записи масштабируется как 2 * packed_skip_index_max_bytes * (number of substreams that stay below the threshold).
Полнотекстовые индексы не поддерживаются этой настройкой и никогда не упаковываются.
Упаковка снижает нагрузку на inode, когда для таблицы определено много skip-индексов (например,
с add_minmax_index_for_numeric_columns).
Формат хранения на диске самоописывающийся: reader обнаруживает skp_idx.packed и прозрачно читает из него упакованные
подстримы. Изменение этой настройки влияет только на вновь записанные части;
существующие части сохраняют ту структуру, которая была у них на момент записи.
part_minmax_index_columns
partition_key_only— отслеживаются только столбцы ключа партиции.with_block_number_offset— столбцы ключа партиции, а также сохранённые виртуальные столбцы_block_numberи_block_offset. Включает отсечение на уровне частей по этим столбцам.
propagate_types_serialization_versions_to_nested_types
string_serialization_version, будут распространяться на вложенные типы, такие как Array/Map/Nullable/JSON/etc. Если параметр отключён, версия сериализации будет применяться только к столбцам верхнего уровня этого типа и Tuple el
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
replace_long_file_name_to_hash
replicated_can_become_leader
true, реплики реплицируемых таблиц на этом узле будут пытаться
стать лидером.
Возможные значения:
truefalse
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: они используют один общий файл offsets на диске (например, n.size0),
и во время INSERT проверяется, что размеры их массивов совпадают.
Когда отключено, каждый столбец типа Array получает собственный независимый файл offsets, имена с точками не имеют специальной
семантики, и скалярный столбец может сосуществовать со столбцами типа Array с точками и тем же префиксом
(например, n UInt32 вместе с n.a Array(String)). Этот параметр нельзя изменить после создания таблицы.
simultaneous_parts_removal_limit
simultaneous_parts_removal_limit частей за одну итерацию.
Значение simultaneous_parts_removal_limit, равное 0, означает, что ограничений нет.
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— Использовать стандартный формат сериализации со встроенными размерами.with_size_stream— Использовать отдельный поток размеров дляString-столбцов верхнего уровня.
temporary_directories_lifetime
try_fetch_recompressed_part_timeout
- Любое положительное целое число.
ttl_only_drop_parts
TTL.
Когда ttl_only_drop_parts выключен (по умолчанию), удаляются только строки,
срок действия которых истек в соответствии с настройками TTL.
Когда ttl_only_drop_parts включен, удаляется вся часть, если все
строки в ней истекли в соответствии с настройками TTL.
wait_for_unique_parts_send_before_shutdown_ms
zookeeper_session_expiration_check_period
- Любое положительное целое число.