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

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

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

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

Другие настройки описаны в разделе «Настройки». Перед изучением настроек рекомендуется прочитать раздел «Файлы конфигурации» и обратить внимание на использование подстановок (атрибуты 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

Пример:

<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

Определяет, разрешено ли использование небезопасных паролей в открытом виде (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

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

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, используемой для журналирования асинхронных вставок.

The following settings can be configured by sub-tags:

SettingDescriptionDefaultNote
databaseName of the database.
tableName of the system table.
engineMergeTree Engine Definition for a system table.Cannot be used if partition_by or order_by defined. If not specified MergeTree is selected by default
partition_byCustom partitioning key for a system table.If engine is specified for system table, partition_by parameter should be specified directly inside 'engine'
ttlSpecifies the table TTL.If engine is specified for system table, ttl parameter should be specified directly inside 'engine'
order_byCustom sorting key for a system table. Can't be used if engine defined.If engine is specified for system table, order_by parameter should be specified directly inside 'engine'
storage_policyName of the storage policy to use for the table (optional).If engine is specified for system table, storage_policy parameter should be specified directly inside 'engine'
settingsAdditional parameters that control the behavior of the MergeTree (optional).If engine is specified for system table, settings parameter should be specified directly inside 'engine'
flush_interval_millisecondsInterval for flushing data from the buffer in memory to the table.7500
max_size_rowsMaximal size in lines for the logs. When the amount of non-flushed logs reaches the max_size, logs are dumped to the disk.1048576
reserved_size_rowsPre-allocated memory size in lines for the logs.8192
buffer_size_rows_flush_thresholdThreshold for amount of lines. If the threshold is reached, flushing logs to the disk is launched in background.max_size_rows / 2
flush_on_crashSets whether logs should be dumped to the disk in case of a 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>

The following settings can be configured by sub-tags:

SettingDescriptionDefaultNote
databaseName of the database.
tableName of the system table.
engineMergeTree Engine Definition for a system table.Cannot be used if partition_by or order_by defined. If not specified MergeTree is selected by default
partition_byCustom partitioning key for a system table.If engine is specified for system table, partition_by parameter should be specified directly inside 'engine'
ttlSpecifies the table TTL.If engine is specified for system table, ttl parameter should be specified directly inside 'engine'
order_byCustom sorting key for a system table. Can't be used if engine defined.If engine is specified for system table, order_by parameter should be specified directly inside 'engine'
storage_policyName of the storage policy to use for the table (optional).If engine is specified for system table, storage_policy parameter should be specified directly inside 'engine'
settingsAdditional parameters that control the behavior of the MergeTree (optional).If engine is specified for system table, settings parameter should be specified directly inside 'engine'
flush_interval_millisecondsInterval for flushing data from the buffer in memory to the table.7500
max_size_rowsMaximal size in lines for the logs. When the amount of non-flushed logs reaches the max_size, logs are dumped to the disk.1048576
reserved_size_rowsPre-allocated memory size in lines for the logs.8192
buffer_size_rows_flush_thresholdThreshold for amount of lines. If the threshold is reached, flushing logs to the disk is launched in background.max_size_rows / 2
flush_on_crashSets whether logs should be dumped to the disk in case of a crash.false

asynchronous_metrics_enable_heavy_metrics

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

asynchronous_metrics_update_period_s

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

auth_use_forwarded_address

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

Примечание

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

background_buffer_flush_schedule_pool_size

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

background_common_pool_size

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

background_distributed_schedule_pool_size

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

background_fetches_pool_size

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

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.

The following settings can be configured by sub-tags:

SettingDescriptionDefaultNote
databaseName of the database.
tableName of the system table.
engineMergeTree Engine Definition for a system table.Cannot be used if partition_by or order_by defined. If not specified MergeTree is selected by default
partition_byCustom partitioning key for a system table.If engine is specified for system table, partition_by parameter should be specified directly inside 'engine'
ttlSpecifies the table TTL.If engine is specified for system table, ttl parameter should be specified directly inside 'engine'
order_byCustom sorting key for a system table. Can't be used if engine defined.If engine is specified for system table, order_by parameter should be specified directly inside 'engine'
storage_policyName of the storage policy to use for the table (optional).If engine is specified for system table, storage_policy parameter should be specified directly inside 'engine'
settingsAdditional parameters that control the behavior of the MergeTree (optional).If engine is specified for system table, settings parameter should be specified directly inside 'engine'
flush_interval_millisecondsInterval for flushing data from the buffer in memory to the table.7500
max_size_rowsMaximal size in lines for the logs. When the amount of non-flushed logs reaches the max_size, logs are dumped to the disk.1048576
reserved_size_rowsPre-allocated memory size in lines for the logs.8192
buffer_size_rows_flush_thresholdThreshold for amount of lines. If the threshold is reached, flushing logs to the disk is launched in background.max_size_rows / 2
flush_on_crashSets whether logs should be dumped to the disk in case of a crash.false

Пример

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

backup_threads

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

backups

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

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

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

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

<backups>
    ....
</backups>

backups_io_thread_pool_queue_size

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

Примечание

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

bcrypt_workfactor

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

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

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

blob_storage_log

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

The following settings can be configured by sub-tags:

SettingDescriptionDefaultNote
databaseName of the database.
tableName of the system table.
engineMergeTree Engine Definition for a system table.Cannot be used if partition_by or order_by defined. If not specified MergeTree is selected by default
partition_byCustom partitioning key for a system table.If engine is specified for system table, partition_by parameter should be specified directly inside 'engine'
ttlSpecifies the table TTL.If engine is specified for system table, ttl parameter should be specified directly inside 'engine'
order_byCustom sorting key for a system table. Can't be used if engine defined.If engine is specified for system table, order_by parameter should be specified directly inside 'engine'
storage_policyName of the storage policy to use for the table (optional).If engine is specified for system table, storage_policy parameter should be specified directly inside 'engine'
settingsAdditional parameters that control the behavior of the MergeTree (optional).If engine is specified for system table, settings parameter should be specified directly inside 'engine'
flush_interval_millisecondsInterval for flushing data from the buffer in memory to the table.7500
max_size_rowsMaximal size in lines for the logs. When the amount of non-flushed logs reaches the max_size, logs are dumped to the disk.1048576
reserved_size_rowsPre-allocated memory size in lines for the logs.8192
buffer_size_rows_flush_thresholdThreshold for amount of lines. If the threshold is reached, flushing logs to the disk is launched in background.max_size_rows / 2
flush_on_crashSets whether logs should be dumped to the disk in case of a crash.false

Пример:

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

builtin_dictionaries_reload_interval

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

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

Пример

<builtin_dictionaries_reload_interval>3600</builtin_dictionaries_reload_interval>

cache_size_to_ram_max_ratio

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

cannot_allocate_thread_fault_injection_probability

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

cgroups_memory_usage_observer_wait_time

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

Чтобы отключить наблюдатель cgroup, установите этот параметр в 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, то есть может происходить вытеснение (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_slot_preemption и ресурс CPU задан для MASTER THREAD или WORKER THREAD.

Пример

<cpu_slot_quantum_ns>10000000</cpu_slot_quantum_ns>

См. также

crash_log

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

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

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

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

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

custom_cached_disks_base_directory

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

Примечание

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

Пример:

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

custom_settings_prefixes

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

Пример

<custom_settings_prefixes>custom_</custom_settings_prefixes>

См. также

database_atomic_delay_before_drop_table_sec

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

database_catalog_drop_error_cooldown_sec

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

database_catalog_drop_table_concurrency

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

database_catalog_unused_dir_cleanup_period_sec

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

Примечание

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

database_catalog_unused_dir_hide_timeout_sec

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

Примечание

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

database_catalog_unused_dir_rm_timeout_sec

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

Примечание

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

database_replicated_allow_detach_permanently

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

database_replicated_drop_broken_tables

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

dead_letter_queue

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

The following settings can be configured by sub-tags:

SettingDescriptionDefaultNote
databaseName of the database.
tableName of the system table.
engineMergeTree Engine Definition for a system table.Cannot be used if partition_by or order_by defined. If not specified MergeTree is selected by default
partition_byCustom partitioning key for a system table.If engine is specified for system table, partition_by parameter should be specified directly inside 'engine'
ttlSpecifies the table TTL.If engine is specified for system table, ttl parameter should be specified directly inside 'engine'
order_byCustom sorting key for a system table. Can't be used if engine defined.If engine is specified for system table, order_by parameter should be specified directly inside 'engine'
storage_policyName of the storage policy to use for the table (optional).If engine is specified for system table, storage_policy parameter should be specified directly inside 'engine'
settingsAdditional parameters that control the behavior of the MergeTree (optional).If engine is specified for system table, settings parameter should be specified directly inside 'engine'
flush_interval_millisecondsInterval for flushing data from the buffer in memory to the table.7500
max_size_rowsMaximal size in lines for the logs. When the amount of non-flushed logs reaches the max_size, logs are dumped to the disk.1048576
reserved_size_rowsPre-allocated memory size in lines for the logs.8192
buffer_size_rows_flush_thresholdThreshold for amount of lines. If the threshold is reached, flushing logs to the disk is launched in background.max_size_rows / 2
flush_on_crashSets whether logs should be dumped to the disk in case of a 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, PostrgeSQL, Kafka и т. д.) разрешены независимо от этого параметра.

disable_internal_dns_cache

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

disable_tunneling_for_https_requests_over_http_proxy

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

no_proxy

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

Example

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

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

disk_connections_soft_limit

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

disk_connections_store_limit

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

disk_connections_warn_limit

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

display_secrets_in_show_and_select

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

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

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

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

distributed_cache_apply_throttling_settings_from_client

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

distributed_cache_keep_up_free_connections_ratio

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

distributed_ddl

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

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

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

Пример

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

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

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

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

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

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

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

distributed_ddl_use_initial_user_and_roles

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

dns_allow_resolve_names_to_ipv4

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

dns_allow_resolve_names_to_ipv6

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

dns_cache_max_entries

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

dns_cache_update_period

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

dns_max_consecutive_failures

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

drop_distributed_cache_pool_size

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

drop_distributed_cache_queue_size

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

enable_azure_sdk_logging

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

encryption

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

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

Пример

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

error_log

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

Включение

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

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

Отключение

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

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

The following settings can be configured by sub-tags:

SettingDescriptionDefaultNote
databaseName of the database.
tableName of the system table.
engineMergeTree Engine Definition for a system table.Cannot be used if partition_by or order_by defined. If not specified MergeTree is selected by default
partition_byCustom partitioning key for a system table.If engine is specified for system table, partition_by parameter should be specified directly inside 'engine'
ttlSpecifies the table TTL.If engine is specified for system table, ttl parameter should be specified directly inside 'engine'
order_byCustom sorting key for a system table. Can't be used if engine defined.If engine is specified for system table, order_by parameter should be specified directly inside 'engine'
storage_policyName of the storage policy to use for the table (optional).If engine is specified for system table, storage_policy parameter should be specified directly inside 'engine'
settingsAdditional parameters that control the behavior of the MergeTree (optional).If engine is specified for system table, settings parameter should be specified directly inside 'engine'
flush_interval_millisecondsInterval for flushing data from the buffer in memory to the table.7500
max_size_rowsMaximal size in lines for the logs. When the amount of non-flushed logs reaches the max_size, logs are dumped to the disk.1048576
reserved_size_rowsPre-allocated memory size in lines for the logs.8192
buffer_size_rows_flush_thresholdThreshold for amount of lines. If the threshold is reached, flushing logs to the disk is launched in background.max_size_rows / 2
flush_on_crashSets whether logs should be dumped to the disk in case of a crash.false

format_parsing_thread_pool_queue_size

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

Примечание

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

format_schema_path

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

Пример

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

global_profiler_cpu_time_period_ns

Период таймера тактов CPU для глобального профилировщика (в наносекундах). Установите значение 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_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Проверяет, что в URL отсутствует строка запроса (query string)

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, тип содержимого ответа
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 в элементах. Значение 0 отключает кэш.

iceberg_metadata_files_cache_policy

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

iceberg_metadata_files_cache_size

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

iceberg_metadata_files_cache_size_ratio

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

ignore_empty_sql_security_in_create_view_query

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

Примечание

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

include_from

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

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

Пример

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

index_mark_cache_policy

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

index_mark_cache_size

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

Примечание

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

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

index_mark_cache_size_ratio

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

index_uncompressed_cache_policy

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

index_uncompressed_cache_size

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

Примечание

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

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

index_uncompressed_cache_size_ratio

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

interserver_http_credentials

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

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

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

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

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

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

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

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

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

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

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

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

interserver_http_host

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

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

Полезно для отвязки от конкретного сетевого интерфейса.

Пример

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

interserver_http_port

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

Пример

<interserver_http_port>9009</interserver_http_port>

interserver_https_host

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

Пример

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

interserver_https_port

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

Пример

<interserver_https_port>9010</interserver_https_port>

interserver_listen_host

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

Примечание

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

Пример

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

Тип:

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

io_thread_pool_queue_size

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

Примечание

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

jemalloc_collect_global_profile_samples_in_trace_log

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

jemalloc_enable_background_threads

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

jemalloc_enable_global_profiler

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

jemalloc_flush_profile_interval_bytes

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

jemalloc_flush_profile_on_memory_exceeded

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

jemalloc_max_background_threads_num

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

keep_alive_timeout

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

Пример

<keep_alive_timeout>10</keep_alive_timeout>

keeper_hosts

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

keeper_multiread_batch_size

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

ldap_servers

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

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

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

SettingDescription
hostИмя хоста или IP‑адрес LDAP‑сервера; этот параметр является обязательным и не может быть пустым.
portПорт LDAP‑сервера, по умолчанию 636, если enable_tls установлен в true, иначе — 389.
bind_dnШаблон, используемый для построения DN, к которому выполняется привязка (bind). Итоговый DN формируется путём замены всех подстрок \{user_name\} в шаблоне фактическим именем пользователя при каждой попытке аутентификации.
user_dn_detectionРаздел с параметрами LDAP‑поиска для определения фактического пользовательского DN привязанного пользователя. В основном используется в фильтрах поиска для последующего сопоставления ролей, когда сервер — Active Directory. Полученный пользовательский DN будет использоваться при замене подстрок \{user_dn\} везде, где это разрешено. По умолчанию пользовательский DN равен bind DN, но после выполнения поиска он будет обновлён до фактически обнаруженного значения DN пользователя.
verification_cooldownПериод времени в секундах после успешной попытки 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Путь к файлу сертификата ЦС.
tls_ca_cert_dirПуть к каталогу, содержащему сертификаты ЦС.
tls_cipher_suiteРазрешённый набор шифров (в нотации OpenSSL).

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

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

Пример:

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

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

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

license_key

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

listen_backlog

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

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

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

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

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

Пример

<listen_backlog>4096</listen_backlog>

listen_host

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

Примеры:

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

listen_reuse_port

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

Пример

<listen_reuse_port>0</listen_reuse_port>

Тип:

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

listen_try

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

Пример

<listen_try>0</listen_try>

load_marks_threadpool_pool_size

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

load_marks_threadpool_queue_size

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

logger

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

Ключи:

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

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

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

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

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

Пример

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

Чтобы выводить сообщения логов только в консоль:

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

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

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

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

syslog

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

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

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

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

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

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

Пример

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

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

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

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

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

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

Исключение ключей из JSON‑логов

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

macros

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

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

Подробнее см. раздел Создание реплицируемых таблиц.

Пример

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

mark_cache_policy

Название политики кэша меток.

mark_cache_prewarm_ratio

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

mark_cache_size

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

Примечание

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

mark_cache_size_ratio

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

max_active_parts_loading_thread_pool_size

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

max_authentication_methods_per_user

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

Примечание

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

max_backup_bandwidth_for_server

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

max_backups_io_thread_pool_free_size

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

max_backups_io_thread_pool_size

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

max_dictionary_num_to_throw

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

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

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

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

Пример

<max_dictionary_num_to_throw>400</max_dictionary_num_to_throw>

max_dictionary_num_to_warn

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

Пример

<max_dictionary_num_to_warn>400</max_dictionary_num_to_warn>

max_distributed_cache_read_bandwidth_for_server

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

max_distributed_cache_write_bandwidth_for_server

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

max_entries_for_hash_table_stats

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

max_fetch_partition_thread_pool_size

Количество потоков при выполнении ALTER TABLE FETCH PARTITION.

max_format_parsing_thread_pool_free_size

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

max_format_parsing_thread_pool_size

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

max_io_thread_pool_free_size

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

max_io_thread_pool_size

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

max_keep_alive_requests

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

Пример

<max_keep_alive_requests>10</max_keep_alive_requests>

max_local_read_bandwidth_for_server

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

Примечание

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

max_local_write_bandwidth_for_server

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

Примечание

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

max_materialized_views_count_for_table

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

Примечание

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

max_merges_bandwidth_for_server

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

max_mutations_bandwidth_for_server

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

max_named_collection_num_to_throw

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

Примечание

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

Пример

<max_named_collection_num_to_throw>400</max_named_collection_num_to_throw>

max_named_collection_num_to_warn

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

Пример

<max_named_collection_num_to_warn>400</max_named_collection_num_to_warn>

max_open_files

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

Примечание

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

Пример

<max_open_files>262144</max_open_files>

max_os_cpu_wait_time_ratio_to_drop_connection

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

max_outdated_parts_loading_thread_pool_size

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

max_part_num_to_warn

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

Пример

<max_part_num_to_warn>400</max_part_num_to_warn>

max_partition_size_to_drop

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

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

Примечание

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

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

Пример

<max_partition_size_to_drop>0</max_partition_size_to_drop>

max_parts_cleaning_thread_pool_size

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

max_pending_mutations_execution_time_to_warn

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

Пример

<max_pending_mutations_execution_time_to_warn>10000</max_pending_mutations_execution_time_to_warn>

max_pending_mutations_to_warn

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

Пример

<max_pending_mutations_to_warn>400</max_pending_mutations_to_warn>

max_prefixes_deserialization_thread_pool_free_size

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

max_prefixes_deserialization_thread_pool_size

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

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

max_replicated_sends_network_bandwidth_for_server

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

max_replicated_table_num_to_throw

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

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

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

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

Пример

<max_replicated_table_num_to_throw>400</max_replicated_table_num_to_throw>

max_server_memory_usage

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

Примечание

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

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

max_server_memory_usage_to_ram_ratio

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

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

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

Примечание

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

max_session_timeout

Максимальное время жизни сессии в секундах.

Пример:

<max_session_timeout>3600</max_session_timeout>

max_table_num_to_throw

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

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

  • view
  • remote
  • dictionary
  • system

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

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

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

Пример

<max_table_num_to_throw>400</max_table_num_to_throw>

max_table_num_to_warn

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

Пример

<max_table_num_to_warn>400</max_table_num_to_warn>

max_table_size_to_drop

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

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

Примечание

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

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

Пример

<max_table_size_to_drop>0</max_table_size_to_drop>

max_temporary_data_on_disk_size

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

Примечание

Значение 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 использует потоки из глобального пула потоков (Global Thread Pool) для обработки запросов. Если для обработки запроса нет свободного потока, в пул добавляется новый поток. 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>

The following settings can be configured by sub-tags:

SettingDescriptionDefaultNote
databaseName of the database.
tableName of the system table.
engineMergeTree Engine Definition for a system table.Cannot be used if partition_by or order_by defined. If not specified MergeTree is selected by default
partition_byCustom partitioning key for a system table.If engine is specified for system table, partition_by parameter should be specified directly inside 'engine'
ttlSpecifies the table TTL.If engine is specified for system table, ttl parameter should be specified directly inside 'engine'
order_byCustom sorting key for a system table. Can't be used if engine defined.If engine is specified for system table, order_by parameter should be specified directly inside 'engine'
storage_policyName of the storage policy to use for the table (optional).If engine is specified for system table, storage_policy parameter should be specified directly inside 'engine'
settingsAdditional parameters that control the behavior of the MergeTree (optional).If engine is specified for system table, settings parameter should be specified directly inside 'engine'
flush_interval_millisecondsInterval for flushing data from the buffer in memory to the table.7500
max_size_rowsMaximal size in lines for the logs. When the amount of non-flushed logs reaches the max_size, logs are dumped to the disk.1048576
reserved_size_rowsPre-allocated memory size in lines for the logs.8192
buffer_size_rows_flush_thresholdThreshold for amount of lines. If the threshold is reached, flushing logs to the disk is launched in background.max_size_rows / 2
flush_on_crashSets whether logs should be dumped to the disk in case of a crash.false

min_os_cpu_wait_time_ratio_to_drop_connection

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

mlock_executable

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

Примечание

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

Пример

<mlock_executable>false</mlock_executable>

mmap_cache_size

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

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

Примечание

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

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

mutation_workload

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

См. также

mysql_port

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

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

Пример

<mysql_port>9004</mysql_port>

mysql_require_secure_transport

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

openSSL

Конфигурация клиента и сервера SSL.

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

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

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

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

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

opentelemetry_span_log

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

The following settings can be configured by sub-tags:

SettingDescriptionDefaultNote
databaseName of the database.
tableName of the system table.
engineMergeTree Engine Definition for a system table.Cannot be used if partition_by or order_by defined. If not specified MergeTree is selected by default
partition_byCustom partitioning key for a system table.If engine is specified for system table, partition_by parameter should be specified directly inside 'engine'
ttlSpecifies the table TTL.If engine is specified for system table, ttl parameter should be specified directly inside 'engine'
order_byCustom sorting key for a system table. Can't be used if engine defined.If engine is specified for system table, order_by parameter should be specified directly inside 'engine'
storage_policyName of the storage policy to use for the table (optional).If engine is specified for system table, storage_policy parameter should be specified directly inside 'engine'
settingsAdditional parameters that control the behavior of the MergeTree (optional).If engine is specified for system table, settings parameter should be specified directly inside 'engine'
flush_interval_millisecondsInterval for flushing data from the buffer in memory to the table.7500
max_size_rowsMaximal size in lines for the logs. When the amount of non-flushed logs reaches the max_size, logs are dumped to the disk.1048576
reserved_size_rowsPre-allocated memory size in lines for the logs.8192
buffer_size_rows_flush_thresholdThreshold for amount of lines. If the threshold is reached, flushing logs to the disk is launched in background.max_size_rows / 2
flush_on_crashSets whether logs should be dumped to the disk in case of a crash.false

Пример:

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

os_cpu_busy_time_threshold

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

os_threads_nice_value_distributed_cache_tcp_handler

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

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

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

os_threads_nice_value_merge_mutate

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

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

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

os_threads_nice_value_zookeeper_client_send_receive

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

Требуется capability CAP_SYS_NICE, иначе параметр не действует.

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

page_cache_free_memory_ratio

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

page_cache_history_window_ms

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

page_cache_max_size

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

page_cache_min_size

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

page_cache_policy

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

page_cache_shards

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

page_cache_size_ratio

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

part_log

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

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

The following settings can be configured by sub-tags:

SettingDescriptionDefaultNote
databaseName of the database.
tableName of the system table.
engineMergeTree Engine Definition for a system table.Cannot be used if partition_by or order_by defined. If not specified MergeTree is selected by default
partition_byCustom partitioning key for a system table.If engine is specified for system table, partition_by parameter should be specified directly inside 'engine'
ttlSpecifies the table TTL.If engine is specified for system table, ttl parameter should be specified directly inside 'engine'
order_byCustom sorting key for a system table. Can't be used if engine defined.If engine is specified for system table, order_by parameter should be specified directly inside 'engine'
storage_policyName of the storage policy to use for the table (optional).If engine is specified for system table, storage_policy parameter should be specified directly inside 'engine'
settingsAdditional parameters that control the behavior of the MergeTree (optional).If engine is specified for system table, settings parameter should be specified directly inside 'engine'
flush_interval_millisecondsInterval for flushing data from the buffer in memory to the table.7500
max_size_rowsMaximal size in lines for the logs. When the amount of non-flushed logs reaches the max_size, logs are dumped to the disk.1048576
reserved_size_rowsPre-allocated memory size in lines for the logs.8192
buffer_size_rows_flush_thresholdThreshold for amount of lines. If the threshold is reached, flushing logs to the disk is launched in background.max_size_rows / 2
flush_on_crashSets whether logs should be dumped to the disk in case of a crash.false

Пример

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

parts_kill_delay_period

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

parts_kill_delay_period_random_add

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

parts_killer_pool_size

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

path

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

Примечание

Слэш в конце обязателен.

Пример

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

postgresql_port

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

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

Пример

<postgresql_port>9005</postgresql_port>

postgresql_require_secure_transport

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

prefetch_threadpool_pool_size

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

prefetch_threadpool_queue_size

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

prefixes_deserialization_thread_pool_thread_pool_queue_size

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

Примечание

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

prepare_system_log_tables_on_startup

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

primary_index_cache_policy

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

primary_index_cache_prewarm_ratio

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

primary_index_cache_size

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

primary_index_cache_size_ratio

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

process_query_plan_packet

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

Пример

<process_query_plan_packet>true</process_query_plan_packet>

processors_profile_log

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

The following settings can be configured by sub-tags:

SettingDescriptionDefaultNote
databaseName of the database.
tableName of the system table.
engineMergeTree Engine Definition for a system table.Cannot be used if partition_by or order_by defined. If not specified MergeTree is selected by default
partition_byCustom partitioning key for a system table.If engine is specified for system table, partition_by parameter should be specified directly inside 'engine'
ttlSpecifies the table TTL.If engine is specified for system table, ttl parameter should be specified directly inside 'engine'
order_byCustom sorting key for a system table. Can't be used if engine defined.If engine is specified for system table, order_by parameter should be specified directly inside 'engine'
storage_policyName of the storage policy to use for the table (optional).If engine is specified for system table, storage_policy parameter should be specified directly inside 'engine'
settingsAdditional parameters that control the behavior of the MergeTree (optional).If engine is specified for system table, settings parameter should be specified directly inside 'engine'
flush_interval_millisecondsInterval for flushing data from the buffer in memory to the table.7500
max_size_rowsMaximal size in lines for the logs. When the amount of non-flushed logs reaches the max_size, logs are dumped to the disk.1048576
reserved_size_rowsPre-allocated memory size in lines for the logs.8192
buffer_size_rows_flush_thresholdThreshold for amount of lines. If the threshold is reached, flushing logs to the disk is launched in background.max_size_rows / 2
flush_on_crashSets whether logs should be dumped to the disk in case of a crash.false

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

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

prometheus

Публикация метрик для сбора системой Prometheus.

Настройки:

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

Пример

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

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

curl 127.0.0.1:9363/metrics

proxy

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Настройки кэша запросов.

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

ПараметрОписаниеЗначение по умолчанию
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 (см. ниже).

The following settings can be configured by sub-tags:

SettingDescriptionDefaultNote
databaseName of the database.
tableName of the system table.
engineMergeTree Engine Definition for a system table.Cannot be used if partition_by or order_by defined. If not specified MergeTree is selected by default
partition_byCustom partitioning key for a system table.If engine is specified for system table, partition_by parameter should be specified directly inside 'engine'
ttlSpecifies the table TTL.If engine is specified for system table, ttl parameter should be specified directly inside 'engine'
order_byCustom sorting key for a system table. Can't be used if engine defined.If engine is specified for system table, order_by parameter should be specified directly inside 'engine'
storage_policyName of the storage policy to use for the table (optional).If engine is specified for system table, storage_policy parameter should be specified directly inside 'engine'
settingsAdditional parameters that control the behavior of the MergeTree (optional).If engine is specified for system table, settings parameter should be specified directly inside 'engine'
flush_interval_millisecondsInterval for flushing data from the buffer in memory to the table.7500
max_size_rowsMaximal size in lines for the logs. When the amount of non-flushed logs reaches the max_size, logs are dumped to the disk.1048576
reserved_size_rowsPre-allocated memory size in lines for the logs.8192
buffer_size_rows_flush_thresholdThreshold for amount of lines. If the threshold is reached, flushing logs to the disk is launched in background.max_size_rows / 2
flush_on_crashSets whether logs should be dumped to the disk in case of a crash.false

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

Пример

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

query_masking_rules

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

Пример

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

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

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

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

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

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

query_metric_log

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

Включение

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

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

Отключение

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

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

The following settings can be configured by sub-tags:

SettingDescriptionDefaultNote
databaseName of the database.
tableName of the system table.
engineMergeTree Engine Definition for a system table.Cannot be used if partition_by or order_by defined. If not specified MergeTree is selected by default
partition_byCustom partitioning key for a system table.If engine is specified for system table, partition_by parameter should be specified directly inside 'engine'
ttlSpecifies the table TTL.If engine is specified for system table, ttl parameter should be specified directly inside 'engine'
order_byCustom sorting key for a system table. Can't be used if engine defined.If engine is specified for system table, order_by parameter should be specified directly inside 'engine'
storage_policyName of the storage policy to use for the table (optional).If engine is specified for system table, storage_policy parameter should be specified directly inside 'engine'
settingsAdditional parameters that control the behavior of the MergeTree (optional).If engine is specified for system table, settings parameter should be specified directly inside 'engine'
flush_interval_millisecondsInterval for flushing data from the buffer in memory to the table.7500
max_size_rowsMaximal size in lines for the logs. When the amount of non-flushed logs reaches the max_size, logs are dumped to the disk.1048576
reserved_size_rowsPre-allocated memory size in lines for the logs.8192
buffer_size_rows_flush_thresholdThreshold for amount of lines. If the threshold is reached, flushing logs to the disk is launched in background.max_size_rows / 2
flush_on_crashSets whether logs should be dumped to the disk in case of a crash.false

query_thread_log

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

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

The following settings can be configured by sub-tags:

SettingDescriptionDefaultNote
databaseName of the database.
tableName of the system table.
engineMergeTree Engine Definition for a system table.Cannot be used if partition_by or order_by defined. If not specified MergeTree is selected by default
partition_byCustom partitioning key for a system table.If engine is specified for system table, partition_by parameter should be specified directly inside 'engine'
ttlSpecifies the table TTL.If engine is specified for system table, ttl parameter should be specified directly inside 'engine'
order_byCustom sorting key for a system table. Can't be used if engine defined.If engine is specified for system table, order_by parameter should be specified directly inside 'engine'
storage_policyName of the storage policy to use for the table (optional).If engine is specified for system table, storage_policy parameter should be specified directly inside 'engine'
settingsAdditional parameters that control the behavior of the MergeTree (optional).If engine is specified for system table, settings parameter should be specified directly inside 'engine'
flush_interval_millisecondsInterval for flushing data from the buffer in memory to the table.7500
max_size_rowsMaximal size in lines for the logs. When the amount of non-flushed logs reaches the max_size, logs are dumped to the disk.1048576
reserved_size_rowsPre-allocated memory size in lines for the logs.8192
buffer_size_rows_flush_thresholdThreshold for amount of lines. If the threshold is reached, flushing logs to the disk is launched in background.max_size_rows / 2
flush_on_crashSets whether logs should be dumped to the disk in case of a 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 (см. ниже).

The following settings can be configured by sub-tags:

SettingDescriptionDefaultNote
databaseName of the database.
tableName of the system table.
engineMergeTree Engine Definition for a system table.Cannot be used if partition_by or order_by defined. If not specified MergeTree is selected by default
partition_byCustom partitioning key for a system table.If engine is specified for system table, partition_by parameter should be specified directly inside 'engine'
ttlSpecifies the table TTL.If engine is specified for system table, ttl parameter should be specified directly inside 'engine'
order_byCustom sorting key for a system table. Can't be used if engine defined.If engine is specified for system table, order_by parameter should be specified directly inside 'engine'
storage_policyName of the storage policy to use for the table (optional).If engine is specified for system table, storage_policy parameter should be specified directly inside 'engine'
settingsAdditional parameters that control the behavior of the MergeTree (optional).If engine is specified for system table, settings parameter should be specified directly inside 'engine'
flush_interval_millisecondsInterval for flushing data from the buffer in memory to the table.7500
max_size_rowsMaximal size in lines for the logs. When the amount of non-flushed logs reaches the max_size, logs are dumped to the disk.1048576
reserved_size_rowsPre-allocated memory size in lines for the logs.8192
buffer_size_rows_flush_thresholdThreshold for amount of lines. If the threshold is reached, flushing logs to the disk is launched in background.max_size_rows / 2
flush_on_crashSets whether logs should be dumped to the disk in case of a crash.false

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

Пример

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

remap_executable

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

Примечание

Эта функция находится на стадии активного эксперимента.

Пример:

<remap_executable>false</remap_executable>

remote_servers

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

Пример

<remote_servers incl="clickhouse_remote_servers" />

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

См. также

remote_url_allow_hosts

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

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

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

Например:

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

replica_group_name

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

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

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

Пример

<replica_group_name>backups</replica_group_name>

replicated_fetches_http_connection_timeout

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

replicated_fetches_http_receive_timeout

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

replicated_fetches_http_send_timeout

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

replicated_merge_tree

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

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

Пример

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

restore_threads

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

s3_credentials_provider_max_cache_size

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

s3_max_redirects

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

s3_retry_attempts

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

s3queue_disable_streaming

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

s3queue_log

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

The following settings can be configured by sub-tags:

SettingDescriptionDefaultNote
databaseName of the database.
tableName of the system table.
engineMergeTree Engine Definition for a system table.Cannot be used if partition_by or order_by defined. If not specified MergeTree is selected by default
partition_byCustom partitioning key for a system table.If engine is specified for system table, partition_by parameter should be specified directly inside 'engine'
ttlSpecifies the table TTL.If engine is specified for system table, ttl parameter should be specified directly inside 'engine'
order_byCustom sorting key for a system table. Can't be used if engine defined.If engine is specified for system table, order_by parameter should be specified directly inside 'engine'
storage_policyName of the storage policy to use for the table (optional).If engine is specified for system table, storage_policy parameter should be specified directly inside 'engine'
settingsAdditional parameters that control the behavior of the MergeTree (optional).If engine is specified for system table, settings parameter should be specified directly inside 'engine'
flush_interval_millisecondsInterval for flushing data from the buffer in memory to the table.7500
max_size_rowsMaximal size in lines for the logs. When the amount of non-flushed logs reaches the max_size, logs are dumped to the disk.1048576
reserved_size_rowsPre-allocated memory size in lines for the logs.8192
buffer_size_rows_flush_thresholdThreshold for amount of lines. If the threshold is reached, flushing logs to the disk is launched in background.max_size_rows / 2
flush_on_crashSets whether logs should be dumped to the disk in case of a crash.false

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

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

send_crash_reports

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

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

Ключи:

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

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

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

series_keeper_path

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

show_addresses_in_stack_traces

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

shutdown_wait_backups_and_restores

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

shutdown_wait_unfinished

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

shutdown_wait_unfinished_queries

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

skip_binary_checksum_checks

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

ssh_server

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

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

Пример:

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

startup_mv_delay_ms

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

storage_configuration

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

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

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

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

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

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

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

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

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

Настройка политик

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

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

Для volume_priority:

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

storage_connections_soft_limit

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

storage_connections_store_limit

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

storage_connections_warn_limit

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

storage_metadata_write_full_object_key

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

storage_shared_set_join_use_inner_uuid

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

table_engines_require_grant

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

Примечание

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

tables_loader_background_pool_size

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

Примечание

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

tables_loader_foreground_pool_size

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

Примечание

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

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

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

Примечание

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

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

The following settings can be configured by sub-tags:

SettingDescriptionDefaultNote
databaseName of the database.
tableName of the system table.
engineMergeTree Engine Definition for a system table.Cannot be used if partition_by or order_by defined. If not specified MergeTree is selected by default
partition_byCustom partitioning key for a system table.If engine is specified for system table, partition_by parameter should be specified directly inside 'engine'
ttlSpecifies the table TTL.If engine is specified for system table, ttl parameter should be specified directly inside 'engine'
order_byCustom sorting key for a system table. Can't be used if engine defined.If engine is specified for system table, order_by parameter should be specified directly inside 'engine'
storage_policyName of the storage policy to use for the table (optional).If engine is specified for system table, storage_policy parameter should be specified directly inside 'engine'
settingsAdditional parameters that control the behavior of the MergeTree (optional).If engine is specified for system table, settings parameter should be specified directly inside 'engine'
flush_interval_millisecondsInterval for flushing data from the buffer in memory to the table.7500
max_size_rowsMaximal size in lines for the logs. When the amount of non-flushed logs reaches the max_size, logs are dumped to the disk.1048576
reserved_size_rowsPre-allocated memory size in lines for the logs.8192
buffer_size_rows_flush_thresholdThreshold for amount of lines. If the threshold is reached, flushing logs to the disk is launched in background.max_size_rows / 2
flush_on_crashSets whether logs should be dumped to the disk in case of a crash.false

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

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

Пример

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

thread_pool_queue_size

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

Примечание

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

Пример

<thread_pool_queue_size>12000</thread_pool_queue_size>

threadpool_local_fs_reader_pool_size

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

threadpool_local_fs_reader_queue_size

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

threadpool_remote_fs_reader_pool_size

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

threadpool_remote_fs_reader_queue_size

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

threadpool_writer_pool_size

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

threadpool_writer_queue_size

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

throw_on_unknown_workload

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

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

Пример

<throw_on_unknown_workload>true</throw_on_unknown_workload>

См. также

timezone

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

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

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

Пример

<timezone>Asia/Istanbul</timezone>

См. также

tmp_path

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

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

Пример

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

tmp_policy

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

Примечание

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

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

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

Пример

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

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

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

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

top_level_domains_list

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

Например:

<top_level_domains_lists>
    <public_suffix_list>/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.

The following settings can be configured by sub-tags:

SettingDescriptionDefaultNote
databaseName of the database.
tableName of the system table.
engineMergeTree Engine Definition for a system table.Cannot be used if partition_by or order_by defined. If not specified MergeTree is selected by default
partition_byCustom partitioning key for a system table.If engine is specified for system table, partition_by parameter should be specified directly inside 'engine'
ttlSpecifies the table TTL.If engine is specified for system table, ttl parameter should be specified directly inside 'engine'
order_byCustom sorting key for a system table. Can't be used if engine defined.If engine is specified for system table, order_by parameter should be specified directly inside 'engine'
storage_policyName of the storage policy to use for the table (optional).If engine is specified for system table, storage_policy parameter should be specified directly inside 'engine'
settingsAdditional parameters that control the behavior of the MergeTree (optional).If engine is specified for system table, settings parameter should be specified directly inside 'engine'
flush_interval_millisecondsInterval for flushing data from the buffer in memory to the table.7500
max_size_rowsMaximal size in lines for the logs. When the amount of non-flushed logs reaches the max_size, logs are dumped to the disk.1048576
reserved_size_rowsPre-allocated memory size in lines for the logs.8192
buffer_size_rows_flush_thresholdThreshold for amount of lines. If the threshold is reached, flushing logs to the disk is launched in background.max_size_rows / 2
flush_on_crashSets whether logs should be dumped to the disk in case of a 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‑функций.

Пример

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

user_directories

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

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

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

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

Примеры

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

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

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

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

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

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

Пример

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

user_files_path

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

Пример

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

user_scripts_path

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

Пример

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

Тип:

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

users_config

Путь к файлу, в котором определяются:

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

Пример

<users_config>users.xml</users_config>

validate_tcp_client_information

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

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

<validate_tcp_client_information>false</validate_tcp_client_information>

vector_similarity_index_cache_max_entries

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

vector_similarity_index_cache_policy

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

vector_similarity_index_cache_size

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

Примечание

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

vector_similarity_index_cache_size_ratio

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

wait_dictionaries_load_at_startup

Этот параметр определяет поведение, если dictionaries_lazy_load равен false. (Если dictionaries_lazy_load равен true, этот параметр ни на что не влияет.)

Если wait_dictionaries_load_at_startup равен false, сервер начнет загружать все словари при старте и будет параллельно принимать подключения. Когда словарь впервые используется в запросе, запрос будет ждать, пока словарь не загрузится, если он еще не загружен. Установка wait_dictionaries_load_at_startup в false может ускорить запуск ClickHouse, однако некоторые запросы могут выполняться медленнее (поскольку им придется ждать загрузки некоторых словарей).

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

Пример

<wait_dictionaries_load_at_startup>true</wait_dictionaries_load_at_startup>

workload_path

Каталог, в котором хранятся все запросы CREATE WORKLOAD и CREATE RESOURCE. По умолчанию используется папка /workload/ в рабочем каталоге сервера.

Пример

<workload_path>/var/lib/clickhouse/workload/</workload_path>

См. также

workload_zookeeper_path

Путь к узлу ZooKeeper, который используется как хранилище для всех запросов CREATE WORKLOAD и CREATE RESOURCE. Для обеспечения согласованности все SQL-определения сохраняются как значение одного znode. По умолчанию ZooKeeper не используется, и определения хранятся на диске.

Пример

<workload_zookeeper_path>/clickhouse/workload/definitions.sql</workload_zookeeper_path>

См. также

zookeeper

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

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

ПараметрОписание
nodeEndpoint ZooKeeper. Можно задать несколько endpoint'ов. Например, <node index="1"><host>example_host</host><port>2181</port></node>. Атрибут index задает порядок узлов при попытке подключения к кластеру ZooKeeper.
session_timeout_msМаксимальный таймаут клиентской сессии в миллисекундах.
operation_timeout_msМаксимальный таймаут одной операции в миллисекундах.
root (optional)Znode, который используется как корневой для znode-ов, используемых сервером ClickHouse.
fallback_session_lifetime.min (optional)Минимальный предел времени жизни сессии ZooKeeper с резервным узлом, когда основной недоступен (балансировка нагрузки). Задается в секундах. По умолчанию: 3 часа.
fallback_session_lifetime.max (optional)Максимальный предел времени жизни сессии ZooKeeper с резервным узлом, когда основной недоступен (балансировка нагрузки). Задается в секундах. По умолчанию: 6 часов.
identity (optional)Пользователь и пароль, требуемые ZooKeeper для доступа к запрашиваемым znode-ам.
use_compression (optional)Включает сжатие в протоколе Keeper, если установлено значение true.

Также существует параметр zookeeper_load_balancing (необязательный), который позволяет выбрать алгоритм выбора узла ZooKeeper:

Algorithm NameDescription
randomслучайным образом выбирает один из узлов ZooKeeper.
in_orderвыбирает первый узел ZooKeeper, если он недоступен — второй и так далее.
nearest_hostnameвыбирает узел ZooKeeper с именем хоста, наиболее похожим на имя хоста сервера; имя хоста сравнивается по префиксу.
hostname_levenshtein_distanceаналогично nearest_hostname, но сравнивает имя хоста с использованием расстояния Левенштейна.
first_or_randomвыбирает первый узел ZooKeeper, если он недоступен — случайным образом выбирает один из оставшихся узлов ZooKeeper.
round_robinвыбирает первый узел ZooKeeper, при переподключении выбирает следующий.

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

<zookeeper>
    <node>
        <host>example1</host>
        <port>2181</port>
    </node>
    <node>
        <host>example2</host>
        <port>2181</port>
    </node>
    <session_timeout_ms>30000</session_timeout_ms>
    <operation_timeout_ms>10000</operation_timeout_ms>
    <!-- Необязательный параметр. Суффикс chroot. Должен существовать. -->
    <root>/path/to/zookeeper/node</root>
    <!-- Необязательный параметр. Строка digest ACL для ZooKeeper. -->
    <identity>user:password</identity>
    <!--<zookeeper_load_balancing>random / in_order / nearest_hostname / hostname_levenshtein_distance / first_or_random / round_robin</zookeeper_load_balancing>-->
    <zookeeper_load_balancing>random</zookeeper_load_balancing>
</zookeeper>

См. также

zookeeper_log

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

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

The following settings can be configured by sub-tags:

SettingDescriptionDefaultNote
databaseName of the database.
tableName of the system table.
engineMergeTree Engine Definition for a system table.Cannot be used if partition_by or order_by defined. If not specified MergeTree is selected by default
partition_byCustom partitioning key for a system table.If engine is specified for system table, partition_by parameter should be specified directly inside 'engine'
ttlSpecifies the table TTL.If engine is specified for system table, ttl parameter should be specified directly inside 'engine'
order_byCustom sorting key for a system table. Can't be used if engine defined.If engine is specified for system table, order_by parameter should be specified directly inside 'engine'
storage_policyName of the storage policy to use for the table (optional).If engine is specified for system table, storage_policy parameter should be specified directly inside 'engine'
settingsAdditional parameters that control the behavior of the MergeTree (optional).If engine is specified for system table, settings parameter should be specified directly inside 'engine'
flush_interval_millisecondsInterval for flushing data from the buffer in memory to the table.7500
max_size_rowsMaximal size in lines for the logs. When the amount of non-flushed logs reaches the max_size, logs are dumped to the disk.1048576
reserved_size_rowsPre-allocated memory size in lines for the logs.8192
buffer_size_rows_flush_thresholdThreshold for amount of lines. If the threshold is reached, flushing logs to the disk is launched in background.max_size_rows / 2
flush_on_crashSets whether logs should be dumped to the disk in case of a 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>