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

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

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

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

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

abort_on_logical_error

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

access_control_improvements

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

SettingDescriptionDefault
users_without_row_policies_can_read_rowsОпределяет, могут ли пользователи без разрешающих политик строк по‑прежнему читать строки с помощью запроса SELECT. Например, если есть два пользователя A и B, и политика строк определена только для A, то при значении параметра true пользователь B будет видеть все строки. При значении false пользователь B не будет видеть ни одной строки.true
on_cluster_queries_require_cluster_grantОпределяет, требуется ли для запросов ON CLUSTER привилегия CLUSTER.true
select_from_system_db_requires_grantОпределяет, требуется ли для SELECT * FROM system.<table> какие‑либо привилегии или запрос может быть выполнен любым пользователем. Если установлено значение true, то для этого запроса требуется 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> какие‑либо привилегии или запрос может быть выполнен любым пользователем. Если установлено значение true, то для этого запроса требуется 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

Example:

<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&#95;password.

<allow_no_password>1</allow_no_password>

allow_plaintext_password

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

<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

Заставляет асинхронный сбор метрик вычислять только метрики, относящиеся к Keeper.

asynchronous_metrics_update_period_s

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

auth_use_forwarded_address

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

Примечание

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

background_buffer_flush_schedule_pool_size

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

background_common_pool_size

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

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.

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

SettingТипОписаниеЗначение по умолчанию
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Максимальное количество повторных попыток после возникновения ошибки «bad version» при координированном резервном копировании/восстановлении.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

Максимальное количество заданий, которые могут быть поставлены в очередь пула потоков ввода-вывода резервного копирования (Backups IO thread pool). Рекомендуется не ограничивать размер этой очереди из-за текущей логики резервного копирования в 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

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

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).

Примечание

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

Пример

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

cpu_slot_preemption

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

  • Если true (рекомендуется), учёт ведётся по фактическому потреблённому времени CPU. Конкурирующим рабочим нагрузкам выделяется справедливый объём процессорного времени. Слоты выделяются на ограниченный промежуток времени и повторно запрашиваются после его истечения. Запрос слота может блокировать выполнение потока в случае перегрузки 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 может потреблять поток после получения слота CPU и прежде чем ему необходимо запросить следующий слот CPU. Имеет смысл только если 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

Разрешает навсегда отсоединять таблицы в базах данных типа Replicated

database_replicated_drop_broken_tables

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

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

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

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_hard_limit

Исключение выбрасывается при попытке создания, когда достигнут этот лимит. Установите значение 0, чтобы отключить жесткое ограничение. Лимит применяется к подключениям к дискам.

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

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

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>
    <!-- Path in ZooKeeper to queue with DDL queries -->
    <path>/clickhouse/task_queue/ddl</path>

    <!-- Settings from this profile will be used to execute DDL queries -->
    <profile>default</profile>

    <!-- Controls how much ON CLUSTER queries can be run simultaneously. -->
    <pool_size>1</pool_size>

    <!--
         Cleanup settings (active tasks will not be removed)
    -->

    <!-- Controls task TTL (default 1 week) -->
    <task_max_lifetime>604800</task_max_lifetime>

    <!-- Controls how often cleanup should be performed (in seconds) -->
    <cleanup_delay_period>60</cleanup_delay_period>

    <!-- Controls how many tasks could be in the queue -->
    <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

Включает ведение журнала в Azure SDK

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.

Пример

<!-- Directory containing schema files for various input formats. -->
<format_schema_path>format_schemas/</format_schema_path>

global_profiler_cpu_time_period_ns

Период таймера тактов процессора глобального профайлера (в наносекундах). Установите значение 0, чтобы отключить глобальный профайлер по тактам CPU. Рекомендуемое значение — не менее 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_hard_limit

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

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Для сопоставления методов запроса можно использовать запятые для разделения нескольких методов (необязательно)
headersДля сопоставления заголовков запроса сопоставляйте каждый дочерний элемент (имя дочернего элемента — имя заголовка); можно использовать префикс 'regex:' для сопоставления по регулярному выражению (необязательно)
handlerОбработчик запроса
empty_query_stringПроверяет отсутствие строки запроса (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 используется при выполнении предварительных (preflight) CORS-запросов.

Дополнительную информацию см. в разделе 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.

Для получения дополнительной информации см. раздел «Configuration files».

Пример

<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

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

Примечание

Значение 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

Динамическая настройка. Содержит набор хостов ZooKeeper, к которым 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 пользователя, к которому производится bind. В основном используется в поисковых фильтрах для дальнейшего сопоставления ролей, когда сервером является Active Directory. Итоговый DN пользователя будет использоваться при замене подстрок \{user_dn\} везде, где они разрешены. По умолчанию DN пользователя равен bind DN, но после выполнения поиска он будет обновлён до фактически обнаруженного значения DN пользователя.
verification_cooldownПериод времени в секундах после успешной попытки bind, в течение которого считается, что пользователь успешно аутентифицирован для всех последующих запросов без обращения к серверу 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Поведение проверки сертификата SSL/TLS удалённого узла (peer). Допустимые значения: 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 должны быть корректно экранированы.

Example:

<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_file

Содержимое файла лицензии для ClickHouse Enterprise Edition

license_public_key_for_testing

Демонстрационный лицензионный ключ, предназначенный только для использования в CI

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 цифры недельного года по ISO 8601, то есть года, к которому относится указанная неделя.23
%bСокращённое название месяца, например, Oct (зависит от настроек локали)Jul
%hТо же, что %bJul
%BПолное название месяца, например, October (в зависимости от локали)Июль
%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Сокращённое название дня недели, например Fri (зависит от настроек локали)чт
%AПолное название дня недели, например «Friday» (в зависимости от локали)четверг
%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Локализованный формат даты (зависит от локали)07.06.23
%XЛокализованное представление времени, например, 18:40:20 или 6:40:20 PM (в зависимости от локали)18:32:07
%DКраткая дата в формате MM/DD/YY, эквивалент формата %m/%d/%y07/06/23
%FКраткий формат даты YYYY-MM-DD, эквивалент %Y-%m-%d2023-07-06
%rВремя в локализованном 12-часовом формате (зависит от локали)06:32:07 PM
%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": "Received signal 2",
  "source_file": "../base/daemon/BaseDaemon.cpp; virtual void SignalListener::run()",
  "source_line": "192"
}

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

<logger>
    <formatting>
        <type>json</type>
        <!-- Can be configured on a per-channel basis (log, errorlog, console, syslog), or globally for all channels (then just omit it). -->
        <!-- <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_prewarm_ratio

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

mark_cache_size

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

Примечание

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

mark_cache_size_ratio

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

max_active_parts_loading_thread_pool_size

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

max_authentication_methods_per_user

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

Примечание

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

max_backup_bandwidth_for_server

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

max_backups_io_thread_pool_free_size

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

max_backups_io_thread_pool_size

ClickHouse использует потоки из пула потоков Backups IO Thread pool для выполнения операций ввода-вывода при резервном копировании в 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

Ограничение на количество materialized view, прикреплённых к таблице.

Примечание

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

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 использует пул потоков десериализации префиксов для параллельного чтения метаданных столбцов и подстолбцов из файловых префиксов в широких частях 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

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

max_replicated_sends_network_bandwidth_for_server

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

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% доступной памяти.

Позволяет снизить потребление памяти на системах с малым объёмом памяти. На хостах с небольшим объёмом RAM и swap может потребоваться установить для параметра 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

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

Примечание

Значение 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&#95;IPC&#95;LOCK.

Пример

<mlock_executable>false</mlock_executable>

mmap_cache_size

Этот параметр позволяет избегать частых вызовов open/close (которые очень затратны из‑за связанных с этим промахов по страницам) и повторно использовать отображения (memory mappings) из нескольких потоков и запросов. Значение параметра — это количество отображённых регионов (обычно равно количеству отображённых файлов).

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

Примечание

Объём данных в отображённых файлах напрямую не потребляет память и не учитывается в использовании памяти запросом или сервером, потому что эта память может быть отброшена аналогично кэшу страниц операционной системы. Кэш сбрасывается (файлы закрываются) автоматически при удалении старых частей в таблицах семейства 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>
        <!-- Use for self-signed: <verificationMode>none</verificationMode> -->
        <invalidCertificateHandler>
            <!-- Use for self-signed: <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_collect_psi_metrics

Включает сбор метрик PSI из файлов /proc/pressure/.

os_cpu_busy_time_threshold

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

os_threads_nice_value_distributed_cache_tcp_handler

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

Требует capability CAP_SYS_NICE, иначе не оказывает эффекта (no-op).

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

os_threads_nice_value_merge_mutate

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

Требуется capability 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

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

page_cache_size_ratio

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

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

Добавляет к kill_delay_period равномерно распределённое значение в диапазоне от 0 до x секунд, чтобы избежать эффекта массовых одновременных обращений (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

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

Примечание

Значение 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 endpoint для сбора метрик сервером 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>

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

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

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

Прокси-серверы могут меняться динамически. В этом случае вы можете задать конечную точку (endpoint) резолвера. ClickHouse отправляет пустой GET-запрос на эту конечную точку, удалённый резолвер должен вернуть хост прокси-сервера. 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>

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

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

Приоритет

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

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

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>hide 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") с использованием больших страниц памяти (huge pages).

Примечание

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

Пример:

<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 для запросов выборки частей (fetch part). Наследуется от профиля по умолчанию 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>
        <!-- configuration -->
    </disks>
    <policies>
        <!-- configuration -->
    </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:

SettingDescription
<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_hard_limit

Исключение генерируется при попытке создать новое соединение, когда этот лимит достигнут. Установите 0, чтобы отключить жёсткий лимит. Ограничение применяется к соединениям хранилищ.

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, чтобы создать таблицу с конкретным движком, например: GRANT TABLE ENGINE ON TinyLog to user.

Примечание

По умолчанию, для обеспечения обратной совместимости, при создании таблицы с конкретным движком grant игнорируется, однако вы можете изменить это поведение, установив данный параметр в 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

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

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

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

SettingDescriptionDefault Value
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>/path/to/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

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

total_memory_tracker_sample_probability

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

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

  • Положительное число с плавающей запятой.
  • 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>

Пользователи, роли, политики доступа к строкам, QUOTA и профили также могут храниться в 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
nodeКонечная точка ZooKeeper (endpoint). Можно задать несколько 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 с fallback-узлом, когда основной узел недоступен (балансировка нагрузки). Задаётся в секундах. Значение по умолчанию: 3 часа.
fallback_session_lifetime.max (optional)Максимальное ограничение времени жизни сессии ZooKeeper с fallback-узлом, когда основной узел недоступен (балансировка нагрузки). Задаётся в секундах. Значение по умолчанию: 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>
    <!-- Optional. Chroot suffix. Should exist. -->
    <root>/path/to/zookeeper/node</root>
    <!-- Optional. Zookeeper digest ACL string. -->
    <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>