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

Настройки сервера

В этом разделе содержатся описания настроек сервера. Это настройки, которые нельзя изменить на уровне сессии или отдельного запроса.

Дополнительную информацию о конфигурационных файлах в ClickHouse см. в разделе «Файлы конфигурации».

Другие настройки описаны в разделе «Настройки». Перед изучением настроек рекомендуется прочитать раздел «Файлы конфигурации» и обратить внимание на использование подстановок (атрибуты incl и optional).

abort_on_logical_error

Принудительно аварийно завершать работу сервера при возникновении исключений LOGICAL_ERROR. Только для экспертов.

access_control_improvements

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

SettingDescriptionDefault
users_without_row_policies_can_read_rowsОпределяет, могут ли пользователи без разрешающих строковых политик (row policies) по‑прежнему читать строки с помощью запроса SELECT. Например, если есть два пользователя A и B, и строковая политика задана только для A, то, если этот параметр включен, пользователь B будет видеть все строки. Если параметр выключен, пользователь B не увидит ни одной строки.true
on_cluster_queries_require_cluster_grantОпределяет, требуют ли запросы ON CLUSTER привилегии CLUSTER.true
select_from_system_db_requires_grantОпределяет, требует ли запрос SELECT * FROM system.<table> каких‑либо привилегий и может ли выполняться любым пользователем. Если параметр включен, то для этого запроса требуется GRANT SELECT ON system.<table> так же, как и для несистемных таблиц. Исключения: несколько системных таблиц (tables, columns, databases и некоторые константные таблицы, такие как one, contributors) по‑прежнему доступны всем; также, если выдана привилегия SHOW (например, SHOW USERS), будет доступна соответствующая системная таблица (то есть system.users).true
select_from_information_schema_requires_grantОпределяет, требует ли запрос SELECT * FROM information_schema.<table> каких‑либо привилегий и может ли выполняться любым пользователем. Если параметр включен, то для этого запроса требуется GRANT SELECT ON information_schema.<table> так же, как и для обычных таблиц.true
settings_constraints_replace_previousОпределяет, будет ли ограничение в профиле настроек для некоторой настройки отменять действие предыдущего ограничения (заданного в других профилях) для этой настройки, включая поля, которые не заданы новым ограничением. Также включает тип ограничения changeable_in_readonly.true
table_engines_require_grantОпределяет, требуется ли привилегия для создания таблицы с конкретным движком таблицы.false
role_cache_expiration_time_secondsОпределяет количество секунд с момента последнего обращения, в течение которых роль хранится в кэше ролей (Role Cache).600

Пример:

<access_control_improvements>
    <users_without_row_policies_can_read_rows>true</users_without_row_policies_can_read_rows>
    <on_cluster_queries_require_cluster_grant>true</on_cluster_queries_require_cluster_grant>
    <select_from_system_db_requires_grant>true</select_from_system_db_requires_grant>
    <select_from_information_schema_requires_grant>true</select_from_information_schema_requires_grant>
    <settings_constraints_replace_previous>true</settings_constraints_replace_previous>
    <table_engines_require_grant>false</table_engines_require_grant>
    <role_cache_expiration_time_seconds>600</role_cache_expiration_time_seconds>
</access_control_improvements>

access_control_path

Путь к каталогу, в котором сервер ClickHouse хранит конфигурации пользователей и ролей, созданные SQL-командами.

См. также

aggregate_function_group_array_action_when_limit_is_reached

Действие, выполняемое при превышении максимального количества элементов массива в groupArray: throw — выбросить исключение, или discard — отбросить лишние значения

aggregate_function_group_array_max_element_size

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

allow_feature_tier

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

  • 0 - Разрешены изменения любых настроек (experimental, beta, production).
  • 1 - Разрешены только изменения настроек уровней beta и production. Попытки изменить настройки уровня experimental отклоняются.
  • 2 - Разрешены только изменения настроек уровня production. Попытки изменить настройки уровней experimental или beta отклоняются.

Это эквивалентно установке ограничения readonly для всех функций с уровнями EXPERIMENTAL / BETA.

Примечание

Значение 0 означает, что все настройки могут быть изменены.

allow_impersonate_user

Включает или отключает возможность использования функции IMPERSONATE (EXECUTE AS target_user).

allow_implicit_no_password

Запрещает создавать пользователя без пароля, если явно не указано 'IDENTIFIED WITH no_password'.

<allow_implicit_no_password>1</allow_implicit_no_password>

allow_no_password

Определяет, разрешено ли использование небезопасного типа пароля no_password.

<allow_no_password>1</allow_no_password>

allow_plaintext_password

Определяет, разрешено ли использование небезопасных паролей в открытом виде (plaintext).

<allow_plaintext_password>1</allow_plaintext_password>

allow_use_jemalloc_memory

Разрешает использование памяти jemalloc.

allowed_disks_for_table_engines

Список дисков, разрешённых для использования механизмом таблиц Iceberg

async_insert_queue_flush_on_shutdown

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

async_insert_threads

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

async_load_databases

Асинхронная загрузка баз данных и таблиц.

  • Если true, все несистемные базы данных с движками Ordinary, Atomic и Replicated будут загружаться асинхронно после запуска сервера ClickHouse. См. таблицу system.asynchronous_loader, настройки сервера tables_loader_background_pool_size и tables_loader_foreground_pool_size. Любой запрос, который пытается обратиться к таблице, ещё не загруженной в память, будет ждать запуска именно этой таблицы. Если задание загрузки завершится с ошибкой, запрос повторно выбросит эту ошибку (вместо завершения работы всего сервера в случае async_load_databases = false). Таблица, которую ожидает хотя бы один запрос, будет загружаться с более высоким приоритетом. DDL‑запросы к базе данных будут ждать запуска именно этой базы данных. Также рассмотрите возможность установки ограничения max_waiting_queries на общее количество ожидающих запросов.
  • Если false, все базы данных загружаются при запуске сервера.

Пример

<async_load_databases>true</async_load_databases>

async_load_system_database

Асинхронная загрузка таблиц системной базы данных. Полезно, если в базе данных system много таблиц журналов и частей. Не зависит от настройки async_load_databases.

  • Если значение — true, все системные базы данных с движками Ordinary, Atomic и Replicated будут загружаться асинхронно после запуска сервера ClickHouse. См. таблицу system.asynchronous_loader, настройки сервера tables_loader_background_pool_size и tables_loader_foreground_pool_size. Любой запрос, который пытается получить доступ к ещё не загруженной системной таблице, будет ожидать запуска именно этой таблицы. Таблица, которую ожидает хотя бы один запрос, будет загружаться с более высоким приоритетом. Также рассмотрите настройку параметра max_waiting_queries, чтобы ограничить общее количество ожидающих запросов.
  • Если значение — false, системная база данных загружается до запуска сервера.

Пример

<async_load_system_database>true</async_load_system_database>

asynchronous_heavy_metrics_update_period_s

Период обновления тяжёлых асинхронных метрик в секундах.

asynchronous_insert_log

Настройки системной таблицы asynchronous_insert_log для регистрации асинхронных вставок.

Следующие параметры можно настроить с помощью подтегов:

SettingDescriptionDefaultNote
databaseИмя базы данных.
tableИмя системной таблицы.
engineОпределение движка MergeTree для системной таблицы.Не может использоваться, если определены partition_by или order_by. Если не указан, по умолчанию выбирается MergeTree
partition_byПользовательский ключ партиционирования для системной таблицы.Если для системной таблицы указан engine, параметр partition_by должен быть указан непосредственно внутри engine
ttlЗадает TTL таблицы.Если для системной таблицы указан engine, параметр ttl должен быть указан непосредственно внутри engine
order_byПользовательский ключ сортировки для системной таблицы. Не может использоваться, если определен engine.Если для системной таблицы указан engine, параметр order_by должен быть указан непосредственно внутри engine
storage_policyИмя политики хранения, используемой для таблицы (необязательно).Если для системной таблицы указан engine, параметр storage_policy должен быть указан непосредственно внутри engine
settingsДополнительные параметры, управляющие поведением MergeTree (необязательно).Если для системной таблицы указан engine, параметр settings должен быть указан непосредственно внутри engine
flush_interval_millisecondsИнтервал сброса данных из буфера в памяти в таблицу.7500
max_size_rowsМаксимальный размер логов в строках. Когда объем несброшенных логов достигает max_size_rows, логи сбрасываются на диск.1048576
reserved_size_rowsПредварительно выделенный размер памяти в строках для логов.8192
buffer_size_rows_flush_thresholdПорог по количеству строк. Если порог достигнут, в фоновом режиме запускается сброс логов на диск.max_size_rows / 2
flush_on_crashОпределяет, должны ли логи сбрасываться на диск в случае сбоя.false

Пример

<clickhouse>
    <asynchronous_insert_log>
        <database>system</database>
        <table>asynchronous_insert_log</table>
        <flush_interval_milliseconds>7500</flush_interval_milliseconds>
        <partition_by>toYYYYMM(event_date)</partition_by>
        <max_size_rows>1048576</max_size_rows>
        <reserved_size_rows>8192</reserved_size_rows>
        <buffer_size_rows_flush_threshold>524288</buffer_size_rows_flush_threshold>
        <flush_on_crash>false</flush_on_crash>
        <!-- <engine>Engine = MergeTree PARTITION BY event_date ORDER BY event_time TTL event_date + INTERVAL 30 day</engine> -->
    </asynchronous_insert_log>
</clickhouse>

asynchronous_metric_log

По умолчанию включен в развертываниях ClickHouse Cloud.

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

Включение

Чтобы вручную включить сбор истории журнала асинхронных метрик system.asynchronous_metric_log, создайте файл /etc/clickhouse-server/config.d/asynchronous_metric_log.xml со следующим содержимым:

<clickhouse>
     <asynchronous_metric_log>
        <database>system</database>
        <table>asynchronous_metric_log</table>
        <flush_interval_milliseconds>7500</flush_interval_milliseconds>
        <collect_interval_milliseconds>1000</collect_interval_milliseconds>
        <max_size_rows>1048576</max_size_rows>
        <reserved_size_rows>8192</reserved_size_rows>
        <buffer_size_rows_flush_threshold>524288</buffer_size_rows_flush_threshold>
        <flush_on_crash>false</flush_on_crash>
    </asynchronous_metric_log>
</clickhouse>

Отключение

Чтобы отключить параметр asynchronous_metric_log, необходимо создать файл /etc/clickhouse-server/config.d/disable_asynchronous_metric_log.xml со следующим содержимым:

<clickhouse><asynchronous_metric_log remove="1" /></clickhouse>

Следующие параметры можно настроить с помощью подтегов:

SettingDescriptionDefaultNote
databaseИмя базы данных.
tableИмя системной таблицы.
engineОпределение движка MergeTree для системной таблицы.Не может использоваться, если определены partition_by или order_by. Если не указан, по умолчанию выбирается MergeTree
partition_byПользовательский ключ партиционирования для системной таблицы.Если для системной таблицы указан engine, параметр partition_by должен быть указан непосредственно внутри engine
ttlЗадает TTL таблицы.Если для системной таблицы указан engine, параметр ttl должен быть указан непосредственно внутри engine
order_byПользовательский ключ сортировки для системной таблицы. Не может использоваться, если определен engine.Если для системной таблицы указан engine, параметр order_by должен быть указан непосредственно внутри engine
storage_policyИмя политики хранения, используемой для таблицы (необязательно).Если для системной таблицы указан engine, параметр storage_policy должен быть указан непосредственно внутри engine
settingsДополнительные параметры, управляющие поведением MergeTree (необязательно).Если для системной таблицы указан engine, параметр settings должен быть указан непосредственно внутри engine
flush_interval_millisecondsИнтервал сброса данных из буфера в памяти в таблицу.7500
max_size_rowsМаксимальный размер логов в строках. Когда объем несброшенных логов достигает max_size_rows, логи сбрасываются на диск.1048576
reserved_size_rowsПредварительно выделенный размер памяти в строках для логов.8192
buffer_size_rows_flush_thresholdПорог по количеству строк. Если порог достигнут, в фоновом режиме запускается сброс логов на диск.max_size_rows / 2
flush_on_crashОпределяет, должны ли логи сбрасываться на диск в случае сбоя.false

asynchronous_metrics_enable_heavy_metrics

Включает вычисление ресурсоёмких асинхронных метрик.

asynchronous_metrics_keeper_metrics_only

Наcтраивает асинхронные метрики так, что вычисляются только метрики, связанные с Keeper.

asynchronous_metrics_update_period_s

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

auth_use_forwarded_address

Использовать исходный адрес для аутентификации клиентов, подключающихся через прокси-сервер.

Примечание

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

background_buffer_flush_schedule_pool_size

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

background_common_pool_size

Максимальное количество потоков, используемых для выполнения различных фоновых операций (преимущественно по сборке мусора) с таблицами *MergeTree-engine.

background_distributed_schedule_pool_size

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

background_fetches_pool_size

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

background_merges_mutations_concurrency_ratio

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

Например, если коэффициент равен 2 и параметр background_pool_size установлен равным 16, то ClickHouse может выполнять 32 фоновых слияния одновременно. Это возможно, потому что фоновые операции могут быть приостановлены и отложены. Это нужно для того, чтобы небольшие слияния имели более высокий приоритет выполнения.

Примечание

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

Как и в случае с настройкой background_pool_size, параметр background_merges_mutations_concurrency_ratio может быть задан из профиля default для обеспечения обратной совместимости.

background_merges_mutations_scheduling_policy

Политика планирования фоновых слияний и мутаций. Возможные значения: round_robin и shortest_task_first.

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

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

  • round_robin — Все параллельные слияния и мутации выполняются циклически (round-robin), чтобы исключить голодание. Меньшие слияния завершаются быстрее, чем большие, просто потому что им нужно объединить меньше блоков.
  • shortest_task_first — Всегда выполнять более мелкое слияние или мутацию. Слияниям и мутациям назначаются приоритеты на основе их результирующего размера. Слияния с меньшим размером строго предпочитаются большим. Эта политика обеспечивает максимально быстрое слияние маленьких кусков, но может приводить к бесконечному голоданию больших слияний в разделах, сильно перегруженных INSERT-ами.

background_message_broker_schedule_pool_size

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

background_move_pool_size

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

background_pool_size

Задает количество потоков, выполняющих фоновые слияния и мутации для таблиц с движками MergeTree.

Примечание
  • Этот параметр также может быть применён при запуске сервера из конфигурации профиля default для обеспечения обратной совместимости при старте сервера ClickHouse.
  • Во время работы сервера вы можете только увеличивать количество потоков.
  • Чтобы уменьшить количество потоков, необходимо перезапустить сервер.
  • Регулируя этот параметр, вы управляете нагрузкой на CPU и диск.
Опасность

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

Перед изменением этого параметра также ознакомьтесь со связанными настройками MergeTree, такими как:

Пример

<background_pool_size>16</background_pool_size>

background_schedule_pool_max_parallel_tasks_per_type_ratio

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

background_schedule_pool_size

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

backup_log

Настройки системной таблицы backup_log, в которой регистрируются операции BACKUP и RESTORE.

Следующие параметры можно настроить с помощью подтегов:

SettingDescriptionDefaultNote
databaseИмя базы данных.
tableИмя системной таблицы.
engineОпределение движка MergeTree для системной таблицы.Не может использоваться, если определены partition_by или order_by. Если не указан, по умолчанию выбирается MergeTree
partition_byПользовательский ключ партиционирования для системной таблицы.Если для системной таблицы указан engine, параметр partition_by должен быть указан непосредственно внутри engine
ttlЗадает TTL таблицы.Если для системной таблицы указан engine, параметр ttl должен быть указан непосредственно внутри engine
order_byПользовательский ключ сортировки для системной таблицы. Не может использоваться, если определен engine.Если для системной таблицы указан engine, параметр order_by должен быть указан непосредственно внутри engine
storage_policyИмя политики хранения, используемой для таблицы (необязательно).Если для системной таблицы указан engine, параметр storage_policy должен быть указан непосредственно внутри engine
settingsДополнительные параметры, управляющие поведением MergeTree (необязательно).Если для системной таблицы указан engine, параметр settings должен быть указан непосредственно внутри engine
flush_interval_millisecondsИнтервал сброса данных из буфера в памяти в таблицу.7500
max_size_rowsМаксимальный размер логов в строках. Когда объем несброшенных логов достигает max_size_rows, логи сбрасываются на диск.1048576
reserved_size_rowsПредварительно выделенный размер памяти в строках для логов.8192
buffer_size_rows_flush_thresholdПорог по количеству строк. Если порог достигнут, в фоновом режиме запускается сброс логов на диск.max_size_rows / 2
flush_on_crashОпределяет, должны ли логи сбрасываться на диск в случае сбоя.false

Пример

<clickhouse>
    <backup_log>
        <database>system</database>
        <table>backup_log</table>
        <flush_interval_milliseconds>1000</flush_interval_milliseconds>
        <partition_by>toYYYYMM(event_date)</partition_by>
        <max_size_rows>1048576</max_size_rows>
        <reserved_size_rows>8192</reserved_size_rows>
        <buffer_size_rows_flush_threshold>524288</buffer_size_rows_flush_threshold>
        <flush_on_crash>false</flush_on_crash>
        <!-- <engine>Engine = MergeTree PARTITION BY event_date ORDER BY event_time TTL event_date + INTERVAL 30 day</engine> -->
    </backup_log>
</clickhouse>

backup_threads

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

backups

Настройки резервного копирования, используемые при выполнении операторов BACKUP и RESTORE.

Следующие параметры можно настроить с помощью подтегов:

ПараметрТипОписаниеЗначение по умолчанию
allow_concurrent_backupsBoolОпределяет, могут ли несколько операций создания резервной копии выполняться одновременно на одном и том же хосте.true
allow_concurrent_restoresBoolОпределяет, могут ли несколько операций восстановления выполняться одновременно на одном и том же хосте.true
allowed_diskStringДиск, на который выполняется резервное копирование при использовании File(). Для использования File этот параметр должен быть задан.``
allowed_pathStringПуть, по которому выполняется резервное копирование при использовании File(). Для использования File этот параметр должен быть задан.``
attempts_to_collect_metadata_before_sleepUIntКоличество попыток собрать метаданные перед переходом к ожиданию в случае несогласованности, обнаруженной после сравнения собранных метаданных.2
collect_metadata_timeoutUInt64Таймаут в миллисекундах для сбора метаданных во время резервного копирования.600000
compare_collected_metadataBoolЕсли true, сравнивает собранные метаданные с существующими, чтобы убедиться, что они не были изменены во время резервного копирования.true
create_table_timeoutUInt64Таймаут в миллисекундах для создания таблиц во время восстановления.300000
max_attempts_after_bad_versionUInt64Максимальное количество попыток повторить операцию после возникновения ошибки неверной версии при координированном резервном копировании/восстановлении.3
max_sleep_before_next_attempt_to_collect_metadataUInt64Максимальное время ожидания в миллисекундах перед следующей попыткой собрать метаданные.100
min_sleep_before_next_attempt_to_collect_metadataUInt64Минимальное время ожидания в миллисекундах перед следующей попыткой собрать метаданные.5000
remove_backup_files_after_failureBoolЕсли команда BACKUP завершается с ошибкой, ClickHouse попытается удалить файлы, уже скопированные в резервную копию до момента ошибки, иначе оставит скопированные файлы.true
sync_period_msUInt64Период синхронизации в миллисекундах для координированного резервного копирования/восстановления.5000
test_inject_sleepBoolЗадержка для тестированияfalse
test_randomize_orderBoolЕсли true, перемешивает в случайном порядке порядок некоторых операций в целях тестирования.false
zookeeper_pathStringПуть в ZooKeeper, где хранятся метаданные резервного копирования и восстановления при использовании предложения ON CLUSTER./clickhouse/backups

По умолчанию этот параметр настроен как:

<backups>
    ....
</backups>

backups_io_thread_pool_queue_size

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

Примечание

Значение 0 (по умолчанию) означает отсутствие ограничений.

bcrypt_workfactor

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

<bcrypt_workfactor>12</bcrypt_workfactor>
Примечание

Для приложений с частой аутентификацией рассмотрите альтернативные методы аутентификации из-за ресурсоёмкости bcrypt при более высоких значениях параметра сложности (work factor).

blob_storage_log

Параметры для системной таблицы blob_storage_log.

Следующие параметры можно настроить с помощью подтегов:

SettingDescriptionDefaultNote
databaseИмя базы данных.
tableИмя системной таблицы.
engineОпределение движка MergeTree для системной таблицы.Не может использоваться, если определены partition_by или order_by. Если не указан, по умолчанию выбирается MergeTree
partition_byПользовательский ключ партиционирования для системной таблицы.Если для системной таблицы указан engine, параметр partition_by должен быть указан непосредственно внутри engine
ttlЗадает TTL таблицы.Если для системной таблицы указан engine, параметр ttl должен быть указан непосредственно внутри engine
order_byПользовательский ключ сортировки для системной таблицы. Не может использоваться, если определен engine.Если для системной таблицы указан engine, параметр order_by должен быть указан непосредственно внутри engine
storage_policyИмя политики хранения, используемой для таблицы (необязательно).Если для системной таблицы указан engine, параметр storage_policy должен быть указан непосредственно внутри engine
settingsДополнительные параметры, управляющие поведением MergeTree (необязательно).Если для системной таблицы указан engine, параметр settings должен быть указан непосредственно внутри engine
flush_interval_millisecondsИнтервал сброса данных из буфера в памяти в таблицу.7500
max_size_rowsМаксимальный размер логов в строках. Когда объем несброшенных логов достигает max_size_rows, логи сбрасываются на диск.1048576
reserved_size_rowsПредварительно выделенный размер памяти в строках для логов.8192
buffer_size_rows_flush_thresholdПорог по количеству строк. Если порог достигнут, в фоновом режиме запускается сброс логов на диск.max_size_rows / 2
flush_on_crashОпределяет, должны ли логи сбрасываться на диск в случае сбоя.false

Пример:

<blob_storage_log>
    <database>system</database
    <table>blob_storage_log</table
    <partition_by>toYYYYMM(event_date)</partition_by>
    <flush_interval_milliseconds>7500</flush_interval_milliseconds
    <ttl>event_date + INTERVAL 30 DAY</ttl>
</blob_storage_log>

builtin_dictionaries_reload_interval

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

ClickHouse перезагружает встроенные словари каждые x секунд. Это позволяет редактировать словари «на лету» без перезапуска сервера.

Пример

<builtin_dictionaries_reload_interval>3600</builtin_dictionaries_reload_interval>

cache_size_to_ram_max_ratio

Устанавливает максимальное допустимое отношение размера кэша к объёму ОЗУ. Позволяет уменьшить размер кэша на системах с ограниченным объёмом памяти.

cannot_allocate_thread_fault_injection_probability

Для тестирования.

cgroups_memory_usage_observer_wait_time

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

Чтобы отключить наблюдатель cgroups, установите это значение в 0.

compiled_expression_cache_elements_size

Задает размер кеша (в элементах) для скомпилированных выражений.

compiled_expression_cache_size

Задает размер кеша (в байтах) для скомпилированных выражений.

compression

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

Примечание

Рекомендуем не изменять этот параметр, если вы только начали использовать ClickHouse.

Шаблон конфигурации:

<compression>
    <case>
      <min_part_size>...</min_part_size>
      <min_part_size_ratio>...</min_part_size_ratio>
      <method>...</method>
      <level>...</level>
    </case>
    ...
</compression>

Поля <case>:

  • min_part_size – Минимальный размер части данных.
  • min_part_size_ratio – Отношение размера части данных к размеру таблицы.
  • method – Метод сжатия. Допустимые значения: lz4, lz4hc, zstd,deflate_qpl.
  • level – Уровень сжатия. См. Codecs.
Примечание

Вы можете настроить несколько секций <case>.

Действия при выполнении условий:

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

Если для части данных не выполнено ни одно условие, ClickHouse использует сжатие lz4.

Пример

<compression incl="clickhouse_compression">
    <case>
        <min_part_size>10000000000</min_part_size>
        <min_part_size_ratio>0.01</min_part_size_ratio>
        <method>zstd</method>
        <level>1</level>
    </case>
</compression>

concurrent_threads_scheduler

Политика планирования слотов CPU, задаваемых параметрами concurrent_threads_soft_limit_num и concurrent_threads_soft_limit_ratio_to_cores. Алгоритм, который определяет, как ограниченное число слотов CPU распределяется между одновременными запросами. Планировщик можно изменить во время работы без перезапуска сервера.

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

  • round_robin — Каждый запрос с настройкой use_concurrency_control = 1 выделяет до max_threads слотов CPU. Один слот на поток. При конкурентном доступе слоты CPU выдаются запросам по принципу round-robin. Обратите внимание, что первый слот выделяется безусловно, что может приводить к несправедливому распределению и увеличенной задержке для запросов с высоким значением max_threads при большом числе запросов с max_threads = 1.
  • fair_round_robin — Каждый запрос с настройкой use_concurrency_control = 1 выделяет до max_threads - 1 слотов CPU. Вариант round_robin, который не требует слот CPU для первого потока каждого запроса. Таким образом, запросы с max_threads = 1 не требуют ни одного слота и не могут несправедливо занять все слоты. Слоты не выделяются безусловно.

concurrent_threads_soft_limit_num

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

Примечание

Значение 0 (по умолчанию) означает отсутствие ограничений.

concurrent_threads_soft_limit_ratio_to_cores

То же, что и concurrent_threads_soft_limit_num, но задаётся как коэффициент относительно числа ядер.

config_reload_interval_ms

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

core_dump

Настраивает мягкий лимит размера файла дампа ядра.

Примечание

Жёсткий лимит настраивается с помощью системных инструментов.

Пример

<core_dump>
     <size_limit>1073741824</size_limit>
</core_dump>

cpu_slot_preemption

Определяет, как выполняется планирование нагрузки для CPU-ресурсов (MASTER THREAD и WORKER THREAD).

  • Если true (рекомендуется), учет ведется на основе фактически потребленного процессорного времени. Конкурирующим нагрузкам выделяется справедливый объем процессорного времени. Слоты выделяются на ограниченный период времени и повторно запрашиваются после истечения этого периода. Запрос слота может блокировать выполнение потока в случае перегрузки по CPU-ресурсам, то есть может происходить вытеснение (preemption). Это обеспечивает справедливое распределение процессорного времени.
  • Если false (по умолчанию), учет ведется на основе количества выделенных CPU-слотов. Конкурирующим нагрузкам выделяется справедливое количество CPU-слотов. Слот выделяется при старте потока, удерживается непрерывно и освобождается при завершении выполнения потока. Количество потоков, выделенных для выполнения запроса, может увеличиваться только с 1 до max_threads и никогда не уменьшаться. Такой режим более благоприятен для долго выполняющихся запросов и может приводить к голоданию по CPU для коротких запросов.

Пример

<cpu_slot_preemption>true</cpu_slot_preemption>

См. также

cpu_slot_preemption_timeout_ms

Определяет, сколько миллисекунд рабочий поток может ожидать во время вытеснения, то есть пока не будет выделен другой слот CPU. По истечении этого тайм-аута, если потоку не удалось получить новый слот CPU, он завершится, а запрос будет динамически уменьшен до меньшего числа одновременно выполняющихся потоков. Обратите внимание, что главный поток никогда не масштабируется вниз, но может быть вытеснен на неограниченное время. Имеет смысл только тогда, когда cpu_slot_preemption включён и ресурс CPU определён для WORKER THREAD.

Пример

<cpu_slot_preemption_timeout_ms>1000</cpu_slot_preemption_timeout_ms>

См. также

cpu_slot_quantum_ns

Определяет, сколько наносекунд процессорного времени потоку разрешено использовать после получения процессорного слота и до того, как он должен запросить следующий процессорный слот. Имеет смысл только, если cpu_slot_preemption включён и ресурс CPU задан для MASTER THREAD или WORKER THREAD.

Пример

<cpu_slot_quantum_ns>10000000</cpu_slot_quantum_ns>

См. также

crash_log

Настройки для работы системной таблицы crash_log.

Следующие настройки могут быть заданы с помощью подтегов:

SettingDescriptionDefaultNote
databaseИмя базы данных.
tableИмя системной таблицы.
engineОпределение движка MergeTree для системной таблицы.Нельзя использовать, если определены partition_by или order_by. Если не задано, по умолчанию выбирается MergeTree
partition_byПользовательский ключ партиционирования для системной таблицы.Если для системной таблицы задан engine, параметр partition_by должен быть указан непосредственно внутри 'engine'
ttlЗадает TTL таблицы.Если для системной таблицы задан engine, параметр ttl должен быть указан непосредственно внутри 'engine'
order_byПользовательский ключ сортировки для системной таблицы. Нельзя использовать, если задан engine.Если для системной таблицы задан engine, параметр order_by должен быть указан непосредственно внутри 'engine'
storage_policyИмя политики хранения, используемой для таблицы (необязательный параметр).Если для системной таблицы задан engine, параметр storage_policy должен быть указан непосредственно внутри 'engine'
settingsДополнительные параметры, управляющие поведением MergeTree (необязательный параметр).Если для системной таблицы задан engine, параметр settings должен быть указан непосредственно внутри 'engine'
flush_interval_millisecondsИнтервал сброса данных из буфера в памяти в таблицу.7500
max_size_rowsМаксимальный размер журналов в строках. Когда количество несброшенных журналов достигает max_size_rows, журналы сбрасываются на диск.1024
reserved_size_rowsПредварительно выделенный объем памяти в строках для журналов.1024
buffer_size_rows_flush_thresholdПорог по количеству строк. При достижении порога в фоновом режиме запускается сброс журналов на диск.max_size_rows / 2
flush_on_crashОпределяет, должны ли журналы сбрасываться на диск в случае сбоя.false

Файл конфигурации сервера по умолчанию config.xml содержит следующий раздел настроек:

<crash_log>
    <database>system</database>
    <table>crash_log</table>
    <partition_by>toYYYYMM(event_date)</partition_by>
    <flush_interval_milliseconds>7500</flush_interval_milliseconds>
    <max_size_rows>1024</max_size_rows>
    <reserved_size_rows>1024</reserved_size_rows>
    <buffer_size_rows_flush_threshold>512</buffer_size_rows_flush_threshold>
    <flush_on_crash>false</flush_on_crash>
</crash_log>

custom_cached_disks_base_directory

Этот параметр задает путь к кэшу для пользовательских (созданных из SQL) кэшируемых дисков. custom_cached_disks_base_directory имеет более высокий приоритет для пользовательских дисков, чем filesystem_caches_path (указанный в filesystem_caches_path.xml), который используется, если первый отсутствует. Путь параметра кэша файловой системы должен находиться внутри этого каталога, в противном случае будет выброшено исключение, которое не позволит создать диск.

Примечание

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

Пример:

<custom_cached_disks_base_directory>/var/lib/clickhouse/caches/</custom_cached_disks_base_directory>

custom_settings_prefixes

Список префиксов для пользовательских настроек. Префиксы должны быть разделены запятыми.

Пример

<custom_settings_prefixes>custom_</custom_settings_prefixes>

См. также

database_atomic_delay_before_drop_table_sec

Задержка, в течение которой удалённую таблицу можно восстановить с помощью оператора UNDROP. Если DROP TABLE выполнялся с модификатором SYNC, данная настройка игнорируется. Значение по умолчанию для этой настройки — 480 (8 минут).

database_catalog_drop_error_cooldown_sec

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

database_catalog_drop_table_concurrency

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

database_catalog_unused_dir_cleanup_period_sec

Параметр задачи, которая очищает каталог store/ от неиспользуемых данных. Определяет периодичность выполнения задачи.

Примечание

Значение 0 означает «никогда». Значение по умолчанию соответствует 1 дню.

database_catalog_unused_dir_hide_timeout_sec

Параметр задачи, которая удаляет мусор из каталога store/. Если какой-либо подкаталог не используется сервером clickhouse-server и этот каталог не изменялся в течение последних database_catalog_unused_dir_hide_timeout_sec секунд, задача «скрывает» этот каталог, удаляя все права доступа. Это также работает для каталогов, которые clickhouse-server не ожидает увидеть внутри store/.

Примечание

Значение 0 означает «немедленно».

database_catalog_unused_dir_rm_timeout_sec

Параметр задачи, которая удаляет «мусор» из директории store/. Если некоторый подкаталог не используется clickhouse-server и ранее был «скрыт» (см. database_catalog_unused_dir_hide_timeout_sec), и этот каталог не изменялся в течение количества секунд, заданного параметром database_catalog_unused_dir_rm_timeout_sec, задача удалит этот каталог. Это также работает для каталогов, которые clickhouse-server не ожидает увидеть внутри store/.

Примечание

Значение 0 означает «никогда». Значение по умолчанию соответствует 30 дням.

database_replicated_allow_detach_permanently

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

database_replicated_drop_broken_tables

Удалять лишние таблицы из реплицируемых баз данных вместо перемещения их в отдельную локальную базу данных

dead_letter_queue

Параметр системной таблицы «dead_letter_queue».

Следующие параметры можно настроить с помощью подтегов:

SettingDescriptionDefaultNote
databaseИмя базы данных.
tableИмя системной таблицы.
engineОпределение движка MergeTree для системной таблицы.Не может использоваться, если определены partition_by или order_by. Если не указан, по умолчанию выбирается MergeTree
partition_byПользовательский ключ партиционирования для системной таблицы.Если для системной таблицы указан engine, параметр partition_by должен быть указан непосредственно внутри engine
ttlЗадает TTL таблицы.Если для системной таблицы указан engine, параметр ttl должен быть указан непосредственно внутри engine
order_byПользовательский ключ сортировки для системной таблицы. Не может использоваться, если определен engine.Если для системной таблицы указан engine, параметр order_by должен быть указан непосредственно внутри engine
storage_policyИмя политики хранения, используемой для таблицы (необязательно).Если для системной таблицы указан engine, параметр storage_policy должен быть указан непосредственно внутри engine
settingsДополнительные параметры, управляющие поведением MergeTree (необязательно).Если для системной таблицы указан engine, параметр settings должен быть указан непосредственно внутри engine
flush_interval_millisecondsИнтервал сброса данных из буфера в памяти в таблицу.7500
max_size_rowsМаксимальный размер логов в строках. Когда объем несброшенных логов достигает max_size_rows, логи сбрасываются на диск.1048576
reserved_size_rowsПредварительно выделенный размер памяти в строках для логов.8192
buffer_size_rows_flush_thresholdПорог по количеству строк. Если порог достигнут, в фоновом режиме запускается сброс логов на диск.max_size_rows / 2
flush_on_crashОпределяет, должны ли логи сбрасываться на диск в случае сбоя.false

Параметры по умолчанию:

<dead_letter_queue>
    <database>system</database>
    <table>dead_letter</table>
    <partition_by>toYYYYMM(event_date)</partition_by>
    <flush_interval_milliseconds>7500</flush_interval_milliseconds>
</dead_letter_queue>

default_database

Имя базы данных по умолчанию.

default_password_type

Устанавливает тип пароля, который будет автоматически использоваться в запросах вида CREATE USER u IDENTIFIED BY 'p'.

Допустимые значения:

  • plaintext_password
  • sha256_password
  • double_sha1_password
  • bcrypt_password
<default_password_type>sha256_password</default_password_type>

default_profile

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

Пример

<default_profile>default</default_profile>

default_replica_name

Имя реплики в ZooKeeper.

Пример

<default_replica_name>{replica}</default_replica_name>

default_replica_path

Путь к таблице в ZooKeeper.

Пример

<default_replica_path>/clickhouse/tables/{uuid}/{shard}</default_replica_path>

default_session_timeout

Тайм-аут сеанса по умолчанию, в секундах.

<default_session_timeout>60</default_session_timeout>

dictionaries_config

Путь к конфигурационному файлу для словарей.

Путь:

  • Укажите абсолютный путь или путь относительно конфигурационного файла сервера.
  • Путь может содержать подстановочные символы * и ?.

См. также:

Пример

<dictionaries_config>*_dictionary.xml</dictionaries_config>

dictionaries_lazy_load

Отложенная загрузка словарей.

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

При запуске сервер будет ждать, пока все словари не завершат загрузку, прежде чем принимать какие-либо подключения (исключение: если wait_dictionaries_load_at_startup установлено в значение false).

Пример

<dictionaries_lazy_load>true</dictionaries_lazy_load>

dictionary_background_reconnect_interval

Интервал в миллисекундах между попытками переподключения словарей MySQL и Postgres с включённым background_reconnect после сбоя подключения.

disable_insertion_and_mutation

Отключает запросы INSERT/ALTER/DELETE. Этот параметр включается, если нужны узлы только для чтения, чтобы операции вставки и мутаций не влияли на производительность чтения. Вставки во внешние движки (S3, DataLake, MySQL, PostgreSQL, Kafka и т. д.) разрешены независимо от этого параметра.

disable_internal_dns_cache

Отключает внутренний DNS-кэш. Рекомендуется при эксплуатации ClickHouse в системах с часто меняющейся инфраструктурой, таких, как Kubernetes.

disable_tunneling_for_https_requests_over_http_proxy

По умолчанию для выполнения запросов HTTPS через прокси HTTP используется туннелирование (т.е. HTTP CONNECT). Этот параметр позволяет его отключить.

no_proxy

По умолчанию все запросы проходят через прокси. Чтобы отключить его для отдельных хостов, необходимо задать переменную no_proxy. Её можно указать внутри секции <proxy> для list- и remote-resolvers, а также задать как переменную окружения для environment-resolver. Поддерживаются IP-адреса, домены, поддомены и шаблон '*' для полного обхода прокси. Ведущие точки удаляются так же, как это делает curl.

Пример

Приведённая ниже конфигурация обходит прокси для запросов к clickhouse.cloud и ко всем его поддоменам (например, auth.clickhouse.cloud). То же самое относится к GitLab, даже если домен указан с ведущей точкой. И gitlab.com, и about.gitlab.com будут обходить прокси.

<proxy>
    <no_proxy>clickhouse.cloud,.gitlab.com</no_proxy>
    <http>
        <uri>http://proxy1</uri>
        <uri>http://proxy2:3128</uri>
    </http>
    <https>
        <uri>http://proxy1:3128</uri>
    </https>
</proxy>

disk_connections_soft_limit

Соединения, превышающие этот лимит, имеют значительно более короткий срок жизни. Лимит применяется к соединениям с дисками.

disk_connections_store_limit

Подключения, превышающие этот лимит, сбрасываются после использования. Установите значение 0, чтобы отключить кэш подключений. Лимит применяется к подключениям к дискам.

disk_connections_warn_limit

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

display_secrets_in_show_and_select

Включает или отключает отображение секретов в запросах SHOW и SELECT для таблиц, баз данных, табличных функций и словарей.

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

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

  • 0 — Отключено.
  • 1 — Включено.

distributed_cache_apply_throttling_settings_from_client

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

distributed_cache_keep_up_free_connections_ratio

Мягкое ограничение на количество подключений, которые распределённый кэш будет стараться держать свободными. Когда количество свободных подключений опускается ниже значения distributed_cache_keep_up_free_connections_ratio * max_connections, соединения с самой старой активностью будут закрываться до тех пор, пока число свободных подключений снова не превысит этот предел.

distributed_ddl

Управляет выполнением распределённых DDL-запросов (CREATE, DROP, ALTER, RENAME) в кластере. Работает только, если ZooKeeper включён.

Настраиваемые параметры в секции <distributed_ddl> включают:

SettingDescriptionDefault Value
pathпуть в Keeper к task_queue для DDL-запросов
profileпрофиль, используемый для выполнения DDL-запросов
pool_sizeколичество запросов ON CLUSTER, которые могут выполняться одновременно
max_tasks_in_queueмаксимальное количество задач, которые могут находиться в очереди.1,000
task_max_lifetimeудалить узел, если его возраст превышает это значение.7 * 24 * 60 * 60 (неделя в секундах)
cleanup_delay_periodочистка начинается после получения события о новом узле, если последняя очистка выполнялась не менее чем cleanup_delay_period секунд назад.60 секунд

Пример

<distributed_ddl>
    <!-- Путь в ZooKeeper к очереди с DDL-запросами -->
    <path>/clickhouse/task_queue/ddl</path>

    <!-- Настройки из этого профиля будут использоваться для выполнения DDL-запросов -->
    <profile>default</profile>

    <!-- Определяет, сколько запросов ON CLUSTER может выполняться одновременно. -->
    <pool_size>1</pool_size>

    <!--
         Настройки очистки (активные задачи не удаляются)
    -->

    <!-- Определяет TTL задачи (по умолчанию 1 неделя) -->
    <task_max_lifetime>604800</task_max_lifetime>

    <!-- Определяет, как часто выполняется очистка (в секундах) -->
    <cleanup_delay_period>60</cleanup_delay_period>

    <!-- Определяет максимальное количество задач в очереди -->
    <max_tasks_in_queue>1000</max_tasks_in_queue>
</distributed_ddl>

distributed_ddl_use_initial_user_and_roles

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

dns_allow_resolve_names_to_ipv4

Разрешает преобразовывать имена в IPv4-адреса.

dns_allow_resolve_names_to_ipv6

Разрешает преобразование доменных имён в IPv6-адреса.

dns_cache_max_entries

Максимальное количество записей во внутреннем DNS-кэше.

dns_cache_update_period

Период обновления внутреннего DNS-кэша в секундах.

dns_max_consecutive_failures

Максимальное количество последовательных сбоев разрешения имени хоста через DNS, после которого это имя хоста удаляется из DNS-кэша ClickHouse.

drop_distributed_cache_pool_size

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

drop_distributed_cache_queue_size

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

enable_azure_sdk_logging

Включает логирование SDK Azure

encryption

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

Ключи могут быть в шестнадцатеричном формате или строками длиной 16 байт.

Пример

Загрузка из конфигурации:

<encryption_codecs>
    <aes_128_gcm_siv>
        <key>1234567812345678</key>
    </aes_128_gcm_siv>
</encryption_codecs>
Примечание

Хранение ключей в файле конфигурации не рекомендуется — это небезопасно. Вы можете вынести ключи в отдельный файл конфигурации на защищённом диске и создать символическую ссылку на этот файл в каталоге config.d/.

Загрузка из конфигурации, когда ключ задан в шестнадцатеричном виде:

<encryption_codecs>
    <aes_128_gcm_siv>
        <key_hex>00112233445566778899aabbccddeeff</key_hex>
    </aes_128_gcm_siv>
</encryption_codecs>

Чтение ключа из переменной окружения:

<encryption_codecs>
    <aes_128_gcm_siv>
        <key_hex from_env="ENVVAR"></key_hex>
    </aes_128_gcm_siv>
</encryption_codecs>

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

Каждый из этих методов поддерживает работу с несколькими ключами:

<encryption_codecs>
    <aes_128_gcm_siv>
        <key_hex id="0">00112233445566778899aabbccddeeff</key_hex>
        <key_hex id="1" from_env="ENVVAR"></key_hex>
        <current_key_id>1</current_key_id>
    </aes_128_gcm_siv>
</encryption_codecs>

Здесь current_key_id указывает текущий ключ для шифрования.

Также пользователи могут задать nonce длиной 12 байт (по умолчанию процессы шифрования и расшифровки используют nonce, состоящий из нулевых байтов):

<encryption_codecs>
    <aes_128_gcm_siv>
        <nonce>012345678910</nonce>
    </aes_128_gcm_siv>
</encryption_codecs>

Или его можно указать в шестнадцатеричном виде:

<encryption_codecs>
    <aes_128_gcm_siv>
        <nonce_hex>abcdefabcdef</nonce_hex>
    </aes_128_gcm_siv>
</encryption_codecs>
Примечание

Всё вышесказанное применимо и к aes_256_gcm_siv (но длина ключа должна составлять 32 байта).

error_log

По умолчанию он отключён.

Включение

Чтобы вручную включить сбор истории ошибок system.error_log, создайте файл /etc/clickhouse-server/config.d/error_log.xml со следующим содержимым:

<clickhouse>
    <error_log>
        <database>system</database>
        <table>error_log</table>
        <flush_interval_milliseconds>7500</flush_interval_milliseconds>
        <collect_interval_milliseconds>1000</collect_interval_milliseconds>
        <max_size_rows>1048576</max_size_rows>
        <reserved_size_rows>8192</reserved_size_rows>
        <buffer_size_rows_flush_threshold>524288</buffer_size_rows_flush_threshold>
        <flush_on_crash>false</flush_on_crash>
    </error_log>
</clickhouse>

Отключение

Чтобы отключить параметр error_log, создайте файл /etc/clickhouse-server/config.d/disable_error_log.xml со следующим содержимым:

<clickhouse>
    <error_log remove="1" />
</clickhouse>

Следующие параметры можно настроить с помощью подтегов:

SettingDescriptionDefaultNote
databaseИмя базы данных.
tableИмя системной таблицы.
engineОпределение движка MergeTree для системной таблицы.Не может использоваться, если определены partition_by или order_by. Если не указан, по умолчанию выбирается MergeTree
partition_byПользовательский ключ партиционирования для системной таблицы.Если для системной таблицы указан engine, параметр partition_by должен быть указан непосредственно внутри engine
ttlЗадает TTL таблицы.Если для системной таблицы указан engine, параметр ttl должен быть указан непосредственно внутри engine
order_byПользовательский ключ сортировки для системной таблицы. Не может использоваться, если определен engine.Если для системной таблицы указан engine, параметр order_by должен быть указан непосредственно внутри engine
storage_policyИмя политики хранения, используемой для таблицы (необязательно).Если для системной таблицы указан engine, параметр storage_policy должен быть указан непосредственно внутри engine
settingsДополнительные параметры, управляющие поведением MergeTree (необязательно).Если для системной таблицы указан engine, параметр settings должен быть указан непосредственно внутри engine
flush_interval_millisecondsИнтервал сброса данных из буфера в памяти в таблицу.7500
max_size_rowsМаксимальный размер логов в строках. Когда объем несброшенных логов достигает max_size_rows, логи сбрасываются на диск.1048576
reserved_size_rowsПредварительно выделенный размер памяти в строках для логов.8192
buffer_size_rows_flush_thresholdПорог по количеству строк. Если порог достигнут, в фоновом режиме запускается сброс логов на диск.max_size_rows / 2
flush_on_crashОпределяет, должны ли логи сбрасываться на диск в случае сбоя.false

format_parsing_thread_pool_queue_size

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

Примечание

Значение 0 означает отсутствие ограничения.

format_schema_path

Путь к каталогу со схемами для входных данных, например к схемам для формата CapnProto.

Пример

<!-- Директория, содержащая файлы схем для различных входных форматов. -->
<format_schema_path>format_schemas/</format_schema_path>

global_profiler_cpu_time_period_ns

Период таймера тактов процессора для глобального профайлера (в наносекундах). Установите значение 0, чтобы отключить глобальный профайлер по тактам процессора. Рекомендуемое значение — не менее 10000000 (100 раз в секунду) для одиночных запросов или 1000000000 (раз в секунду) для профилирования всего кластера.

global_profiler_real_time_period_ns

Период таймера реального времени глобального профилировщика (в наносекундах). Установите значение 0, чтобы отключить глобальный профилировщик реального времени. Рекомендуемое значение — не менее 10000000 (100 раз в секунду) для отдельных запросов или 1000000000 (раз в секунду) для профилирования на уровне всего кластера.

google_protos_path

Задает каталог, содержащий proto-файлы для типов Protobuf.

Пример:

<google_protos_path>/usr/share/clickhouse/protos/</google_protos_path>

graphite

Отправка данных в Graphite.

Настройки:

  • host – сервер Graphite.
  • port – порт на сервере Graphite.
  • interval – интервал отправки, в секундах.
  • timeout – таймаут отправки данных, в секундах.
  • root_path – префикс для ключей.
  • metrics – отправка данных из таблицы system.metrics.
  • events – отправка данных-дельт, накопленных за период, из таблицы system.events.
  • events_cumulative – отправка накопительных (кумулятивных) данных из таблицы system.events.
  • asynchronous_metrics – отправка данных из таблицы system.asynchronous_metrics.

Можно настроить несколько блоков <graphite>. Например, вы можете использовать это для отправки разных данных с разными интервалами.

Пример

<graphite>
    <host>localhost</host>
    <port>42000</port>
    <timeout>0.1</timeout>
    <interval>60</interval>
    <root_path>one_min</root_path>
    <metrics>true</metrics>
    <events>true</events>
    <events_cumulative>false</events_cumulative>
    <asynchronous_metrics>true</asynchronous_metrics>
</graphite>

graphite_rollup

Настройки прореживания данных Graphite.

Подробнее см. в разделе GraphiteMergeTree.

Пример

<graphite_rollup_example>
    <default>
        <function>max</function>
        <retention>
            <age>0</age>
            <precision>60</precision>
        </retention>
        <retention>
            <age>3600</age>
            <precision>300</precision>
        </retention>
        <retention>
            <age>86400</age>
            <precision>3600</precision>
        </retention>
    </default>
</graphite_rollup_example>

hsts_max_age

Время действия HSTS в секундах.

Примечание

Значение 0 означает, что ClickHouse отключает HSTS. Если вы зададите положительное число, HSTS будет включён, а max-age будет равен указанному вами числу.

Пример

<hsts_max_age>600000</hsts_max_age>

http_connections_soft_limit

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

http_connections_store_limit

Соединения сверх этого предела очищаются после использования. Установите 0, чтобы отключить кэш соединений. Предел применяется к HTTP‑соединениям, которые не привязаны ни к какому диску или хранилищу.

http_connections_warn_limit

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

http_handlers

Позволяет использовать пользовательские HTTP‑обработчики. Чтобы добавить новый http‑обработчик, просто добавьте новый <rule>. Правила проверяются сверху вниз в указанном порядке, и при первом совпадении соответствующий обработчик запускается.

Следующие параметры могут быть настроены с помощью подтегов:

Sub-tagsDefinition
urlДля сопоставления URL запроса можно использовать префикс 'regex:' для сопоставления по регулярному выражению (необязательно)
methodsДля сопоставления HTTP‑методов запроса можно использовать запятые для разделения нескольких методов (необязательно)
headersДля сопоставления заголовков запроса сопоставляйте каждый дочерний элемент (имя дочернего элемента — имя заголовка); можно использовать префикс 'regex:' для сопоставления по регулярному выражению (необязательно)
handlerОбработчик запроса
empty_query_stringПроверяет, что в URL отсутствует строка запроса

handler содержит следующие параметры, которые могут быть настроены с помощью подтегов:

Sub-tagsDefinition
urlАдрес перенаправления
typeПоддерживаемые типы: static, dynamic_query_handler, predefined_query_handler, redirect
statusИспользуется с типом static, код статуса ответа
query_param_nameИспользуется с типом dynamic_query_handler, извлекает и выполняет значение, соответствующее <query_param_name> в параметрах HTTP‑запроса
queryИспользуется с типом predefined_query_handler, выполняет запрос при вызове обработчика
content_typeИспользуется с типом static, значение заголовка Content-Type ответа
response_contentИспользуется с типом static, содержимое ответа, отправляемое клиенту; при использовании префикса 'file://' или 'config://' содержимое берётся из файла или конфигурации и отправляется клиенту

Вместе со списком правил можно указать <defaults/>, который включает все обработчики по умолчанию.

Пример:

<http_handlers>
    <rule>
        <url>/</url>
        <methods>POST,GET</methods>
        <headers><pragma>no-cache</pragma></headers>
        <handler>
            <type>dynamic_query_handler</type>
            <query_param_name>query</query_param_name>
        </handler>
    </rule>

    <rule>
        <url>/predefined_query</url>
        <methods>POST,GET</methods>
        <handler>
            <type>predefined_query_handler</type>
            <query>SELECT * FROM system.settings</query>
        </handler>
    </rule>

    <rule>
        <handler>
            <type>static</type>
            <status>200</status>
            <content_type>text/plain; charset=UTF-8</content_type>
            <response_content>config://http_server_default_response</response_content>
        </handler>
    </rule>
</http_handlers>

http_options_response

Используется для добавления заголовков к ответу на HTTP-запрос OPTIONS. Метод OPTIONS используется при выполнении предварительных CORS-запросов (preflight).

Подробнее см. в разделе OPTIONS.

Пример:

<http_options_response>
     <header>
            <name>Access-Control-Allow-Origin</name>
            <value>*</value>
     </header>
     <header>
          <name>Access-Control-Allow-Headers</name>
          <value>origin, x-requested-with, x-clickhouse-format, x-clickhouse-user, x-clickhouse-key, Authorization</value>
     </header>
     <header>
          <name>Access-Control-Allow-Methods</name>
          <value>POST, GET, OPTIONS</value>
     </header>
     <header>
          <name>Access-Control-Max-Age</name>
          <value>86400</value>
     </header>
</http_options_response>

http_server_default_response

Страница, которая отображается по умолчанию при обращении к HTTP(S)-серверу ClickHouse. Значение по умолчанию — «Ok.» (с символом перевода строки в конце)

Пример

Открывает https://tabix.io/ при обращении к http://localhost: http_port.

<http_server_default_response>
  <![CDATA[<html ng-app="SMI2"><head><base href="http://ui.tabix.io/"></head><body><div ui-view="" class="content-ui"></div><script src="http://loader.tabix.io/master.js"></script></body></html>]]>
</http_server_default_response>

iceberg_catalog_threadpool_pool_size

Размер пула фоновых потоков для каталога Iceberg

iceberg_catalog_threadpool_queue_size

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

iceberg_metadata_files_cache_max_entries

Максимальный размер кэша файлов метаданных Iceberg в количестве записей. Ноль означает, что кэш отключён.

iceberg_metadata_files_cache_policy

Название политики кэширования метаданных Iceberg.

iceberg_metadata_files_cache_size

Максимальный размер кэша метаданных Iceberg в байтах. Нулевое значение отключает кэш.

iceberg_metadata_files_cache_size_ratio

Размер защищённой очереди (при использовании политики SLRU) в кэше метаданных Iceberg по отношению к общему размеру кэша.

ignore_empty_sql_security_in_create_view_query

При значении true ClickHouse не записывает значение по умолчанию для пустого предложения SQL SECURITY в запросах CREATE VIEW.

Примечание

Этот параметр нужен только на период миграции и станет устаревшим в версии 24.4.

include_from

Путь к файлу с подстановками. Поддерживаются форматы XML и YAML.

Дополнительные сведения см. в разделе "Файлы конфигурации".

Пример

<include_from>/etc/metrica.xml</include_from>

index_mark_cache_policy

Название политики кэширования меток вторичных индексов.

index_mark_cache_size

Максимальный размер кэша для индексных отметок.

Примечание

Значение 0 означает, что кэш отключен.

Этот параметр можно изменять во время работы сервера; изменения вступают в силу немедленно.

index_mark_cache_size_ratio

Размер защищённой очереди (в случае политики SLRU) в кэше меток вторичного индекса относительно общего размера кэша.

index_uncompressed_cache_policy

Имя политики кэша несжатых данных вторичных индексов.

index_uncompressed_cache_size

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

Примечание

Значение 0 означает, что кэш отключен.

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

index_uncompressed_cache_size_ratio

Размер защищённой очереди (в случае политики SLRU) в кэше несжатого вторичного индекса относительно общего размера кэша.

interserver_http_credentials

Имя пользователя и пароль, используемые для подключения к другим серверам во время репликации. Кроме того, сервер использует эти учетные данные для аутентификации других реплик. Поэтому значение interserver_http_credentials должно совпадать для всех реплик в кластере.

Примечание
  • По умолчанию, если секция interserver_http_credentials отсутствует, аутентификация при репликации не используется.
  • Настройки interserver_http_credentials не относятся к конфигурации учетных данных клиента ClickHouse.
  • Эти учетные данные общие для репликации по HTTP и HTTPS.

Следующие настройки могут быть заданы с помощью подтегов:

  • user — имя пользователя.
  • password — пароль.
  • allow_empty — если true, то другим репликам разрешено подключаться без аутентификации, даже если заданы учетные данные. Если false, то подключения без аутентификации отклоняются. Значение по умолчанию: false.
  • old — содержит старые user и password, использовавшиеся при ротации учетных данных. Можно указать несколько секций old.

Ротация учетных данных

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

Чтобы включить аутентификацию, установите interserver_http_credentials.allow_empty в true и добавьте учетные данные. Это позволит устанавливать подключения как с аутентификацией, так и без нее.

<interserver_http_credentials>
    <user>admin</user>
    <password>111</password>
    <allow_empty>true</allow_empty>
</interserver_http_credentials>

После настройки всех реплик установите для allow_empty значение false или удалите этот параметр. Это сделает аутентификацию с новыми учетными данными обязательной.

Чтобы изменить существующие учетные данные, перенесите имя пользователя и пароль в раздел interserver_http_credentials.old и задайте для user и password новые значения. На этом этапе сервер использует новые учетные данные для подключения к другим репликам и принимает подключения как с новыми, так и со старыми учетными данными.

<interserver_http_credentials>
    <user>admin</user>
    <password>222</password>
    <old>
        <user>admin</user>
        <password>111</password>
    </old>
    <old>
        <user>temp</user>
        <password>000</password>
    </old>
</interserver_http_credentials>

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

interserver_http_host

Имя хоста, которое другие серверы могут использовать для доступа к этому серверу.

Если не задано, определяется так же, как при выполнении команды hostname -f.

Полезно, чтобы не зависеть от конкретного сетевого интерфейса.

Пример

<interserver_http_host>example.clickhouse.com</interserver_http_host>

interserver_http_port

Порт для обмена данными между серверами ClickHouse.

Пример

<interserver_http_port>9009</interserver_http_port>

interserver_https_host

Аналогично interserver_http_host, за исключением того, что это имя хоста используется другими серверами для доступа к этому серверу по HTTPS.

Пример

<interserver_https_host>example.clickhouse.com</interserver_https_host>

interserver_https_port

Порт для обмена данными между серверами ClickHouse по HTTPS.

Пример

<interserver_https_port>9010</interserver_https_port>

interserver_listen_host

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

Примечание

По умолчанию значение совпадает с параметром listen_host.

Пример

<interserver_listen_host>::ffff:a00:1</interserver_listen_host>
<interserver_listen_host>10.0.0.1</interserver_listen_host>

Тип:

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

io_thread_pool_queue_size

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

Примечание

Значение 0 означает отсутствие ограничения.

jemalloc_collect_global_profile_samples_in_trace_log

Сохранять выборочные выделения памяти jemalloc в system.trace_log

jemalloc_enable_background_threads

Включает использование фоновых потоков jemalloc. Jemalloc использует фоновые потоки для очистки неиспользуемых страниц памяти. Отключение может привести к снижению производительности.

jemalloc_enable_global_profiler

Включает глобальный профилировщик выделений памяти jemalloc для всех потоков. Jemalloc будет выборочно отслеживать выделения памяти и все освобождения для выборочно отслеживаемых выделений. Профили можно сбрасывать с помощью SYSTEM JEMALLOC FLUSH PROFILE, что может использоваться для анализа выделений памяти. Выборки профиля также могут сохраняться в system.trace_log с помощью конфигурации jemalloc_collect_global_profile_samples_in_trace_log или параметра запроса jemalloc_collect_profile_samples_in_trace_log. См. Профилирование выделений памяти

jemalloc_flush_profile_interval_bytes

Сброс профиля jemalloc будет выполняться после увеличения глобального пикового потребления памяти на jemalloc_flush_profile_interval_bytes

jemalloc_flush_profile_on_memory_exceeded

Сброс профиля jemalloc будет выполняться при ошибках превышения общего лимита памяти

jemalloc_max_background_threads_num

Максимальное количество фоновых потоков jemalloc, которые может быть создано; установите 0, чтобы использовать значение по умолчанию jemalloc

keep_alive_timeout

Время в секундах, в течение которого ClickHouse ожидает входящие HTTP‑запросы перед закрытием соединения.

Пример

<keep_alive_timeout>10</keep_alive_timeout>

keeper_hosts

Динамическая настройка. Содержит набор хостов [Zoo]Keeper, с которыми ClickHouse потенциально может установить соединение. Не отображает информацию из <auxiliary_zookeepers>

keeper_multiread_batch_size

Максимальный размер пакета для запроса MultiRead к [Zoo]Keeper с поддержкой пакетной обработки. Если установить значение 0, пакетная обработка будет отключена. Доступно только в ClickHouse Cloud.

ldap_servers

Перечислите здесь серверы LDAP с их параметрами подключения, чтобы:

  • использовать их как аутентификаторы для отдельных локальных пользователей, у которых указана схема аутентификации ldap вместо password
  • использовать их как удалённые каталоги пользователей.

Следующие настройки можно задать при помощи подтегов:

SettingDescription
hostИмя хоста или IP-адрес сервера LDAP — этот параметр является обязательным и не может быть пустым.
portПорт сервера LDAP. По умолчанию используется 636, если enable_tls установлен в true, иначе — 389.
bind_dnШаблон, используемый для построения DN для привязки (bind). Итоговый DN будет сформирован путём замены всех подстрок \{user_name\} в шаблоне фактическим именем пользователя при каждой попытке аутентификации.
user_dn_detectionРаздел с параметрами поиска LDAP для определения фактического DN пользователя, к которому выполняется привязка. В основном используется в фильтрах поиска для последующего сопоставления ролей, когда сервером является Active Directory. Полученный DN пользователя будет использоваться при замене подстрок \{user_dn\} везде, где это допускается. По умолчанию DN пользователя установлен равным bind DN, но после выполнения поиска он будет обновлён до фактически обнаруженного значения DN пользователя.
verification_cooldownПериод времени в секундах после успешной попытки привязки, в течение которого считается, что пользователь успешно аутентифицирован для всех последующих запросов без обращения к серверу LDAP. Укажите 0 (по умолчанию), чтобы отключить кэширование и принудительно обращаться к серверу LDAP для каждого запроса аутентификации.
enable_tlsФлаг включения защищённого соединения с сервером LDAP. Укажите no для протокола в открытом виде (ldap://) (не рекомендуется). Укажите yes для LDAP поверх SSL/TLS (ldaps://) (рекомендуется, значение по умолчанию). Укажите starttls для устаревшего протокола StartTLS (протокол в открытом виде (ldap://), обновляемый до TLS).
tls_minimum_protocol_versionМинимальная версия протокола SSL/TLS. Допустимые значения: ssl2, ssl3, tls1.0, tls1.1, tls1.2 (значение по умолчанию).
tls_require_certПоведение проверки сертификата однорангового узла (peer) в SSL/TLS. Допустимые значения: never, allow, try, demand (значение по умолчанию).
tls_cert_fileПуть к файлу сертификата.
tls_key_fileПуть к файлу с ключом сертификата.
tls_ca_cert_fileПуть к файлу сертификата ЦС (CA).
tls_ca_cert_dirПуть к каталогу, содержащему сертификаты ЦС (CA).
tls_cipher_suiteРазрешённый набор шифров (в нотации OpenSSL).

Настройка user_dn_detection может быть задана при помощи подтегов:

SettingDescription
base_dnШаблон, используемый для построения базового DN для поиска LDAP. Итоговый DN будет сформирован путём замены всех подстрок \{user_name\} и '{bind_dn}' в шаблоне фактическим именем пользователя и bind DN во время поиска LDAP.
scopeОбласть поиска LDAP. Допустимые значения: base, one_level, children, subtree (значение по умолчанию).
search_filterШаблон, используемый для построения фильтра поиска для запроса LDAP. Итоговый фильтр будет сформирован путём замены всех подстрок \{user_name\}, \{bind_dn\} и \{base_dn\} в шаблоне фактическим именем пользователя, bind DN и base DN во время поиска LDAP. Обратите внимание, что специальные символы должны быть корректно экранированы в XML.

Пример:

<my_ldap_server>
    <host>localhost</host>
    <port>636</port>
    <bind_dn>uid={user_name},ou=users,dc=example,dc=com</bind_dn>
    <verification_cooldown>300</verification_cooldown>
    <enable_tls>yes</enable_tls>
    <tls_minimum_protocol_version>tls1.2</tls_minimum_protocol_version>
    <tls_require_cert>demand</tls_require_cert>
    <tls_cert_file>/path/to/tls_cert_file</tls_cert_file>
    <tls_key_file>/path/to/tls_key_file</tls_key_file>
    <tls_ca_cert_file>/path/to/tls_ca_cert_file</tls_ca_cert_file>
    <tls_ca_cert_dir>/path/to/tls_ca_cert_dir</tls_ca_cert_dir>
    <tls_cipher_suite>ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:AES256-GCM-SHA384</tls_cipher_suite>
</my_ldap_server>

Пример (типичная среда Active Directory с настроенным определением DN пользователя для последующего сопоставления ролей):

<my_ad_server>
    <host>localhost</host>
    <port>389</port>
    <bind_dn>EXAMPLE\{user_name}</bind_dn>
    <user_dn_detection>
        <base_dn>CN=Users,DC=example,DC=com</base_dn>
        <search_filter>(&amp;(objectClass=user)(sAMAccountName={user_name}))</search_filter>
    </user_dn_detection>
    <enable_tls>no</enable_tls>
</my_ad_server>

license_key

Лицензионный ключ для ClickHouse Enterprise Edition

listen_backlog

Backlog (размер очереди ожидающих установления соединений) для прослушивающего сокета. Значение по умолчанию 4096 совпадает со значением для Linux 5.4+).

Обычно это значение не требуется менять, поскольку:

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

Поэтому даже если у вас ненулевое значение TcpExtListenOverflows (из nstat) и этот счётчик растёт для сервера ClickHouse, это не означает, что данное значение нужно увеличивать, поскольку:

  • обычно, если 4096 недостаточно, это указывает на некоторую внутреннюю проблему масштабирования ClickHouse, поэтому лучше сообщить об этой проблеме;
  • это не означает, что сервер позже сможет обработать больше соединений (и даже если сможет, к тому моменту клиенты уже могут уйти или отключиться).

Пример

<listen_backlog>4096</listen_backlog>

listen_host

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

Примеры:

<listen_host>::1</listen_host>
<listen_host>127.0.0.1</listen_host>

listen_reuse_port

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

Пример

<listen_reuse_port>0</listen_reuse_port>

Тип:

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

listen_try

Сервер не завершит работу, если сети IPv6 или IPv4 недоступны при попытке начать приём подключений.

Пример

<listen_try>0</listen_try>

load_marks_threadpool_pool_size

Размер пула фоновых задач для загрузки меток

load_marks_threadpool_queue_size

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

logger

Расположение и формат сообщений журнала.

Ключи:

KeyDescription
levelУровень логирования. Допустимые значения: none (выключить логирование), fatal, critical, error, warning, notice, information,debug, trace, test
logПуть к файлу журнала.
errorlogПуть к файлу журнала ошибок.
sizeПолитика ротации: максимальный размер файлов журнала в байтах. После превышения этого порога файл переименовывается и архивируется, создаётся новый файл журнала.
countПолитика ротации: максимальное количество исторических файлов журнала ClickHouse, которые хранятся.
stream_compressСжимать сообщения журнала с помощью LZ4. Установите 1 или true для включения.
consoleВключить логирование в консоль. Установите 1 или true для включения. Значение по умолчанию — 1, если ClickHouse не запущен в режиме демона, иначе — 0.
console_log_levelУровень логирования для консольного вывода. По умолчанию равен level.
formatting.typeФормат журнала для консольного вывода. В настоящее время поддерживается только json.
use_syslogТакже перенаправлять вывод журнала в syslog.
syslog_levelУровень логирования при отправке в syslog.
asyncПри значении true (по умолчанию) логирование выполняется асинхронно (один фоновый поток на канал вывода). В противном случае логирование идёт в потоке, вызвавшем LOG.
async_queue_max_sizeПри использовании асинхронного логирования — максимальное количество сообщений, которые будут храниться в очереди в ожидании сброса. Избыточные сообщения будут отброшены.
startup_levelУровень при запуске используется для установки уровня корневого логгера при старте сервера. После запуска уровень логирования возвращается к настройке level.
shutdown_levelУровень при завершении используется для установки уровня корневого логгера при завершении работы сервера.

Спецификаторы формата журнала

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

Столбец "Example" показывает вывод для времени 2023-07-06 18:32:07.

СпецификаторОписаниеПример
%%Литерал %%
%nСимвол новой строки
%tСимвол горизонтальной табуляции
%YГод в десятичном формате, например 20172023
%yДве последние цифры года в виде десятичного числа (диапазон [00, 99])23
%CПервые две цифры года как десятичное число (диапазон [00, 99])20
%GЧетырёхзначный год по ISO 8601, основанный на номере недели, то есть год, содержащий указанную неделю. Обычно используется только с %V2023
%gПоследние 2 цифры годa по ISO 8601 на основе недель, то есть года, который содержит указанную неделю.23
%bСокращённое название месяца, например, Oct (зависит от локали)Июл
%hСиноним для %bиюл
%BПолное название месяца, например «Октябрь» (зависит от локали)Июль
%mМесяц в десятичном виде (диапазон [01, 12])07
%UНомер недели в году в виде десятичного числа (воскресенье — первый день недели) (диапазон [00,53])27
%WНомер недели года в формате десятичного числа (понедельник — первый день недели) (диапазон [00,53])27
%VНомер недели по ISO 8601 (в диапазоне [01,53])27
%jДень года как десятичное число (диапазон [001, 366])187
%dДень месяца в виде десятичного числа с ведущим нулём (диапазон [01,31]). Для однозначных чисел добавляется ведущий ноль.06
%eДень месяца в виде десятичного числа, дополненного ведущим пробелом (диапазон [1,31]). Одноразрядному числу предшествует пробел.&nbsp; 6
%aСокращённое название дня недели, например «Пт» (в зависимости от локали)Чт
%AПолное название дня недели, например пятница (в зависимости от локали)Четверг
%wДень недели в виде целого числа, где воскресенье — 0 (диапазон [0–6])4
%uДень недели в виде десятичного числа, где понедельник — 1 (формат ISO 8601) (диапазон [1-7])4
%HЧас в виде десятичного числа, 24-часовой формат времени (диапазон [00–23])18
%IЧас как десятичное число, в 12-часовом формате (диапазон [01, 12])06
%MМинута как десятичное число (диапазон [00, 59])32
%SСекунда как десятичное число (в диапазоне [00,60])07
%cСтандартная строка даты и времени, например, Sun Oct 17 04:41:13 2010 (зависящая от локали)Thu Jul 6 18:32:07 2023
%xЛокализованный формат даты (зависит от локали)06.07.23
%XФормат времени с учётом локали, например 18:40:20 или 6:40:20 PM (зависит от локали)18:32:07
%DКраткий формат даты MM/DD/YY, эквивалентный %m/%d/%y06.07.23
%FКраткий формат даты YYYY-MM-DD, эквивалентен %Y-%m-%d2023-07-06
%rЛокализованное время в 12‑часовом формате (зависит от настроек локали)18:32:07
%RЭквивалентно "%H:%M"18:32
%TЭквивалентно «%H:%M:%S» (формат времени ISO 8601)18:32:07
%pЛокализованное обозначение формата a.m./p.m. (зависит от локали)PM
%zСмещение от UTC в формате ISO 8601 (например, -0430) или пустая строка, если информация о часовом поясе недоступна+0800
%ZЛокализованное имя или аббревиатура часового пояса, либо пустая строка, если информация о часовом поясе недоступнаZ AWST

Пример

<logger>
    <level>trace</level>
    <log>/var/log/clickhouse-server/clickhouse-server-%F-%T.log</log>
    <errorlog>/var/log/clickhouse-server/clickhouse-server-%F-%T.err.log</errorlog>
    <size>1000M</size>
    <count>10</count>
    <stream_compress>true</stream_compress>
</logger>

Чтобы выводить сообщения журнала только в консоль:

<logger>
    <level>information</level>
    <console>true</console>
</logger>

Переопределения на уровне отдельных логгеров

Уровень логирования для отдельных логгеров можно переопределять. Например, чтобы отключить все сообщения логгеров «Backup» и «RBAC».

<logger>
    <levels>
        <logger>
            <name>Backup</name>
            <level>none</level>
        </logger>
        <logger>
            <name>RBAC</name>
            <level>none</level>
        </logger>
    </levels>
</logger>

syslog

Чтобы дополнительно отправлять сообщения журнала в syslog:

<logger>
    <use_syslog>1</use_syslog>
    <syslog>
        <address>syslog.remote:10514</address>
        <hostname>myhost.local</hostname>
        <facility>LOG_LOCAL6</facility>
        <format>syslog</format>
    </syslog>
</logger>

Ключи для <syslog>:

KeyDescription
addressАдрес syslog в формате host\[:port\]. Если не указан, используется локальный демон.
hostnameИмя хоста, с которого отправляются логи (необязательный параметр).
facilityКлючевое слово facility для syslog. Должно быть указано прописными буквами с префиксом "LOG_", например LOG_USER, LOG_DAEMON, LOG_LOCAL3 и т. д. По умолчанию: LOG_USER, если задан address, иначе LOG_DAEMON.
formatФормат сообщения лога. Возможные значения: bsd и syslog.

Форматы логов

Вы можете указать формат лога, который будет выводиться в консоль. В настоящее время поддерживается только JSON.

Пример

Ниже приведён пример выходного JSON-лога:

{
  "date_time_utc": "2024-11-06T09:06:09Z",
  "date_time": "1650918987.180175",
  "thread_name": "#1",
  "thread_id": "254545",
  "level": "Trace",
  "query_id": "",
  "logger_name": "BaseDaemon",
  "message": "Получен сигнал 2",
  "source_file": "../base/daemon/BaseDaemon.cpp; virtual void SignalListener::run()",
  "source_line": "192"
}

Чтобы включить поддержку JSON-логирования, используйте следующий фрагмент:

<logger>
    <formatting>
        <type>json</type>
        <!-- Может быть настроено для каждого канала (log, errorlog, console, syslog) или глобально для всех каналов (тогда просто опустите этот параметр). -->
        <!-- <channel></channel> -->
        <names>
            <date_time>date_time</date_time>
            <thread_name>thread_name</thread_name>
            <thread_id>thread_id</thread_id>
            <level>level</level>
            <query_id>query_id</query_id>
            <logger_name>logger_name</logger_name>
            <message>message</message>
            <source_file>source_file</source_file>
            <source_line>source_line</source_line>
        </names>
    </formatting>
</logger>

Переименование ключей для JSON-логов

Имена ключей можно изменить, задав другие значения тегов внутри тега <names>. Например, чтобы изменить DATE_TIME на MY_DATE_TIME, можно использовать <date_time>MY_DATE_TIME</date_time>.

Пропуск ключей для JSON-логов

Свойства лога можно исключить, закомментировав соответствующий тег. Например, если вы не хотите, чтобы ваш лог выводил query_id, вы можете закомментировать тег <query_id>.

macros

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

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

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

Пример

<macros incl="macros" optional="true" />

mark_cache_policy

Имя политики кэша меток.

mark_cache_prewarm_ratio

Доля общего объёма кэша меток, заполняемого при предварительном прогреве.

mark_cache_size

Максимальный размер кэша меток (индекса таблиц семейства MergeTree).

Примечание

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

mark_cache_size_ratio

Размер защищённой очереди (в случае политики SLRU) в кэше меток относительно общего размера кэша.

max_active_parts_loading_thread_pool_size

Количество потоков для загрузки активного набора частей данных (active parts) при запуске.

max_authentication_methods_per_user

Максимальное количество методов аутентификации, с которыми пользователь может быть создан или изменён. Изменение этой настройки не влияет на существующих пользователей. Запросы на создание/изменение, связанные с аутентификацией, завершатся с ошибкой, если превысят лимит, указанный в этом параметре. Запросы на создание/изменение, не связанные с аутентификацией, будут выполняться успешно.

Примечание

Значение 0 означает отсутствие ограничения.

max_backup_bandwidth_for_server

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

max_backups_io_thread_pool_free_size

Если количество неактивных потоков в пуле потоков ввода-вывода для резервного копирования (Backups IO Thread Pool) превышает max_backup_io_thread_pool_free_size, ClickHouse освободит ресурсы, занятые этими потоками, и уменьшит размер пула. При необходимости потоки могут быть созданы снова.

max_backups_io_thread_pool_size

ClickHouse использует потоки из пула Backups IO Thread для выполнения операций ввода-вывода при резервном копировании в S3. max_backups_io_thread_pool_size ограничивает максимальное количество потоков в этом пуле.

max_build_vector_similarity_index_thread_pool_size

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

Примечание

Значение 0 означает использование всех ядер.

max_concurrent_insert_queries

Ограничение на общее число одновременно выполняемых запросов INSERT.

Примечание

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

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

max_concurrent_queries

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

См. также:

Примечание

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

Этот параметр можно изменять во время работы сервера, и изменения вступают в силу немедленно. Уже выполняющиеся запросы не будут затронуты.

max_concurrent_select_queries

Ограничение общего числа одновременно выполняемых запросов SELECT.

Примечание

Значение 0 (по умолчанию) означает отсутствие ограничений.

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

max_connections

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

max_database_num_to_throw

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

max_database_num_to_warn

Если количество подключённых баз данных превышает заданное значение, сервер ClickHouse добавит предупреждающие сообщения в таблицу system.warnings.

Пример

<max_database_num_to_warn>50</max_database_num_to_warn>

max_database_replicated_create_table_thread_pool_size

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

max_dictionary_num_to_throw

Если количество словарей превышает это значение, сервер сгенерирует исключение.

Считаются только таблицы для движков баз данных:

  • Atomic
  • Ordinary
  • Replicated
  • Lazy
Примечание

Значение 0 означает отсутствие ограничения.

Пример

<max_dictionary_num_to_throw>400</max_dictionary_num_to_throw>

max_dictionary_num_to_warn

Если количество подключённых словарей превышает указанное значение, сервер ClickHouse будет добавлять предупреждения в таблицу system.warnings.

Пример

<max_dictionary_num_to_warn>400</max_dictionary_num_to_warn>

max_distributed_cache_read_bandwidth_for_server

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

max_distributed_cache_write_bandwidth_for_server

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

max_entries_for_hash_table_stats

Сколько записей может содержать статистика хеш-таблицы, собираемая при агрегации

max_fetch_partition_thread_pool_size

Число потоков, используемых командой ALTER TABLE FETCH PARTITION.

max_format_parsing_thread_pool_free_size

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

max_format_parsing_thread_pool_size

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

max_io_thread_pool_free_size

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

max_io_thread_pool_size

ClickHouse использует потоки из пула потоков ввода-вывода (IO Thread pool) для выполнения операций ввода-вывода (например, для взаимодействия с S3). max_io_thread_pool_size ограничивает максимальное число потоков в этом пуле.

max_keep_alive_requests

Максимальное количество запросов по одному соединению с keep-alive, после чего оно будет закрыто сервером ClickHouse.

Пример

<max_keep_alive_requests>10</max_keep_alive_requests>

max_local_read_bandwidth_for_server

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

Примечание

Значение 0 означает отсутствие ограничений.

max_local_write_bandwidth_for_server

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

Примечание

Значение 0 означает отсутствие ограничения.

max_materialized_views_count_for_table

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

Примечание

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

max_merges_bandwidth_for_server

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

max_mutations_bandwidth_for_server

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

max_named_collection_num_to_throw

Если число именованных коллекций превышает это значение, сервер сгенерирует исключение.

Примечание

Значение 0 означает отсутствие ограничения.

Пример

<max_named_collection_num_to_throw>400</max_named_collection_num_to_throw>

max_named_collection_num_to_warn

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

Пример

<max_named_collection_num_to_warn>400</max_named_collection_num_to_warn>

max_open_files

Максимальное количество открытых файлов.

Примечание

Мы рекомендуем использовать этот параметр в macOS, поскольку функция getrlimit() возвращает некорректное значение.

Пример

<max_open_files>262144</max_open_files>

max_os_cpu_wait_time_ratio_to_drop_connection

Максимальное отношение времени ожидания CPU в ОС (метрика OSCPUWaitMicroseconds) к времени занятости (метрика OSCPUVirtualTimeMicroseconds), при котором соединения могут быть разорваны. Для вычисления вероятности используется линейная интерполяция между минимальным и максимальным значениями этого отношения; в этой точке вероятность равна 1. Подробнее см. в разделе Управление поведением при перегрузке CPU сервера.

max_outdated_parts_loading_thread_pool_size

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

max_part_num_to_warn

Если количество активных частей превышает указанное значение, сервер ClickHouse добавит предупреждения в таблицу system.warnings.

Пример

<max_part_num_to_warn>400</max_part_num_to_warn>

max_partition_size_to_drop

Ограничение на удаление разделов.

Если размер таблицы MergeTree превышает значение max_partition_size_to_drop (в байтах), вы не можете удалить раздел с помощью запроса DROP PARTITION. Для применения этой настройки не требуется перезапуск сервера ClickHouse. Другой способ отключить ограничение — создать файл <clickhouse-path>/flags/force_drop_table.

Примечание

Значение 0 означает, что вы можете удалять разделы без каких-либо ограничений.

Это ограничение не распространяется на операции DROP TABLE и TRUNCATE TABLE, см. max_table_size_to_drop.

Пример

<max_partition_size_to_drop>0</max_partition_size_to_drop>

max_parts_cleaning_thread_pool_size

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

max_pending_mutations_execution_time_to_warn

Если какая-либо из ожидающих выполнения мутаций превысит указанное значение в секундах, сервер ClickHouse добавит предупреждения в таблицу system.warnings.

Пример

<max_pending_mutations_execution_time_to_warn>10000</max_pending_mutations_execution_time_to_warn>

max_pending_mutations_to_warn

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

Пример

<max_pending_mutations_to_warn>400</max_pending_mutations_to_warn>

max_prefixes_deserialization_thread_pool_free_size

Если количество простаивающих потоков в пуле потоков десериализации префиксов превышает max_prefixes_deserialization_thread_pool_free_size, ClickHouse освободит ресурсы, занимаемые простаивающими потоками, и уменьшит размер пула. При необходимости потоки могут быть созданы вновь.

max_prefixes_deserialization_thread_pool_size

ClickHouse использует потоки из пула десериализации префиксов для параллельного чтения метаданных столбцов и подстолбцов из префиксов файлов в широких частях (Wide) в MergeTree. max_prefixes_deserialization_thread_pool_size ограничивает максимальное количество потоков в этом пуле.

max_remote_read_network_bandwidth_for_server

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

Примечание

Значение 0 (по умолчанию) означает отсутствие ограничений.

max_remote_write_network_bandwidth_for_server

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

Примечание

Значение 0 (по умолчанию) означает отсутствие ограничений.

max_replicated_fetches_network_bandwidth_for_server

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

max_replicated_sends_network_bandwidth_for_server

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

max_replicated_table_num_to_throw

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

Считаются только таблицы для движков баз данных:

  • Atomic
  • Ordinary
  • Replicated
  • Lazy
Примечание

Значение 0 означает отсутствие ограничения.

Пример

<max_replicated_table_num_to_throw>400</max_replicated_table_num_to_throw>

max_server_memory_usage

Максимальный объём памяти, который может использовать сервер, в байтах.

Примечание

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

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

max_server_memory_usage_to_ram_ratio

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

Например, значение 0.9 (по умолчанию) означает, что сервер может использовать до 90% доступной памяти.

Позволяет снизить использование памяти на системах с небольшим объёмом ОЗУ. На хостах с небольшим объёмом ОЗУ и пространства подкачки, возможно, потребуется установить max_server_memory_usage_to_ram_ratio больше 1.

Примечание

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

max_session_timeout

Максимальный тайм-аут сеанса (в секундах).

Пример:

<max_session_timeout>3600</max_session_timeout>

max_table_num_to_throw

Если число таблиц превышает это значение, сервер выбросит исключение.

Следующие таблицы не учитываются:

  • view
  • remote
  • dictionary
  • system

Считаются только таблицы для следующих движков баз данных:

  • Atomic
  • Ordinary
  • Replicated
  • Lazy
Примечание

Значение 0 означает отсутствие ограничения.

Пример

<max_table_num_to_throw>400</max_table_num_to_throw>

max_table_num_to_warn

Если количество подключённых таблиц превышает указанное значение, сервер ClickHouse запишет предупреждения в таблицу system.warnings.

Пример

<max_table_num_to_warn>400</max_table_num_to_warn>

max_table_size_to_drop

Ограничение на удаление таблиц.

Если размер таблицы MergeTree превышает max_table_size_to_drop (в байтах), удалить её с помощью запроса DROP или TRUNCATE нельзя.

Примечание

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

Для применения этого параметра не требуется перезапуск сервера ClickHouse. Другой способ отключить ограничение — создать файл <clickhouse-path>/flags/force_drop_table.

Пример

<max_table_size_to_drop>0</max_table_size_to_drop>

max_temporary_data_on_disk_size

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

Примечание

Значение 0 означает отсутствие ограничения.

См. также:

max_thread_pool_free_size

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

Пример

<max_thread_pool_free_size>1200</max_thread_pool_free_size>

max_thread_pool_size

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

Пример

<max_thread_pool_size>12000</max_thread_pool_size>

max_unexpected_parts_loading_thread_pool_size

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

max_view_num_to_throw

Если число представлений превышает это значение, сервер генерирует исключение.

Считаются только таблицы баз данных со следующими движками:

  • Atomic
  • Ordinary
  • Replicated
  • Lazy
Примечание

Значение 0 означает отсутствие ограничения.

Пример

<max_view_num_to_throw>400</max_view_num_to_throw>

max_view_num_to_warn

Если количество подключённых представлений превышает указанное значение, сервер ClickHouse добавит предупреждения в таблицу system.warnings.

Пример

<max_view_num_to_warn>400</max_view_num_to_warn>

max_waiting_queries

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

Примечание

Ожидающие запросы не учитываются при проверке ограничений, задаваемых следующими настройками:

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

Примечание

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

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

memory_worker_correct_memory_tracker

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

memory_worker_period_ms

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

memory_worker_use_cgroup

Использовать данные об использовании памяти текущей cgroup для корректировки учета памяти.

merge_tree

Тонкая настройка таблиц на движке MergeTree.

Для получения дополнительной информации см. заголовочный файл MergeTreeSettings.h.

Пример

<merge_tree>
    <max_suspicious_broken_parts>5</max_suspicious_broken_parts>
</merge_tree>

merge_workload

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

См. также

merges_mutations_memory_usage_soft_limit

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

Примечание

Значение 0 означает отсутствие ограничений.

Пример

<merges_mutations_memory_usage_soft_limit>0</merges_mutations_memory_usage_soft_limit>

merges_mutations_memory_usage_to_ram_ratio

Значение параметра merges_mutations_memory_usage_soft_limit по умолчанию рассчитывается как memory_amount * merges_mutations_memory_usage_to_ram_ratio.

См. также:

metric_log

По умолчанию он отключен.

Включение

Чтобы вручную включить сбор истории метрик system.metric_log, создайте файл /etc/clickhouse-server/config.d/metric_log.xml со следующим содержимым:

<clickhouse>
    <metric_log>
        <database>system</database>
        <table>metric_log</table>
        <flush_interval_milliseconds>7500</flush_interval_milliseconds>
        <collect_interval_milliseconds>1000</collect_interval_milliseconds>
        <max_size_rows>1048576</max_size_rows>
        <reserved_size_rows>8192</reserved_size_rows>
        <buffer_size_rows_flush_threshold>524288</buffer_size_rows_flush_threshold>
        <flush_on_crash>false</flush_on_crash>
    </metric_log>
</clickhouse>

Отключение

Чтобы отключить параметр metric_log, необходимо создать файл /etc/clickhouse-server/config.d/disable_metric_log.xml со следующим содержимым:

<clickhouse>
    <metric_log remove="1" />
</clickhouse>

Следующие параметры можно настроить с помощью подтегов:

SettingDescriptionDefaultNote
databaseИмя базы данных.
tableИмя системной таблицы.
engineОпределение движка MergeTree для системной таблицы.Не может использоваться, если определены partition_by или order_by. Если не указан, по умолчанию выбирается MergeTree
partition_byПользовательский ключ партиционирования для системной таблицы.Если для системной таблицы указан engine, параметр partition_by должен быть указан непосредственно внутри engine
ttlЗадает TTL таблицы.Если для системной таблицы указан engine, параметр ttl должен быть указан непосредственно внутри engine
order_byПользовательский ключ сортировки для системной таблицы. Не может использоваться, если определен engine.Если для системной таблицы указан engine, параметр order_by должен быть указан непосредственно внутри engine
storage_policyИмя политики хранения, используемой для таблицы (необязательно).Если для системной таблицы указан engine, параметр storage_policy должен быть указан непосредственно внутри engine
settingsДополнительные параметры, управляющие поведением MergeTree (необязательно).Если для системной таблицы указан engine, параметр settings должен быть указан непосредственно внутри engine
flush_interval_millisecondsИнтервал сброса данных из буфера в памяти в таблицу.7500
max_size_rowsМаксимальный размер логов в строках. Когда объем несброшенных логов достигает max_size_rows, логи сбрасываются на диск.1048576
reserved_size_rowsПредварительно выделенный размер памяти в строках для логов.8192
buffer_size_rows_flush_thresholdПорог по количеству строк. Если порог достигнут, в фоновом режиме запускается сброс логов на диск.max_size_rows / 2
flush_on_crashОпределяет, должны ли логи сбрасываться на диск в случае сбоя.false

min_os_cpu_wait_time_ratio_to_drop_connection

Минимальное значение отношения между временем ожидания CPU в ОС (метрика OSCPUWaitMicroseconds) и временем его занятости (метрика OSCPUVirtualTimeMicroseconds), при котором рассматривается возможность разрыва соединений. Для вычисления вероятности используется линейная интерполяция между минимальным и максимальным значениями этого отношения, при этом в этой точке вероятность равна 0. Дополнительные сведения см. в разделе Управление поведением при перегрузке CPU сервера.

mlock_executable

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

Примечание

Включение этой опции рекомендуется, но приведёт к увеличению времени запуска на несколько секунд. Имейте в виду, что этот параметр не будет работать без capability "CAP_IPC_LOCK".

Пример

<mlock_executable>false</mlock_executable>

mmap_cache_size

Этот параметр позволяет избежать частых вызовов open/close (которые очень затратны из-за последующих промахов по страницам, page faults) и повторно использовать отображения из нескольких потоков и запросов. Значение параметра — это количество отображённых областей (обычно равно количеству отображённых файлов).

Объём данных в отображённых файлах можно отслеживать в следующих системных таблицах по следующим метрикам:

Примечание

Объём данных в отображённых файлах не расходует память напрямую и не учитывается в потреблении памяти запросом или сервером — поскольку эта память может быть отброшена аналогично кэшу страниц ОС. Кэш сбрасывается (файлы закрываются) автоматически при удалении старых частей в таблицах семейства MergeTree, также он может быть сброшен вручную запросом SYSTEM DROP MMAP CACHE.

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

mutation_workload

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

См. также

mysql_port

Порт для взаимодействия с клиентами по протоколу MySQL.

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

Пример

<mysql_port>9004</mysql_port>

mysql_require_secure_transport

Если имеет значение true, для взаимодействия с клиентами по mysql_port требуется защищённое соединение. Подключения с опцией --ssl-mode=none будут отклоняться. Используйте этот параметр вместе с настройками OpenSSL.

openSSL

Настройки клиента и сервера SSL.

Поддержка SSL обеспечивается библиотекой libpoco. Доступные параметры конфигурации описаны в SSLManager.h. Значения по умолчанию приведены в SSLManager.cpp.

Ключи параметров конфигурации сервера и клиента:

ПараметрОписаниеЗначение по умолчанию
privateKeyFileПуть к файлу с закрытым ключом PEM-сертификата. Файл может одновременно содержать и ключ, и сертификат.
certificateFileПуть к файлу клиентского/серверного сертификата в формате PEM. Можно не указывать, если privateKeyFile содержит сертификат.
caConfigПуть к файлу или каталогу, содержащему доверенные сертификаты центров сертификации (CA). Если путь указывает на файл, он должен быть в формате PEM и может содержать несколько сертификатов CA. Если путь указывает на каталог, в нём должен быть один файл .pem на каждый сертификат CA. Имена файлов определяются по хеш‑значению имени субъекта CA. Подробности см. на man‑странице SSL_CTX_load_verify_locations.
verificationModeМетод проверки сертификатов узла. Подробности см. в описании класса Context. Возможные значения: none, relaxed, strict, once.relaxed
verificationDepthМаксимальная длина цепочки проверки. Проверка завершится с ошибкой, если длина цепочки сертификатов превысит заданное значение.9
loadDefaultCAFileБудут ли использоваться встроенные CA-сертификаты для OpenSSL. ClickHouse предполагает, что встроенные CA-сертификаты находятся в файле /etc/ssl/cert.pem (соответственно, в каталоге /etc/ssl/certs) или в файле (соответственно, каталоге), указанном в переменной окружения SSL_CERT_FILE (соответственно, SSL_CERT_DIR).true
cipherListПоддерживаемые шифры OpenSSL.ALL:!ADH:!LOW:!EXP:!MD5:!3DES:@STRENGTH
cacheSessionsВключает или отключает кэширование сеансов. Необходимо использовать совместно с sessionIdContext. Допустимые значения: true, false.false
sessionIdContextУникальная последовательность случайных символов, которую сервер добавляет к каждому сгенерированному идентификатору. Длина строки не должна превышать SSL_MAX_SSL_SESSION_ID_LENGTH. Указывать этот параметр настоятельно рекомендуется, поскольку он помогает избежать проблем как при кэшировании сеанса на стороне сервера, так и при запросе кэширования со стороны клиента.$\{application.name\}
sessionCacheSizeМаксимальное количество сеансов, которые сервер кэширует. Значение 0 означает неограниченное число сеансов.1024*20
sessionTimeoutВремя хранения сеанса в кэше на сервере (в часах).2
extendedVerificationЕсли параметр включён, убедитесь, что CN или SAN в сертификате совпадает с именем хоста удалённого узла.false
requireTLSv1Требовать соединение по TLSv1. Допустимые значения: true, false.false
requireTLSv1_1Требовать соединение по TLSv1.1. Допустимые значения: true, false.false
requireTLSv1_2Требовать подключение по TLSv1.2. Допустимые значения: true, false.false
fipsВключает режим FIPS в OpenSSL. Поддерживается, если используемая версия библиотеки OpenSSL поддерживает FIPS.false
privateKeyPassphraseHandlerКласс (подкласс PrivateKeyPassphraseHandler), который запрашивает парольную фразу для доступа к закрытому ключу. Например: <privateKeyPassphraseHandler>, <name>KeyFileHandler</name>, <options><password>test</password></options>, </privateKeyPassphraseHandler>.KeyConsoleHandler
invalidCertificateHandlerКласс (подкласс CertificateHandler) для обработки недействительных сертификатов. Например: <invalidCertificateHandler> <name>RejectCertificateHandler</name> </invalidCertificateHandler>.RejectCertificateHandler
disableProtocolsПротоколы, использование которых запрещено.
preferServerCiphersСерверные наборы шифров, предпочитаемые клиентом.false

Пример конфигурации:

<openSSL>
    <server>
        <!-- openssl req -subj "/CN=localhost" -new -newkey rsa:2048 -days 365 -nodes -x509 -keyout /etc/clickhouse-server/server.key -out /etc/clickhouse-server/server.crt -->
        <certificateFile>/etc/clickhouse-server/server.crt</certificateFile>
        <privateKeyFile>/etc/clickhouse-server/server.key</privateKeyFile>
        <!-- openssl dhparam -out /etc/clickhouse-server/dhparam.pem 4096 -->
        <dhParamsFile>/etc/clickhouse-server/dhparam.pem</dhParamsFile>
        <verificationMode>none</verificationMode>
        <loadDefaultCAFile>true</loadDefaultCAFile>
        <cacheSessions>true</cacheSessions>
        <disableProtocols>sslv2,sslv3</disableProtocols>
        <preferServerCiphers>true</preferServerCiphers>
    </server>
    <client>
        <loadDefaultCAFile>true</loadDefaultCAFile>
        <cacheSessions>true</cacheSessions>
        <disableProtocols>sslv2,sslv3</disableProtocols>
        <preferServerCiphers>true</preferServerCiphers>
        <!-- Для самоподписанных сертификатов: <verificationMode>none</verificationMode> -->
        <invalidCertificateHandler>
            <!-- Для самоподписанных сертификатов: <name>AcceptCertificateHandler</name> -->
            <name>RejectCertificateHandler</name>
        </invalidCertificateHandler>
    </client>
</openSSL>

opentelemetry_span_log

Параметры для системной таблицы opentelemetry_span_log.

Следующие параметры можно настроить с помощью подтегов:

SettingDescriptionDefaultNote
databaseИмя базы данных.
tableИмя системной таблицы.
engineОпределение движка MergeTree для системной таблицы.Не может использоваться, если определены partition_by или order_by. Если не указан, по умолчанию выбирается MergeTree
partition_byПользовательский ключ партиционирования для системной таблицы.Если для системной таблицы указан engine, параметр partition_by должен быть указан непосредственно внутри engine
ttlЗадает TTL таблицы.Если для системной таблицы указан engine, параметр ttl должен быть указан непосредственно внутри engine
order_byПользовательский ключ сортировки для системной таблицы. Не может использоваться, если определен engine.Если для системной таблицы указан engine, параметр order_by должен быть указан непосредственно внутри engine
storage_policyИмя политики хранения, используемой для таблицы (необязательно).Если для системной таблицы указан engine, параметр storage_policy должен быть указан непосредственно внутри engine
settingsДополнительные параметры, управляющие поведением MergeTree (необязательно).Если для системной таблицы указан engine, параметр settings должен быть указан непосредственно внутри engine
flush_interval_millisecondsИнтервал сброса данных из буфера в памяти в таблицу.7500
max_size_rowsМаксимальный размер логов в строках. Когда объем несброшенных логов достигает max_size_rows, логи сбрасываются на диск.1048576
reserved_size_rowsПредварительно выделенный размер памяти в строках для логов.8192
buffer_size_rows_flush_thresholdПорог по количеству строк. Если порог достигнут, в фоновом режиме запускается сброс логов на диск.max_size_rows / 2
flush_on_crashОпределяет, должны ли логи сбрасываться на диск в случае сбоя.false

Пример:

<opentelemetry_span_log>
    <engine>
        engine MergeTree
        partition by toYYYYMM(finish_date)
        order by (finish_date, finish_time_us, trace_id)
    </engine>
    <database>system</database>
    <table>opentelemetry_span_log</table>
    <flush_interval_milliseconds>7500</flush_interval_milliseconds>
    <max_size_rows>1048576</max_size_rows>
    <reserved_size_rows>8192</reserved_size_rows>
    <buffer_size_rows_flush_threshold>524288</buffer_size_rows_flush_threshold>
    <flush_on_crash>false</flush_on_crash>
</opentelemetry_span_log>

os_cpu_busy_time_threshold

Порог занятого времени CPU операционной системы в микросекундах (метрика OSCPUVirtualTimeMicroseconds), при превышении которого считается, что CPU выполняет полезную работу; при значении занятого времени ниже этого порога перегрузка CPU не считается.

os_threads_nice_value_distributed_cache_tcp_handler

Значение nice в Linux для потоков обработчика TCP распределённого кэша. Более низкие значения означают более высокий приоритет для CPU.

Требует привилегии CAP_SYS_NICE, в противном случае параметр игнорируется.

Возможные значения: от -20 до 19.

os_threads_nice_value_merge_mutate

Значение nice в Linux для потоков слияний и мутаций. Меньшие значения означают более высокий приоритет на CPU.

Требуется привилегия CAP_SYS_NICE, в противном случае параметр не имеет эффекта.

Возможные значения: от -20 до 19.

os_threads_nice_value_zookeeper_client_send_receive

Значение nice в Linux для потоков отправки и приёма в клиенте ZooKeeper. Более низкие значения означают более высокий приоритет на CPU.

Требуется capability CAP_SYS_NICE, в противном случае параметр не оказывает никакого эффекта.

Возможные значения: от -20 до 19.

page_cache_free_memory_ratio

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

page_cache_history_window_ms

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

page_cache_max_size

Максимальный размер кэша страниц в пользовательском пространстве. Установите значение 0, чтобы отключить кэш. Если значение больше, чем page_cache_min_size, размер кэша будет постоянно подстраиваться в этом диапазоне, чтобы использовать большую часть доступной памяти, одновременно удерживая суммарное потребление памяти ниже ограничения (max_server_memory_usage[_to_ram_ratio]).

page_cache_min_size

Минимальный размер кэша страниц в пользовательском пространстве.

page_cache_policy

Имя политики пользовательского кэша страниц.

page_cache_shards

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

page_cache_size_ratio

Размер защищённой очереди в кэше страниц в пространстве пользователя относительно общего размера кэша.

part_log

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

Запросы записываются в таблицу system.part_log, а не в отдельный файл. Имя этой таблицы можно настроить в параметре table (см. ниже).

Следующие параметры можно настроить с помощью подтегов:

SettingDescriptionDefaultNote
databaseИмя базы данных.
tableИмя системной таблицы.
engineОпределение движка MergeTree для системной таблицы.Не может использоваться, если определены partition_by или order_by. Если не указан, по умолчанию выбирается MergeTree
partition_byПользовательский ключ партиционирования для системной таблицы.Если для системной таблицы указан engine, параметр partition_by должен быть указан непосредственно внутри engine
ttlЗадает TTL таблицы.Если для системной таблицы указан engine, параметр ttl должен быть указан непосредственно внутри engine
order_byПользовательский ключ сортировки для системной таблицы. Не может использоваться, если определен engine.Если для системной таблицы указан engine, параметр order_by должен быть указан непосредственно внутри engine
storage_policyИмя политики хранения, используемой для таблицы (необязательно).Если для системной таблицы указан engine, параметр storage_policy должен быть указан непосредственно внутри engine
settingsДополнительные параметры, управляющие поведением MergeTree (необязательно).Если для системной таблицы указан engine, параметр settings должен быть указан непосредственно внутри engine
flush_interval_millisecondsИнтервал сброса данных из буфера в памяти в таблицу.7500
max_size_rowsМаксимальный размер логов в строках. Когда объем несброшенных логов достигает max_size_rows, логи сбрасываются на диск.1048576
reserved_size_rowsПредварительно выделенный размер памяти в строках для логов.8192
buffer_size_rows_flush_thresholdПорог по количеству строк. Если порог достигнут, в фоновом режиме запускается сброс логов на диск.max_size_rows / 2
flush_on_crashОпределяет, должны ли логи сбрасываться на диск в случае сбоя.false

Пример

<part_log>
    <database>system</database>
    <table>part_log</table>
    <partition_by>toMonday(event_date)</partition_by>
    <flush_interval_milliseconds>7500</flush_interval_milliseconds>
    <max_size_rows>1048576</max_size_rows>
    <reserved_size_rows>8192</reserved_size_rows>
    <buffer_size_rows_flush_threshold>524288</buffer_size_rows_flush_threshold>
    <flush_on_crash>false</flush_on_crash>
</part_log>

parts_kill_delay_period

Период до полного удаления частей для SharedMergeTree. Параметр доступен только в ClickHouse Cloud.

parts_kill_delay_period_random_add

Добавляет равномерно распределённое случайное значение от 0 до x секунд к kill_delay_period, чтобы избежать эффекта thundering herd и последующего DoS ZooKeeper в случае очень большого числа таблиц. Доступно только в ClickHouse Cloud.

parts_killer_pool_size

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

path

Путь к каталогу, содержащему данные.

Примечание

Обязателен завершающий слэш.

Пример

<path>/var/lib/clickhouse/</path>

postgresql_port

Порт для взаимодействия с клиентами по протоколу PostgreSQL.

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

Пример

<postgresql_port>9005</postgresql_port>

postgresql_require_secure_transport

Если установлено значение true, при работе с клиентами по postgresql_port требуется защищённое соединение. Подключения с параметром sslmode=disable будут отклонены. Используйте этот параметр совместно с настройками OpenSSL.

prefetch_threadpool_pool_size

Размер фонового пула для операций предварительной выборки данных из удалённых объектных хранилищ

prefetch_threadpool_queue_size

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

prefixes_deserialization_thread_pool_thread_pool_queue_size

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

Примечание

Значение 0 означает отсутствие ограничения.

prepare_system_log_tables_on_startup

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

primary_index_cache_policy

Имя политики кэширования первичного индекса.

primary_index_cache_prewarm_ratio

Доля общего размера кэша меток, заполняемая во время предварительного прогрева.

primary_index_cache_size

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

primary_index_cache_size_ratio

Размер защищённой очереди (в случае использования политики SLRU) в кэше первичного индекса относительно общего размера кэша.

process_query_plan_packet

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

Пример

<process_query_plan_packet>true</process_query_plan_packet>

processors_profile_log

Настройки системной таблицы processors_profile_log.

Следующие параметры можно настроить с помощью подтегов:

SettingDescriptionDefaultNote
databaseИмя базы данных.
tableИмя системной таблицы.
engineОпределение движка MergeTree для системной таблицы.Не может использоваться, если определены partition_by или order_by. Если не указан, по умолчанию выбирается MergeTree
partition_byПользовательский ключ партиционирования для системной таблицы.Если для системной таблицы указан engine, параметр partition_by должен быть указан непосредственно внутри engine
ttlЗадает TTL таблицы.Если для системной таблицы указан engine, параметр ttl должен быть указан непосредственно внутри engine
order_byПользовательский ключ сортировки для системной таблицы. Не может использоваться, если определен engine.Если для системной таблицы указан engine, параметр order_by должен быть указан непосредственно внутри engine
storage_policyИмя политики хранения, используемой для таблицы (необязательно).Если для системной таблицы указан engine, параметр storage_policy должен быть указан непосредственно внутри engine
settingsДополнительные параметры, управляющие поведением MergeTree (необязательно).Если для системной таблицы указан engine, параметр settings должен быть указан непосредственно внутри engine
flush_interval_millisecondsИнтервал сброса данных из буфера в памяти в таблицу.7500
max_size_rowsМаксимальный размер логов в строках. Когда объем несброшенных логов достигает max_size_rows, логи сбрасываются на диск.1048576
reserved_size_rowsПредварительно выделенный размер памяти в строках для логов.8192
buffer_size_rows_flush_thresholdПорог по количеству строк. Если порог достигнут, в фоновом режиме запускается сброс логов на диск.max_size_rows / 2
flush_on_crashОпределяет, должны ли логи сбрасываться на диск в случае сбоя.false

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

<processors_profile_log>
    <database>system</database>
    <table>processors_profile_log</table>
    <partition_by>toYYYYMM(event_date)</partition_by>
    <flush_interval_milliseconds>7500</flush_interval_milliseconds>
    <max_size_rows>1048576</max_size_rows>
    <reserved_size_rows>8192</reserved_size_rows>
    <buffer_size_rows_flush_threshold>524288</buffer_size_rows_flush_threshold>
    <flush_on_crash>false</flush_on_crash>
</processors_profile_log>

prometheus

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

Настройки:

  • endpoint – HTTP-эндпоинт для сбора метрик сервером Prometheus. Должен начинаться с '/'.
  • port – Порт для endpoint.
  • metrics – Экспортировать метрики из таблицы system.metrics.
  • events – Экспортировать метрики из таблицы system.events.
  • asynchronous_metrics – Экспортировать текущие значения метрик из таблицы system.asynchronous_metrics.
  • errors - Экспортировать число ошибок по кодам, произошедших с момента последнего перезапуска сервера. Эти данные также можно получить из таблицы system.errors.

Пример

<clickhouse>
    <listen_host>0.0.0.0</listen_host>
    <http_port>8123</http_port>
    <tcp_port>9000</tcp_port>
    <!-- highlight-start -->
    <prometheus>
        <endpoint>/metrics</endpoint>
        <port>9363</port>
        <metrics>true</metrics>
        <events>true</events>
        <asynchronous_metrics>true</asynchronous_metrics>
        <errors>true</errors>
    </prometheus>
    <!-- highlight-end -->
</clickhouse>

Проверьте (замените 127.0.0.1 на IP-адрес или имя хоста вашего сервера ClickHouse):

curl 127.0.0.1:9363/metrics

proxy

Задайте прокси-серверы для HTTP- и HTTPS-запросов, которые в настоящее время поддерживаются хранилищем S3, табличными функциями S3 и функциями URL.

Существует три способа задать прокси-серверы:

  • переменные окружения
  • списки прокси
  • удалённые резолверы прокси.

Обход прокси-серверов для отдельных хостов также поддерживается с использованием no_proxy.

Переменные окружения

Переменные окружения http_proxy и https_proxy позволяют указать прокси-сервер для заданного протокола. Если они настроены в вашей системе, всё должно работать без дополнительной настройки.

Это самый простой подход, если для данного протокола используется только один прокси-сервер и этот прокси-сервер не меняется.

Списки прокси

Этот подход позволяет указать один или несколько прокси-серверов для протокола. Если определено более одного прокси-сервера, ClickHouse использует разные прокси по кругу (round-robin), распределяя нагрузку между серверами. Это самый простой подход, если для протокола используется несколько прокси-серверов и список прокси-серверов не меняется.

Шаблон конфигурации

<proxy>
    <http>
        <uri>http://proxy1</uri>
        <uri>http://proxy2:3128</uri>
    </http>
    <https>
        <uri>http://proxy1:3128</uri>
    </https>
</proxy>

Выберите родительское поле на вкладках ниже, чтобы просмотреть его дочерние элементы:

ПолеОписание
<http>Список одного или нескольких HTTP-прокси
<https>Список одного или нескольких HTTPS-прокси

Удалённые резолверы прокси

Прокси-серверы могут динамически меняться. В этом случае можно задать endpoint резолвера. ClickHouse отправляет пустой GET-запрос на этот endpoint, удалённый резолвер должен вернуть хост прокси. ClickHouse использует его для формирования URI прокси по следующему шаблону: \{proxy_scheme\}://\{proxy_host\}:{proxy_port}

Шаблон конфигурации

<proxy>
    <http>
        <resolver>
            <endpoint>http://resolver:8080/hostname</endpoint>
            <proxy_scheme>http</proxy_scheme>
            <proxy_port>80</proxy_port>
            <proxy_cache_time>10</proxy_cache_time>
        </resolver>
    </http>

    <https>
        <resolver>
            <endpoint>http://resolver:8080/hostname</endpoint>
            <proxy_scheme>http</proxy_scheme>
            <proxy_port>3128</proxy_port>
            <proxy_cache_time>10</proxy_cache_time>
        </resolver>
    </https>

</proxy>

Выберите родительское поле на вкладках ниже, чтобы просмотреть его дочерние поля:

FieldDescription
<http>Список из одного или нескольких резолверов*
<https>Список из одного или нескольких резолверов*

Приоритет

Параметры прокси определяются в следующем порядке:

OrderSetting
1.Удалённые прокси-резолверы
2.Списки прокси
3.Переменные окружения

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

query_cache

Конфигурация кэша запросов.

Доступны следующие настройки:

SettingDescriptionDefault Value
max_size_in_bytesМаксимальный размер кэша в байтах. Значение 0 означает, что кэш запросов отключён.1073741824
max_entriesМаксимальное количество результатов запросов SELECT, сохраняемых в кэше.1024
max_entry_size_in_bytesМаксимальный размер в байтах, который могут иметь результаты запросов SELECT, чтобы быть сохранёнными в кэше.1048576
max_entry_size_in_rowsМаксимальное количество строк в результатах запросов SELECT, которые могут быть сохранены в кэше.30000000
Примечание
  • Изменённые настройки вступают в силу немедленно.
  • Данные для кэша запросов выделяются в DRAM. Если память ограничена, задайте небольшое значение max_size_in_bytes или полностью отключите кэш запросов.

Пример

<query_cache>
    <max_size_in_bytes>1073741824</max_size_in_bytes>
    <max_entries>1024</max_entries>
    <max_entry_size_in_bytes>1048576</max_entry_size_in_bytes>
    <max_entry_size_in_rows>30000000</max_entry_size_in_rows>
</query_cache>

query_condition_cache_policy

Имя политики кеширования условий запроса.

query_condition_cache_size

Максимальный размер кэша условий запроса.

Примечание

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

query_condition_cache_size_ratio

Размер защищенной очереди (при использовании политики SLRU) в кэше условий запроса по отношению к общему размеру кэша.

query_log

Настройка для ведения журнала запросов при установленной настройке log_queries=1.

Запросы записываются в таблицу system.query_log, а не в отдельный файл. Вы можете изменить имя таблицы в параметре table (см. ниже).

Следующие параметры можно настроить с помощью подтегов:

SettingDescriptionDefaultNote
databaseИмя базы данных.
tableИмя системной таблицы.
engineОпределение движка MergeTree для системной таблицы.Не может использоваться, если определены partition_by или order_by. Если не указан, по умолчанию выбирается MergeTree
partition_byПользовательский ключ партиционирования для системной таблицы.Если для системной таблицы указан engine, параметр partition_by должен быть указан непосредственно внутри engine
ttlЗадает TTL таблицы.Если для системной таблицы указан engine, параметр ttl должен быть указан непосредственно внутри engine
order_byПользовательский ключ сортировки для системной таблицы. Не может использоваться, если определен engine.Если для системной таблицы указан engine, параметр order_by должен быть указан непосредственно внутри engine
storage_policyИмя политики хранения, используемой для таблицы (необязательно).Если для системной таблицы указан engine, параметр storage_policy должен быть указан непосредственно внутри engine
settingsДополнительные параметры, управляющие поведением MergeTree (необязательно).Если для системной таблицы указан engine, параметр settings должен быть указан непосредственно внутри engine
flush_interval_millisecondsИнтервал сброса данных из буфера в памяти в таблицу.7500
max_size_rowsМаксимальный размер логов в строках. Когда объем несброшенных логов достигает max_size_rows, логи сбрасываются на диск.1048576
reserved_size_rowsПредварительно выделенный размер памяти в строках для логов.8192
buffer_size_rows_flush_thresholdПорог по количеству строк. Если порог достигнут, в фоновом режиме запускается сброс логов на диск.max_size_rows / 2
flush_on_crashОпределяет, должны ли логи сбрасываться на диск в случае сбоя.false

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

Пример

<query_log>
    <database>system</database>
    <table>query_log</table>
    <engine>Engine = MergeTree PARTITION BY event_date ORDER BY event_time TTL event_date + INTERVAL 30 day</engine>
    <flush_interval_milliseconds>7500</flush_interval_milliseconds>
    <max_size_rows>1048576</max_size_rows>
    <reserved_size_rows>8192</reserved_size_rows>
    <buffer_size_rows_flush_threshold>524288</buffer_size_rows_flush_threshold>
    <flush_on_crash>false</flush_on_crash>
</query_log>

query_masking_rules

Правила на основе регулярных выражений, которые будут применяться к запросам, а также ко всем записям журналов перед их сохранением в журналы сервера, таблицы system.query_log, system.text_log, system.processes, а также в журналы, отправляемые клиенту. Это позволяет предотвратить утечку конфиденциальных данных из SQL‑запросов, таких как имена, адреса электронной почты, персональные идентификаторы или номера кредитных карт, в журналы.

Пример

<query_masking_rules>
    <rule>
        <name>скрыть номер SSN</name>
        <regexp>(^|\D)\d{3}-\d{2}-\d{4}($|\D)</regexp>
        <replace>000-00-0000</replace>
    </rule>
</query_masking_rules>

Поля конфигурации:

SettingDescription
nameимя правила (необязательно)
regexpрегулярное выражение, совместимое с RE2 (обязательно)
replaceстрока подстановки для маскирования конфиденциальных данных (необязательно, по умолчанию — шесть звёздочек)

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

В таблице system.events есть счётчик QueryMaskingRulesMatch, который содержит общее количество срабатываний правил маскирования запросов.

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

query_metric_log

По умолчанию он отключен.

Включение

Чтобы вручную включить сбор истории метрик system.query_metric_log, создайте файл /etc/clickhouse-server/config.d/query_metric_log.xml со следующим содержимым:

<clickhouse>
    <query_metric_log>
        <database>system</database>
        <table>query_metric_log</table>
        <flush_interval_milliseconds>7500</flush_interval_milliseconds>
        <collect_interval_milliseconds>1000</collect_interval_milliseconds>
        <max_size_rows>1048576</max_size_rows>
        <reserved_size_rows>8192</reserved_size_rows>
        <buffer_size_rows_flush_threshold>524288</buffer_size_rows_flush_threshold>
        <flush_on_crash>false</flush_on_crash>
    </query_metric_log>
</clickhouse>

Отключение

Чтобы отключить параметр query_metric_log, необходимо создать файл /etc/clickhouse-server/config.d/disable_query_metric_log.xml со следующим содержимым:

<clickhouse>
    <query_metric_log remove="1" />
</clickhouse>

Следующие параметры можно настроить с помощью подтегов:

SettingDescriptionDefaultNote
databaseИмя базы данных.
tableИмя системной таблицы.
engineОпределение движка MergeTree для системной таблицы.Не может использоваться, если определены partition_by или order_by. Если не указан, по умолчанию выбирается MergeTree
partition_byПользовательский ключ партиционирования для системной таблицы.Если для системной таблицы указан engine, параметр partition_by должен быть указан непосредственно внутри engine
ttlЗадает TTL таблицы.Если для системной таблицы указан engine, параметр ttl должен быть указан непосредственно внутри engine
order_byПользовательский ключ сортировки для системной таблицы. Не может использоваться, если определен engine.Если для системной таблицы указан engine, параметр order_by должен быть указан непосредственно внутри engine
storage_policyИмя политики хранения, используемой для таблицы (необязательно).Если для системной таблицы указан engine, параметр storage_policy должен быть указан непосредственно внутри engine
settingsДополнительные параметры, управляющие поведением MergeTree (необязательно).Если для системной таблицы указан engine, параметр settings должен быть указан непосредственно внутри engine
flush_interval_millisecondsИнтервал сброса данных из буфера в памяти в таблицу.7500
max_size_rowsМаксимальный размер логов в строках. Когда объем несброшенных логов достигает max_size_rows, логи сбрасываются на диск.1048576
reserved_size_rowsПредварительно выделенный размер памяти в строках для логов.8192
buffer_size_rows_flush_thresholdПорог по количеству строк. Если порог достигнут, в фоновом режиме запускается сброс логов на диск.max_size_rows / 2
flush_on_crashОпределяет, должны ли логи сбрасываться на диск в случае сбоя.false

query_thread_log

Настройка для логирования потоков запросов, включаемая параметром log_query_threads=1.

Запросы логируются в таблицу system.query_thread_log, а не в отдельный файл. Вы можете изменить имя таблицы с помощью параметра table (см. ниже).

Следующие параметры можно настроить с помощью подтегов:

SettingDescriptionDefaultNote
databaseИмя базы данных.
tableИмя системной таблицы.
engineОпределение движка MergeTree для системной таблицы.Не может использоваться, если определены partition_by или order_by. Если не указан, по умолчанию выбирается MergeTree
partition_byПользовательский ключ партиционирования для системной таблицы.Если для системной таблицы указан engine, параметр partition_by должен быть указан непосредственно внутри engine
ttlЗадает TTL таблицы.Если для системной таблицы указан engine, параметр ttl должен быть указан непосредственно внутри engine
order_byПользовательский ключ сортировки для системной таблицы. Не может использоваться, если определен engine.Если для системной таблицы указан engine, параметр order_by должен быть указан непосредственно внутри engine
storage_policyИмя политики хранения, используемой для таблицы (необязательно).Если для системной таблицы указан engine, параметр storage_policy должен быть указан непосредственно внутри engine
settingsДополнительные параметры, управляющие поведением MergeTree (необязательно).Если для системной таблицы указан engine, параметр settings должен быть указан непосредственно внутри engine
flush_interval_millisecondsИнтервал сброса данных из буфера в памяти в таблицу.7500
max_size_rowsМаксимальный размер логов в строках. Когда объем несброшенных логов достигает max_size_rows, логи сбрасываются на диск.1048576
reserved_size_rowsПредварительно выделенный размер памяти в строках для логов.8192
buffer_size_rows_flush_thresholdПорог по количеству строк. Если порог достигнут, в фоновом режиме запускается сброс логов на диск.max_size_rows / 2
flush_on_crashОпределяет, должны ли логи сбрасываться на диск в случае сбоя.false

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

Пример

<query_thread_log>
    <database>system</database>
    <table>query_thread_log</table>
    <partition_by>toMonday(event_date)</partition_by>
    <flush_interval_milliseconds>7500</flush_interval_milliseconds>
    <max_size_rows>1048576</max_size_rows>
    <reserved_size_rows>8192</reserved_size_rows>
    <buffer_size_rows_flush_threshold>524288</buffer_size_rows_flush_threshold>
    <flush_on_crash>false</flush_on_crash>
</query_thread_log>

query_views_log

Настройка логирования представлений (live, materialized и т. п.) в зависимости от запросов, при условии, что включена настройка log_query_views=1.

Запросы логируются в таблицу system.query_views_log, а не в отдельный файл. Вы можете изменить имя таблицы в параметре table (см. ниже).

Следующие параметры можно настроить с помощью подтегов:

SettingDescriptionDefaultNote
databaseИмя базы данных.
tableИмя системной таблицы.
engineОпределение движка MergeTree для системной таблицы.Не может использоваться, если определены partition_by или order_by. Если не указан, по умолчанию выбирается MergeTree
partition_byПользовательский ключ партиционирования для системной таблицы.Если для системной таблицы указан engine, параметр partition_by должен быть указан непосредственно внутри engine
ttlЗадает TTL таблицы.Если для системной таблицы указан engine, параметр ttl должен быть указан непосредственно внутри engine
order_byПользовательский ключ сортировки для системной таблицы. Не может использоваться, если определен engine.Если для системной таблицы указан engine, параметр order_by должен быть указан непосредственно внутри engine
storage_policyИмя политики хранения, используемой для таблицы (необязательно).Если для системной таблицы указан engine, параметр storage_policy должен быть указан непосредственно внутри engine
settingsДополнительные параметры, управляющие поведением MergeTree (необязательно).Если для системной таблицы указан engine, параметр settings должен быть указан непосредственно внутри engine
flush_interval_millisecondsИнтервал сброса данных из буфера в памяти в таблицу.7500
max_size_rowsМаксимальный размер логов в строках. Когда объем несброшенных логов достигает max_size_rows, логи сбрасываются на диск.1048576
reserved_size_rowsПредварительно выделенный размер памяти в строках для логов.8192
buffer_size_rows_flush_thresholdПорог по количеству строк. Если порог достигнут, в фоновом режиме запускается сброс логов на диск.max_size_rows / 2
flush_on_crashОпределяет, должны ли логи сбрасываться на диск в случае сбоя.false

Если таблица не существует, ClickHouse создаст её. Если структура лога представлений запросов изменилась при обновлении сервера ClickHouse, таблица со старой структурой будет переименована, и новая таблица будет создана автоматически.

Пример

<query_views_log>
    <database>system</database>
    <table>query_views_log</table>
    <partition_by>toYYYYMM(event_date)</partition_by>
    <flush_interval_milliseconds>7500</flush_interval_milliseconds>
    <max_size_rows>1048576</max_size_rows>
    <reserved_size_rows>8192</reserved_size_rows>
    <buffer_size_rows_flush_threshold>524288</buffer_size_rows_flush_threshold>
    <flush_on_crash>false</flush_on_crash>
</query_views_log>

remap_executable

Параметр для перераспределения памяти под машинный код ("text") с использованием больших страниц памяти.

Примечание

Эта возможность является крайне экспериментальной.

Пример:

<remap_executable>false</remap_executable>

remote_servers

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

Пример

<remote_servers incl="clickhouse_remote_servers" />

Информацию о значении атрибута incl см. в разделе «Файлы конфигурации».

См. также

remote_url_allow_hosts

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

При добавлении хоста с xml-тегом \<host\>:

  • он должен быть указан в точности как в URL, так как имя проверяется до DNS‑резолвинга. Например: <host>clickhouse.com</host>
  • если порт явно указан в URL, то пара host:port проверяется целиком. Например: <host>clickhouse.com:80</host>
  • если хост указан без порта, то разрешён любой порт этого хоста. Например: если указан <host>clickhouse.com</host>, тогда clickhouse.com:20 (FTP), clickhouse.com:80 (HTTP), clickhouse.com:443 (HTTPS) и т. д. разрешены.
  • если хост указан как IP‑адрес, то он проверяется так же, как указан в URL. Например: [2a02:6b8:a::a].
  • если есть редиректы и поддержка редиректов включена, то каждый редирект (поле Location) проверяется.

Например:

<remote_url_allow_hosts>
    <host>clickhouse.com</host>
</remote_url_allow_hosts>

replica_group_name

Имя группы реплик для базы данных Replicated.

Кластер, созданный базой данных Replicated, будет состоять из реплик одной группы. DDL-запросы будут ожидать только реплики из той же группы.

По умолчанию — пустое значение.

Пример

<replica_group_name>backups</replica_group_name>

replicated_fetches_http_connection_timeout

Таймаут HTTP-подключения для запросов на выборку частей. Наследуется из профиля по умолчанию http_connection_timeout, если не задан явно.

replicated_fetches_http_receive_timeout

Таймаут ожидания HTTP-ответа для запросов на получение частей. Наследуется из профиля по умолчанию http_receive_timeout, если не задан явно.

replicated_fetches_http_send_timeout

Тайм-аут отправки HTTP при запросах на получение частей. Наследуется из профиля по умолчанию http_send_timeout, если не указан явно.

replicated_merge_tree

Тонкая настройка для таблиц в ReplicatedMergeTree. Этот параметр имеет более высокий приоритет.

Для получения дополнительной информации см. заголовочный файл MergeTreeSettings.h.

Пример

<replicated_merge_tree>
    <max_suspicious_broken_parts>5</max_suspicious_broken_parts>
</replicated_merge_tree>

restore_threads

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

s3_credentials_provider_max_cache_size

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

s3_max_redirects

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

s3_retry_attempts

Настройка для Aws::Client::RetryStrategy, Aws::Client выполняет повторы запросов самостоятельно, 0 означает отсутствие повторов

s3queue_disable_streaming

Отключает стриминг в S3Queue, даже если таблица создана и к ней подключены материализованные представления

s3queue_log

Настройки системной таблицы s3queue_log.

Следующие параметры можно настроить с помощью подтегов:

SettingDescriptionDefaultNote
databaseИмя базы данных.
tableИмя системной таблицы.
engineОпределение движка MergeTree для системной таблицы.Не может использоваться, если определены partition_by или order_by. Если не указан, по умолчанию выбирается MergeTree
partition_byПользовательский ключ партиционирования для системной таблицы.Если для системной таблицы указан engine, параметр partition_by должен быть указан непосредственно внутри engine
ttlЗадает TTL таблицы.Если для системной таблицы указан engine, параметр ttl должен быть указан непосредственно внутри engine
order_byПользовательский ключ сортировки для системной таблицы. Не может использоваться, если определен engine.Если для системной таблицы указан engine, параметр order_by должен быть указан непосредственно внутри engine
storage_policyИмя политики хранения, используемой для таблицы (необязательно).Если для системной таблицы указан engine, параметр storage_policy должен быть указан непосредственно внутри engine
settingsДополнительные параметры, управляющие поведением MergeTree (необязательно).Если для системной таблицы указан engine, параметр settings должен быть указан непосредственно внутри engine
flush_interval_millisecondsИнтервал сброса данных из буфера в памяти в таблицу.7500
max_size_rowsМаксимальный размер логов в строках. Когда объем несброшенных логов достигает max_size_rows, логи сбрасываются на диск.1048576
reserved_size_rowsПредварительно выделенный размер памяти в строках для логов.8192
buffer_size_rows_flush_thresholdПорог по количеству строк. Если порог достигнут, в фоновом режиме запускается сброс логов на диск.max_size_rows / 2
flush_on_crashОпределяет, должны ли логи сбрасываться на диск в случае сбоя.false

Настройки по умолчанию:

<s3queue_log>
    <database>system</database>
    <table>s3queue_log</table>
    <partition_by>toYYYYMM(event_date)</partition_by>
    <flush_interval_milliseconds>7500</flush_interval_milliseconds>
</s3queue_log>

send_crash_reports

Настройки отправки отчётов о сбоях команде разработчиков ядра ClickHouse.

Включение этой функции, особенно в предпроизводственных средах, крайне приветствуется.

Ключи:

KeyDescription
enabledЛогический флаг для включения функции, по умолчанию — true. Установите false, чтобы не отправлять отчёты о сбоях.
send_logical_errorsLOGICAL_ERROR подобна assert: это ошибка (bug) в ClickHouse. Этот логический флаг включает отправку таких исключений (по умолчанию: true).
endpointМожно переопределить URL конечной точки для отправки отчётов о сбоях.

Рекомендуемое использование

<send_crash_reports>
    <enabled>true</enabled>
</send_crash_reports>

series_keeper_path

Путь в Keeper, под которым с помощью функции generateSerialID создаются узлы с автоинкрементными номерами. Каждая серия будет отдельным узлом по этому пути.

show_addresses_in_stack_traces

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

shutdown_wait_backups_and_restores

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

shutdown_wait_unfinished

Время ожидания незавершённых запросов в секундах

shutdown_wait_unfinished_queries

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

skip_binary_checksum_checks

Пропускает проверки целостности бинарного файла ClickHouse по контрольной сумме

ssh_server

Публичная часть ключа хоста будет записана в файл known_hosts на стороне SSH-клиента при первом подключении.

Параметры ключей хоста по умолчанию отключены. Раскомментируйте параметры ключей хоста и укажите путь к соответствующему ssh-ключу, чтобы включить их:

Пример:

<ssh_server>
    <host_rsa_key>path_to_the_ssh_key</host_rsa_key>
    <host_ecdsa_key>path_to_the_ssh_key</host_ecdsa_key>
    <host_ed25519_key>path_to_the_ssh_key</host_ed25519_key>
</ssh_server>

startup_mv_delay_ms

Отладочный параметр для эмуляции задержки при создании материализованного представления

storage_configuration

Позволяет задать многодисковую конфигурацию хранилища.

Конфигурация хранилища имеет следующую структуру:

<storage_configuration>
    <disks>
        <!-- конфигурация -->
    </disks>
    <policies>
        <!-- конфигурация -->
    </policies>
</storage_configuration>

Конфигурация дисков

Конфигурация параметра disks имеет следующую структуру:

<storage_configuration>
    <disks>
        <disk_name_1>
            <path>/mnt/fast_ssd/clickhouse/</path>
        </disk_name_1>
        <disk_name_2>
            <path>/mnt/hdd1/clickhouse/</path>
            <keep_free_space_bytes>10485760</keep_free_space_bytes>
        </disk_name_2>
        <disk_name_3>
            <path>/mnt/hdd2/clickhouse/</path>
            <keep_free_space_bytes>10485760</keep_free_space_bytes>
        </disk_name_3>
        ...
    </disks>
</storage_configuration>

Подтеги, приведённые выше, определяют следующие настройки для disks:

ПараметрОписание
<disk_name_N>Имя диска, которое должно быть уникальным.
pathПуть, по которому будут храниться данные сервера (каталоги data и shadow). Должен заканчиваться символом /
keep_free_space_bytesРазмер зарезервированного свободного места на диске.
Примечание

Порядок дисков не имеет значения.

Конфигурация политик

Подтеги выше задают следующие настройки для policies:

SettingDescription
policy_name_NИмя политики. Имена политик должны быть уникальными.
volume_name_NИмя тома. Имена томов должны быть уникальными.
diskДиск, находящийся внутри тома.
max_data_part_size_bytesМаксимальный размер части данных, которая может размещаться на любом из дисков в этом томе. Если в результате слияния ожидается, что размер части будет больше max_data_part_size_bytes, она будет записана в следующий том. По сути, эта возможность позволяет хранить новые / небольшие части данных на «горячем» томе (SSD) и перемещать их на «холодный» том (HDD), когда они достигают большого размера. Не используйте эту опцию, если в политике только один том.
move_factorДоля доступного свободного пространства на томе. Если свободного места становится меньше, данные начинают переноситься на следующий том, если он есть. Для переноса части данных сортируются по размеру от большего к меньшему (по убыванию), и выбираются части, суммарный размер которых достаточен для выполнения условия move_factor; если суммарный размер всех частей недостаточен, будут перенесены все части.
perform_ttl_move_on_insertОтключает перемещение данных с истекшим TTL при вставке. По умолчанию (если включено), если мы вставляем данные, срок жизни которых уже истёк в соответствии с правилом перемещения по времени жизни, они немедленно перемещаются в том / на диск, указанный в правиле перемещения. Это может существенно замедлить вставку, если целевой том / диск медленный (например, S3). Если опция отключена, просроченная часть данных записывается в том по умолчанию, а затем сразу перемещается в том, указанный в правиле для истекшего TTL.
load_balancingПолитика балансировки по дискам: round_robin или least_used.
least_used_ttl_msУстанавливает тайм-аут (в миллисекундах) для обновления доступного пространства на всех дисках (0 — всегда обновлять, -1 — никогда не обновлять, значение по умолчанию — 60000). Обратите внимание: если диск используется только ClickHouse и не будет подлежать динамическому изменению размера файловой системы «на лету», можно использовать значение -1. Во всех остальных случаях это не рекомендуется, так как в итоге приведёт к некорректному распределению пространства.
prefer_not_to_mergeОтключает слияние частей данных на этом томе. Примечание: это потенциально вредно и может приводить к замедлению работы. Когда этот параметр включён (не делайте так), слияние данных на этом томе запрещено (что плохо). Это позволяет контролировать то, как ClickHouse взаимодействует с медленными дисками. Мы рекомендуем вообще не использовать этот параметр.
volume_priorityОпределяет приоритет (порядок), в котором заполняются тома. Чем меньше значение, тем выше приоритет. Значения параметра должны быть натуральными числами и непрерывно покрывать диапазон от 1 до N (где N — наибольшее указанное значение параметра) без пропусков.

Для volume_priority:

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

storage_connections_soft_limit

Подключения сверх этого лимита имеют значительно меньшее время жизни. Лимит применяется к подключениям к хранилищам.

storage_connections_store_limit

Соединения, превышающие этот лимит, сбрасываются после использования. Установите значение 0, чтобы отключить кэширование соединений. Лимит применяется к соединениям хранилищ.

storage_connections_warn_limit

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

storage_metadata_write_full_object_key

Записывать файлы метаданных диска в формате VERSION_FULL_OBJECT_KEY. Включено по умолчанию. Этот параметр устарел.

storage_shared_set_join_use_inner_uuid

Если параметр включён, при создании SharedSet и SharedJoin генерируется внутренний UUID. Только в ClickHouse Cloud.

table_engines_require_grant

Если установлено в значение true, пользователям требуется привилегия для создания таблицы с определённым движком, например: GRANT TABLE ENGINE ON TinyLog to user.

Примечание

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

tables_loader_background_pool_size

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

Примечание

Значение 0 означает, что будут использованы все доступные CPU.

tables_loader_foreground_pool_size

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

Примечание

Значение 0 означает, что будут использованы все доступные CPU.

tcp_close_connection_after_queries_num

Максимальное количество запросов, разрешённых для одного TCP‑соединения, после чего оно закрывается. Установите значение 0 для неограниченного числа запросов.

tcp_close_connection_after_queries_seconds

Максимальное время жизни TCP-соединения в секундах до его закрытия. Установите 0 для неограниченного времени жизни соединения.

tcp_port

Порт для взаимодействия с клиентами по протоколу TCP.

Пример

<tcp_port>9000</tcp_port>

tcp_port_secure

TCP-порт для защищённого соединения с клиентами. Используйте его совместно с настройками OpenSSL.

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

<tcp_port_secure>9440</tcp_port_secure>

tcp_ssh_port

Порт SSH-сервера, который позволяет пользователю подключаться и выполнять запросы в интерактивном режиме, используя встроенный клиент через PTY.

Пример:

<tcp_ssh_port>9022</tcp_ssh_port>

temporary_data_in_cache

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

Примечание

Для настройки хранения временных данных может использоваться только один параметр конфигурации: tmp_path, tmp_policy или temporary_data_in_cache.

Пример

И кэш для local_disk, и временные данные будут храниться в /tiny_local_cache в файловой системе, управляемой tiny_local_cache.

<clickhouse>
<storage_configuration>
<disks>
<local_disk>
<type>local</type>
<path>/local_disk/</path>
</local_disk>

<!-- highlight-start -->
<tiny_local_cache>
<type>cache</type>
<disk>local_disk</disk>
<path>/tiny_local_cache/</path>
<max_size_rows>10M</max_size_rows>
<max_file_segment_size>1M</max_file_segment_size>
<cache_on_write_operations>1</cache_on_write_operations>
</tiny_local_cache>
<!-- highlight-end -->
</disks>
</storage_configuration>

<!-- highlight-start -->
<temporary_data_in_cache>tiny_local_cache</temporary_data_in_cache>
<!-- highlight-end -->
</clickhouse>

temporary_data_in_distributed_cache

Хранить временные данные в распределённом кэше.

text_index_dictionary_block_cache_max_entries

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

text_index_dictionary_block_cache_policy

Название политики кэширования блоков словаря текстового индекса.

text_index_dictionary_block_cache_size

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

Примечание

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

text_index_dictionary_block_cache_size_ratio

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

text_index_header_cache_max_entries

Размер кэша заголовков текстового индекса (в записях). Значение 0 отключает кэш.

text_index_header_cache_policy

Имя политики кэширования заголовков текстового индекса.

text_index_header_cache_size

Размер кэша заголовков текстового индекса. Ноль означает, что кэш отключён.

Примечание

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

text_index_header_cache_size_ratio

Размер защищенной очереди (в случае политики SLRU) в кэше заголовков текстового индекса относительно общего размера этого кэша.

text_index_postings_cache_max_entries

Размер кэша списка вхождений текстового индекса (в элементах). Ноль означает отключение.

text_index_postings_cache_policy

Название политики кэша списков вхождений текстового индекса.

text_index_postings_cache_size

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

Примечание

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

text_index_postings_cache_size_ratio

Размер защищённой очереди (в случае политики SLRU) в кэше списков вхождений текстового индекса относительно общего размера этого кэша.

text_log

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

Следующие параметры можно настроить с помощью подтегов:

SettingDescriptionDefaultNote
databaseИмя базы данных.
tableИмя системной таблицы.
engineОпределение движка MergeTree для системной таблицы.Не может использоваться, если определены partition_by или order_by. Если не указан, по умолчанию выбирается MergeTree
partition_byПользовательский ключ партиционирования для системной таблицы.Если для системной таблицы указан engine, параметр partition_by должен быть указан непосредственно внутри engine
ttlЗадает TTL таблицы.Если для системной таблицы указан engine, параметр ttl должен быть указан непосредственно внутри engine
order_byПользовательский ключ сортировки для системной таблицы. Не может использоваться, если определен engine.Если для системной таблицы указан engine, параметр order_by должен быть указан непосредственно внутри engine
storage_policyИмя политики хранения, используемой для таблицы (необязательно).Если для системной таблицы указан engine, параметр storage_policy должен быть указан непосредственно внутри engine
settingsДополнительные параметры, управляющие поведением MergeTree (необязательно).Если для системной таблицы указан engine, параметр settings должен быть указан непосредственно внутри engine
flush_interval_millisecondsИнтервал сброса данных из буфера в памяти в таблицу.7500
max_size_rowsМаксимальный размер логов в строках. Когда объем несброшенных логов достигает max_size_rows, логи сбрасываются на диск.1048576
reserved_size_rowsПредварительно выделенный размер памяти в строках для логов.8192
buffer_size_rows_flush_thresholdПорог по количеству строк. Если порог достигнут, в фоновом режиме запускается сброс логов на диск.max_size_rows / 2
flush_on_crashОпределяет, должны ли логи сбрасываться на диск в случае сбоя.false

Дополнительно:

НастройкаОписаниеЗначение по умолчанию
levelМаксимальный уровень сообщений (по умолчанию Trace), которые будут сохраняться в таблице.Trace

Пример

<clickhouse>
    <text_log>
        <level>notice</level>
        <database>system</database>
        <table>text_log</table>
        <flush_interval_milliseconds>7500</flush_interval_milliseconds>
        <max_size_rows>1048576</max_size_rows>
        <reserved_size_rows>8192</reserved_size_rows>
        <buffer_size_rows_flush_threshold>524288</buffer_size_rows_flush_threshold>
        <flush_on_crash>false</flush_on_crash>
        <!-- <partition_by>event_date</partition_by> -->
        <engine>Engine = MergeTree PARTITION BY event_date ORDER BY event_time TTL event_date + INTERVAL 30 day</engine>
    </text_log>
</clickhouse>

thread_pool_queue_size

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

Примечание

Значение 0 означает отсутствие ограничения.

Пример

<thread_pool_queue_size>12000</thread_pool_queue_size>

threadpool_local_fs_reader_pool_size

Количество потоков в пуле для чтения из локальной файловой системы при local_filesystem_read_method = 'pread_threadpool'.

threadpool_local_fs_reader_queue_size

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

threadpool_remote_fs_reader_pool_size

Количество потоков в пуле потоков, используемом для чтения из удалённой файловой системы, когда remote_filesystem_read_method = 'threadpool'.

threadpool_remote_fs_reader_queue_size

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

threadpool_writer_pool_size

Размер фонового пула потоков для запросов на запись в объектные хранилища

threadpool_writer_queue_size

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

throw_on_unknown_workload

Определяет поведение при обращении к неизвестной WORKLOAD при установленном параметре запроса 'workload'.

  • Если true, запрос, пытающийся получить доступ к неизвестной WORKLOAD, завершится с исключением RESOURCE_ACCESS_DENIED. Полезно для принудительного применения планирования ресурсов для всех запросов после того, как иерархия WORKLOAD настроена и содержит WORKLOAD default.
  • Если false (значение по умолчанию), запросу с параметром 'workload', указывающим на неизвестную WORKLOAD, предоставляется неограниченный доступ без планирования ресурсов. Это важно на этапе настройки иерархии WORKLOAD, до добавления WORKLOAD default.

Пример

<throw_on_unknown_workload>true</throw_on_unknown_workload>

См. также

timezone

Часовой пояс сервера.

Указывается как идентификатор IANA для часового пояса UTC или географического региона (например, Africa/Abidjan).

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

Пример

<timezone>Asia/Istanbul</timezone>

См. также

tmp_path

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

Примечание
  • Для настройки хранения временных данных можно использовать только один из параметров: tmp_path, tmp_policy, temporary_data_in_cache.
  • Обязателен слэш в конце пути.

Пример

<tmp_path>/var/lib/clickhouse/tmp/</tmp_path>

tmp_policy

Политика для хранилища временных данных. Все файлы с префиксом tmp будут удалены при запуске.

Примечание

Рекомендации по использованию объектного хранилища в качестве tmp_policy:

  • Используйте отдельный bucket:path на каждом сервере
  • Используйте metadata_type=plain
  • При необходимости задайте TTL для этого bucket
Примечание
  • Для настройки хранилища временных данных можно использовать только один параметр: tmp_path, tmp_policy или temporary_data_in_cache.
  • Параметры move_factor, keep_free_space_bytes, max_data_part_size_bytes игнорируются.
  • Политика должна содержать ровно один том.

Дополнительные сведения см. в документации MergeTree Table Engine.

Пример

Когда /disk1 заполнен, временные данные будут записываться на /disk2.

<clickhouse>
<storage_configuration>
<disks>
<disk1>
<path>/disk1/</path>
</disk1>
<disk2>
<path>/disk2/</path>
</disk2>
</disks>

<policies>
<!-- highlight-start -->
<tmp_two_disks>
<volumes>
<main>
<disk>disk1</disk>
<disk>disk2</disk>
</main>
</volumes>
</tmp_two_disks>
<!-- highlight-end -->
</policies>
</storage_configuration>

<!-- highlight-start -->
<tmp_policy>tmp_two_disks</tmp_policy>
<!-- highlight-end -->
</clickhouse>

top_level_domains_list

Определяет список пользовательских доменов верхнего уровня для добавления, где каждая запись имеет формат <name>/path/to/file</name>.

Например:

<top_level_domains_lists>
    <public_suffix_list>/путь/к/файлу/public_suffix_list.dat</public_suffix_list>
</top_level_domains_lists>

См. также:

  • функцию cutToFirstSignificantSubdomainCustom и её вариации, которая принимает имя пользовательского списка TLD и возвращает часть домена, включающую поддомены верхнего уровня вплоть до первого значимого поддомена.

total_memory_profiler_sample_max_allocation_size

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

total_memory_profiler_sample_min_allocation_size

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

total_memory_profiler_step

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

total_memory_tracker_sample_probability

Позволяет собирать случайные операции выделения и освобождения памяти и записывать их в системную таблицу system.trace_log с trace_type, равным MemorySample, с указанной вероятностью. Эта вероятность применяется к каждой операции выделения или освобождения памяти, независимо от размера выделения. Обратите внимание, что семплирование выполняется только тогда, когда объём неотслеживаемой памяти превышает лимит неотслеживаемой памяти (значение по умолчанию — 4 MiB). Лимит можно уменьшить, если уменьшить значение total_memory_profiler_step. Вы можете установить total_memory_profiler_step равным 1 для сверхдетализированного семплирования.

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

  • Положительное число типа double.
  • 0 — запись случайных операций выделения и освобождения памяти в системную таблицу system.trace_log отключена.

trace_log

Настройки системной таблицы trace_log.

Следующие параметры можно настроить с помощью подтегов:

SettingDescriptionDefaultNote
databaseИмя базы данных.
tableИмя системной таблицы.
engineОпределение движка MergeTree для системной таблицы.Не может использоваться, если определены partition_by или order_by. Если не указан, по умолчанию выбирается MergeTree
partition_byПользовательский ключ партиционирования для системной таблицы.Если для системной таблицы указан engine, параметр partition_by должен быть указан непосредственно внутри engine
ttlЗадает TTL таблицы.Если для системной таблицы указан engine, параметр ttl должен быть указан непосредственно внутри engine
order_byПользовательский ключ сортировки для системной таблицы. Не может использоваться, если определен engine.Если для системной таблицы указан engine, параметр order_by должен быть указан непосредственно внутри engine
storage_policyИмя политики хранения, используемой для таблицы (необязательно).Если для системной таблицы указан engine, параметр storage_policy должен быть указан непосредственно внутри engine
settingsДополнительные параметры, управляющие поведением MergeTree (необязательно).Если для системной таблицы указан engine, параметр settings должен быть указан непосредственно внутри engine
flush_interval_millisecondsИнтервал сброса данных из буфера в памяти в таблицу.7500
max_size_rowsМаксимальный размер логов в строках. Когда объем несброшенных логов достигает max_size_rows, логи сбрасываются на диск.1048576
reserved_size_rowsПредварительно выделенный размер памяти в строках для логов.8192
buffer_size_rows_flush_thresholdПорог по количеству строк. Если порог достигнут, в фоновом режиме запускается сброс логов на диск.max_size_rows / 2
flush_on_crashОпределяет, должны ли логи сбрасываться на диск в случае сбоя.false

Файл конфигурации сервера по умолчанию config.xml содержит следующий раздел настроек:

<trace_log>
    <database>system</database>
    <table>trace_log</table>
    <partition_by>toYYYYMM(event_date)</partition_by>
    <flush_interval_milliseconds>7500</flush_interval_milliseconds>
    <max_size_rows>1048576</max_size_rows>
    <reserved_size_rows>8192</reserved_size_rows>
    <buffer_size_rows_flush_threshold>524288</buffer_size_rows_flush_threshold>
    <flush_on_crash>false</flush_on_crash>
    <symbolize>false</symbolize>
</trace_log>

uncompressed_cache_policy

Имя политики несжатого кэша.

uncompressed_cache_size

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

Для сервера используется один общий кэш. Память выделяется по требованию. Кэш используется, если включена опция use_uncompressed_cache.

Кэш несжатых данных полезен для очень коротких запросов в некоторых сценариях.

Примечание

Значение 0 означает, что кэш отключен.

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

uncompressed_cache_size_ratio

Размер защищённой очереди (для политики SLRU) в несжатом кэше относительно общего размера кэша.

url_scheme_mappers

Конфигурация для преобразования сокращённых или символических префиксов URL-адресов в полные URL-адреса.

Пример:

<url_scheme_mappers>
    <s3>
        <to>https://{bucket}.s3.amazonaws.com</to>
    </s3>
    <gs>
        <to>https://storage.googleapis.com/{bucket}</to>
    </gs>
    <oss>
        <to>https://{bucket}.oss.aliyuncs.com</to>
    </oss>
</url_scheme_mappers>

use_minimalistic_part_header_in_zookeeper

Метод хранения заголовков частей данных в ZooKeeper. Этот параметр применяется только к семейству MergeTree. Его можно задать:

Глобально в секции merge_tree файла config.xml

ClickHouse использует этот параметр для всех таблиц на сервере. Вы можете изменить его в любой момент. Поведение существующих таблиц меняется при изменении параметра.

Для каждой таблицы

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

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

  • 0 — Функция отключена.
  • 1 — Функция включена.

Если use_minimalistic_part_header_in_zookeeper = 1, то реплицируемые таблицы хранят заголовки частей данных компактно, используя один znode. Если таблица содержит много столбцов, этот способ хранения значительно уменьшает объём данных, хранящихся в ZooKeeper.

Примечание

После применения use_minimalistic_part_header_in_zookeeper = 1 вы не сможете понизить версию сервера ClickHouse до версии, которая не поддерживает этот параметр. Будьте осторожны при обновлении ClickHouse на серверах в кластере. Не обновляйте все серверы одновременно. Безопаснее тестировать новые версии ClickHouse в тестовой среде или только на нескольких серверах кластера.

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

user_defined_executable_functions_config

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

Путь:

  • Укажите абсолютный путь или путь относительно файла конфигурации сервера.
  • Путь может содержать подстановочные символы * и ?.

См. также:

Пример

<user_defined_executable_functions_config>*_function.xml</user_defined_executable_functions_config>

user_defined_path

Каталог с файлами, определёнными пользователем. Используется для пользовательских SQL-функций SQL User Defined Functions.

Пример

<user_defined_path>/var/lib/clickhouse/user_defined/</user_defined_path>

user_directories

Раздел конфигурационного файла, который содержит настройки:

  • Путь к файлу конфигурации с предопределёнными пользователями.
  • Путь к папке, где хранятся пользователи, созданные SQL-командами.
  • Путь к узлу ZooKeeper, где хранятся и реплицируются пользователи, созданные SQL-командами.

Если этот раздел указан, путь из users_config и access_control_path использоваться не будут.

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

Примеры

<user_directories>
    <users_xml>
        <path>/etc/clickhouse-server/users.xml</path>
    </users_xml>
    <local_directory>
        <path>/var/lib/clickhouse/access/</path>
    </local_directory>
</user_directories>

Пользователи, роли, политики на уровне строк, квоты и профили также могут храниться в ZooKeeper:

<user_directories>
    <users_xml>
        <path>/etc/clickhouse-server/users.xml</path>
    </users_xml>
    <replicated>
        <zookeeper_path>/clickhouse/access/</zookeeper_path>
    </replicated>
</user_directories>

Вы также можете определить секции memory — для хранения информации только в памяти без записи на диск и ldap — для хранения информации на сервере LDAP.

Чтобы добавить сервер LDAP в качестве удалённого каталога пользователей, не определённых локально, задайте одну секцию ldap со следующими настройками:

SettingDescription
serverодно из имён серверов LDAP, определённых в конфигурационной секции ldap_servers. Этот параметр является обязательным и не может быть пустым.
rolesсекция со списком локально определённых ролей, которые будут назначены каждому пользователю, полученному с сервера LDAP. Если роли не указаны, пользователь не сможет выполнять какие-либо действия после аутентификации. Если любая из перечисленных ролей не определена локально на момент аутентификации, попытка аутентификации будет считаться неуспешной, как если бы был указан неверный пароль.

Пример

<ldap>
    <server>my_ldap_server</server>
        <roles>
            <my_local_role1 />
            <my_local_role2 />
        </roles>
</ldap>

user_files_path

Каталог с пользовательскими файлами. Используется табличными функциями file() и fileCluster().

Пример

<user_files_path>/var/lib/clickhouse/user_files/</user_files_path>

user_scripts_path

Каталог, содержащий файлы пользовательских скриптов. Используется для исполняемых пользовательских функций Executable User Defined Functions.

Пример

<user_scripts_path>/var/lib/clickhouse/user_scripts/</user_scripts_path>

Тип:

По умолчанию:

users_config

Путь к файлу, содержащему:

  • Конфигурации пользователей.
  • Права доступа.
  • Профили настроек.
  • Параметры квот.

Пример

<users_config>users.xml</users_config>

validate_tcp_client_information

Определяет, включена ли проверка клиентской информации при получении пакета запроса.

По умолчанию — false:

<validate_tcp_client_information>false</validate_tcp_client_information>

vector_similarity_index_cache_max_entries

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

vector_similarity_index_cache_policy

Имя политики кэширования индекса векторного сходства.

vector_similarity_index_cache_size

Размер кэша для индексов векторного сходства. Ноль — кэш отключен.

Примечание

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

vector_similarity_index_cache_size_ratio

Размер защищённой очереди (в случае политики SLRU) в кэше индекса векторного сходства относительно его общего размера.

wait_dictionaries_load_at_startup

Этот параметр определяет поведение, когда dictionaries_lazy_load имеет значение false. (Если dictionaries_lazy_load имеет значение true, этот параметр ни на что не влияет.)

Если wait_dictionaries_load_at_startup имеет значение false, сервер начнёт загружать все словари при старте и параллельно с этим будет принимать подключения. Когда словарь используется в запросе впервые, запрос будет ждать, пока словарь не загрузится, если он ещё не загружен. Установка wait_dictionaries_load_at_startup в false может ускорить запуск ClickHouse, однако некоторые запросы могут выполняться медленнее (поскольку им придётся ждать загрузки некоторых словарей).

Если wait_dictionaries_load_at_startup имеет значение true, сервер при запуске будет ждать, пока все словари завершат загрузку (успешно или с ошибкой), прежде чем начинать принимать подключения.

Пример

<wait_dictionaries_load_at_startup>true</wait_dictionaries_load_at_startup>

workload_path

Каталог, используемый для хранения всех запросов CREATE WORKLOAD и CREATE RESOURCE. По умолчанию используется папка /workload/ в рабочем каталоге сервера.

Пример

<workload_path>/var/lib/clickhouse/workload/</workload_path>

См. также

workload_zookeeper_path

Путь к узлу ZooKeeper, который используется как хранилище для всех запросов CREATE WORKLOAD и CREATE RESOURCE. Для согласованности все SQL-определения хранятся в значении одного znode. По умолчанию ZooKeeper не используется, и определения хранятся на диске.

Пример

<workload_zookeeper_path>/clickhouse/workload/definitions.sql</workload_zookeeper_path>

См. также

zookeeper

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

Следующие настройки могут быть заданы с помощью подтегов:

SettingDescription
nodeEndpoint ZooKeeper. Можно указать несколько endpoint'ов. Например, <node index="1"><host>example_host</host><port>2181</port></node>. Атрибут index определяет порядок перебора узлов при подключении к кластеру ZooKeeper.
session_timeout_msМаксимальный таймаут клиентской сессии в миллисекундах.
operation_timeout_msМаксимальный таймаут одной операции в миллисекундах.
root (optional)Znode, используемый как корневой для znode, с которыми работает сервер ClickHouse.
fallback_session_lifetime.min (optional)Минимальное ограничение на время жизни сессии ZooKeeper к запасному узлу при недоступности основного (балансировка нагрузки). Указывается в секундах. По умолчанию: 3 часа.
fallback_session_lifetime.max (optional)Максимальное ограничение на время жизни сессии ZooKeeper к запасному узлу при недоступности основного (балансировка нагрузки). Указывается в секундах. По умолчанию: 6 часов.
identity (optional)Пользователь и пароль, необходимые ZooKeeper для доступа к запрашиваемым znode.
use_compression (optional)Включает сжатие в протоколе Keeper, если установлено значение true.

Также существует настройка zookeeper_load_balancing (необязательно), которая позволяет выбрать алгоритм выбора узла ZooKeeper:

Algorithm NameDescription
randomслучайным образом выбирает один из узлов ZooKeeper.
in_orderвыбирает первый узел ZooKeeper; если он недоступен, то второй и так далее.
nearest_hostnameвыбирает узел ZooKeeper с именем хоста, максимально похожим на имя хоста сервера; имя хоста сравнивается по префиксу.
hostname_levenshtein_distanceаналогично nearest_hostname, но имя хоста сравнивается по расстоянию Левенштейна.
first_or_randomвыбирает первый узел ZooKeeper; если он недоступен, то случайным образом выбирает один из оставшихся узлов ZooKeeper.
round_robinвыбирает первый узел ZooKeeper, при переподключении выбирает следующий.

Пример конфигурации

<zookeeper>
    <node>
        <host>example1</host>
        <port>2181</port>
    </node>
    <node>
        <host>example2</host>
        <port>2181</port>
    </node>
    <session_timeout_ms>30000</session_timeout_ms>
    <operation_timeout_ms>10000</operation_timeout_ms>
    <!-- Необязательный параметр. Суффикс chroot. Должен существовать. -->
    <root>/path/to/zookeeper/node</root>
    <!-- Необязательный параметр. Строка digest ACL для Zookeeper. -->
    <identity>user:password</identity>
    <!--<zookeeper_load_balancing>random / in_order / nearest_hostname / hostname_levenshtein_distance / first_or_random / round_robin</zookeeper_load_balancing>-->
    <zookeeper_load_balancing>random</zookeeper_load_balancing>
</zookeeper>

См. также

zookeeper_log

Настройки системной таблицы zookeeper_log.

Следующие настройки могут быть настроены с помощью под‑тегов:

Следующие параметры можно настроить с помощью подтегов:

SettingDescriptionDefaultNote
databaseИмя базы данных.
tableИмя системной таблицы.
engineОпределение движка MergeTree для системной таблицы.Не может использоваться, если определены partition_by или order_by. Если не указан, по умолчанию выбирается MergeTree
partition_byПользовательский ключ партиционирования для системной таблицы.Если для системной таблицы указан engine, параметр partition_by должен быть указан непосредственно внутри engine
ttlЗадает TTL таблицы.Если для системной таблицы указан engine, параметр ttl должен быть указан непосредственно внутри engine
order_byПользовательский ключ сортировки для системной таблицы. Не может использоваться, если определен engine.Если для системной таблицы указан engine, параметр order_by должен быть указан непосредственно внутри engine
storage_policyИмя политики хранения, используемой для таблицы (необязательно).Если для системной таблицы указан engine, параметр storage_policy должен быть указан непосредственно внутри engine
settingsДополнительные параметры, управляющие поведением MergeTree (необязательно).Если для системной таблицы указан engine, параметр settings должен быть указан непосредственно внутри engine
flush_interval_millisecondsИнтервал сброса данных из буфера в памяти в таблицу.7500
max_size_rowsМаксимальный размер логов в строках. Когда объем несброшенных логов достигает max_size_rows, логи сбрасываются на диск.1048576
reserved_size_rowsПредварительно выделенный размер памяти в строках для логов.8192
buffer_size_rows_flush_thresholdПорог по количеству строк. Если порог достигнут, в фоновом режиме запускается сброс логов на диск.max_size_rows / 2
flush_on_crashОпределяет, должны ли логи сбрасываться на диск в случае сбоя.false

Пример

<clickhouse>
    <zookeeper_log>
        <database>system</database>
        <table>zookeeper_log</table>
        <flush_interval_milliseconds>7500</flush_interval_milliseconds>
        <ttl>event_date + INTERVAL 1 WEEK DELETE</ttl>
    </zookeeper_log>
</clickhouse>