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

Глобальные настройки сервера

В этом разделе содержатся описания настроек сервера, которые невозможно изменить на уровне сессии или запроса. Эти настройки хранятся в файле config.xml на сервере ClickHouse. Для получения дополнительной информации о файлах конфигурации в ClickHouse см. "Файлы конфигурации".

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

allow_use_jemalloc_memory

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

Тип: Bool

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

asynchronous_heavy_metrics_update_period_s

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

Тип: UInt32

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

asynchronous_metric_log

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

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

Включение

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

Отключение

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

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_update_period_s

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

Тип: UInt32

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

auth_use_forwarded_address

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

примечание

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

Тип: Bool

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

background_buffer_flush_schedule_pool_size

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

Тип: UInt64

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

background_common_pool_size

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

Тип: UInt64

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

background_distributed_schedule_pool_size

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

Тип: UInt64

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

background_fetches_pool_size

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

Тип: UInt64

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

background_merges_mutations_concurrency_ratio

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

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

примечание

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

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

Тип: Float

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

background_merges_mutations_scheduling_policy

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

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

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

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

Тип: String

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

background_message_broker_schedule_pool_size

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

Тип: UInt64

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

background_move_pool_size

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

Тип: UInt64

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

background_schedule_pool_size

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

Тип: UInt64

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

backups

Настройки для резервных копий, используемые при записи BACKUP TO File().

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

НастройкаОписаниеПо умолчанию
allowed_pathПуть для резервного копирования при использовании File(). Эта настройка должна быть установлена для использования File. Путь может быть относительным к директории экземпляра или абсолютным.true
remove_backup_files_after_failureЕсли команда BACKUP завершится неудачей, ClickHouse попытается удалить файлы, уже скопированные в резервную копию до момента неудачи, в противном случае они останутся как есть.true

Эта настройка по умолчанию конфигурируется как:

backup_threads

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

Тип: UInt64

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

backups_io_thread_pool_queue_size

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

примечание

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

Тип: UInt64

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

bcrypt_workfactor

Фактор работы для типа аутентификации bcrypt_password, который использует алгоритм Bcrypt.

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

cache_size_to_ram_max_ratio

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

Тип: Double

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

concurrent_threads_soft_limit_num

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

примечание

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

Тип: UInt64

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

concurrent_threads_soft_limit_ratio_to_cores

То же, что и concurrent_threads_soft_limit_num, но с соотношением к ядрам.

Тип: UInt64

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

concurrent_threads_scheduler

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

Тип: String

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

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

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

default_database

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

Тип: String

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

disable_internal_dns_cache

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

Тип: Bool

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

dns_cache_max_entries

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

Тип: UInt64

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

dns_cache_update_period

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

Тип: Int32

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

dns_max_consecutive_failures

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

Тип: UInt32

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

index_mark_cache_policy

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

Тип: String

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

index_mark_cache_size

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

примечание

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

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

Тип: UInt64

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

index_mark_cache_size_ratio

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

Тип: Double

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

index_uncompressed_cache_policy

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

Тип: String

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

index_uncompressed_cache_size

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

примечание

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

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

Тип: UInt64

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

index_uncompressed_cache_size_ratio

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

Тип: Double

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

vector_similarity_index_cache_policy

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

Тип: String

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

vector_similarity_index_cache_size

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

примечание

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

Тип: UInt64

По умолчанию: 5368709120 (= 5 GiB)

vector_similarity_index_cache_size_ratio

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

Тип: Double

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

vector_similarity_index_cache_max_entries

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

Тип: UInt64

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

io_thread_pool_queue_size

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

примечание

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

Тип: UInt64

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

mark_cache_policy

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

Тип: String

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

mark_cache_size

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

примечание

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

Тип: UInt64

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

mark_cache_size_ratio

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

Тип: Double

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

query_condition_cache_policy

Название политики кэша условий запроса.

Тип: String

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

query_condition_cache_size

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

примечание

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

Тип: UInt64

По умолчанию: 1073741824 (100 MiB)

query_condition_cache_size_ratio

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

Тип: Double

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

max_backup_bandwidth_for_server

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

Тип: UInt64

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

max_backups_io_thread_pool_free_size

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

Тип: UInt64

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

max_backups_io_thread_pool_size

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

Тип: UInt64

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

max_concurrent_queries

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

См. также:

примечание

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

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

Тип: UInt64

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

max_concurrent_insert_queries

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

примечание

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

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

Тип: UInt64

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

max_concurrent_select_queries

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

примечание

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

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

Тип: UInt64

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

max_waiting_queries

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

примечание

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

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

примечание

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

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

Тип: UInt64

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

max_connections

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

Тип: Int32

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

max_io_thread_pool_free_size

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

Тип: UInt64

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

max_io_thread_pool_size

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

Тип: UInt64

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

max_local_read_bandwidth_for_server

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

примечание

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

Тип: UInt64

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

max_local_write_bandwidth_for_server

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

примечание

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

Тип: UInt64

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

max_partition_size_to_drop

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

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

примечание

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

Это ограничение не ограничивает удаление и очистку таблиц, см. max_table_size_to_drop

Пример

Тип: UInt64

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

max_remote_read_network_bandwidth_for_server

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

примечание

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

Тип: UInt64

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

max_remote_write_network_bandwidth_for_server

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

примечание

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

Тип: UInt64

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

max_server_memory_usage

Ограничение на общее использование памяти. Значение max_server_memory_usage по умолчанию рассчитывается как memory_amount * max_server_memory_usage_to_ram_ratio.

примечание

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

Тип: UInt64

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

max_server_memory_usage_to_ram_ratio

То же, что и max_server_memory_usage, но с соотношением к физической оперативной памяти. Позволяет уменьшить использование памяти в системах с небольшим объёмом памяти.

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

примечание

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

Тип: Double

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

max_build_vector_similarity_index_thread_pool_size

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

примечание

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

Тип: UInt64

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

cgroups_memory_usage_observer_wait_time

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

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

см. настройки:

Тип: UInt64

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

cgroup_memory_watcher_hard_limit_ratio

Указывает "жёсткий" порог объёма потребляемой памяти процессом сервера в соответствии с cgroups, после которого максимальное потребление памяти сервером регулируется до порогового значения.

См. настройки:

Тип: Double

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

cgroup_memory_watcher_soft_limit_ratio

Указывает "мягкий" порог объёма потребляемой памяти процессом сервера в соответствии с cgroups, после которого арены в jemalloc очищаются.

См. настройки:

Тип: Double

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

max_database_num_to_warn

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

Пример

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

max_table_num_to_warn

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

Пример

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

max_view_num_to_warn

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

Пример

Тип: UInt64

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

max_dictionary_num_to_warn

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

Пример

Тип: UInt64

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

max_part_num_to_warn

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

Пример

Тип: UInt64

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

max_pending_mutations_to_warn

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

Пример

Тип: UInt64

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

max_table_num_to_throw

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

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

  • view
  • remote
  • dictionary
  • system

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

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

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

Пример

Тип: UInt64

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

max_replicated_table_num_to_throw

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

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

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

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

Пример

Тип: UInt64

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

max_dictionary_num_to_throw

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

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

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

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

Пример

Тип: UInt64

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

max_view_num_to_throw

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

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

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

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

Пример

Тип: UInt64

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

max_database_num_to_throw

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

примечание

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

Пример

Тип: UInt64

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

max_temporary_data_on_disk_size

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

примечание

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

См. также:

Тип: UInt64

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

max_thread_pool_free_size

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

Пример

Тип: UInt64

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

max_thread_pool_size

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

Пример

Тип: UInt64

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

mmap_cache_size

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

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

Системная таблицаМетрика
system.metrics и system.metric_logMMappedFiles и MMappedFileBytes
system.asynchronous_metrics_logMMapCacheCells
system.events, system.processes, system.query_log, system.query_thread_log, system.query_views_logCreatedReadBufferMMap, CreatedReadBufferMMapFailed, MMappedFileCacheHits, MMappedFileCacheMisses
примечание

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

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

Тип: UInt64

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

restore_threads

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

Тип: UInt64

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

show_addresses_in_stack_traces

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

Тип: Bool

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

shutdown_wait_unfinished_queries

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

Тип: Bool

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

table_engines_require_grant

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

примечание

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

Тип: Bool

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

temporary_data_in_cache

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

примечание

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

Пример

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

Тип: String

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

thread_pool_queue_size

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

примечание

Значение 0 означает неограниченно.

Пример

Тип: UInt64

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

tmp_policy

Политика для хранения временных данных. Для получения дополнительной информации см. документацию MergeTree Table Engine.

примечание
  • Только одна опция может быть использована для настройки хранения временных данных: tmp_path , tmp_policy, temporary_data_in_cache.
  • move_factor, keep_free_space_bytes,max_data_part_size_bytes игнорируются.
  • Политика должна иметь точно один том с локальными дисками.

Пример

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

Тип: String

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

uncompressed_cache_policy

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

Тип: String

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

uncompressed_cache_size

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

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

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

примечание

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

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

Тип: UInt64

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

uncompressed_cache_size_ratio

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

Тип: Double

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

builtin_dictionaries_reload_interval

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

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

Пример

Тип: UInt64

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

compression

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

примечание

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

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

Поля <case>:

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

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

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

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

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

Пример

encryption

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

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

Пример

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

примечание

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

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

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

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

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

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

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

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

примечание

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

error_log

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

Включение

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

Отключение

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

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

custom_settings_prefixes

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

Пример

См. также

core_dump

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

примечание

Жёсткий предел настраивается через системные средства

Пример

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

database_atomic_delay_before_drop_table_sec

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

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

database_catalog_unused_dir_hide_timeout_sec

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

примечание

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

По умолчанию: 3600 (1 час)

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 дням.

По умолчанию: 2592000 (30 дней).

database_catalog_drop_error_cooldown_sec

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

Тип: UInt64

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

database_catalog_drop_table_concurrency

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

Тип: UInt64

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

database_catalog_unused_dir_cleanup_period_sec

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

примечание

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

По умолчанию: 86400 (1 день).

default_profile

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

Пример

default_replica_path

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

Пример

default_replica_name

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

Пример

dictionaries_config

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

Путь:

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

См. также:

Пример

user_defined_executable_functions_config

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

Путь:

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

См. также:

Пример

dictionaries_lazy_load

Ленивая загрузка словарей.

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

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

Пример

format_schema_path

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

Пример

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_rollup

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

Для получения более подробной информации смотрите GraphiteMergeTree.

Пример

google_protos_path

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

Пример:

http_handlers

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

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

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

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

ПодтегиОпределение
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_port/https_port

Порт для подключения к серверу через HTTP(s).

  • Если указан https_port, должна быть настроена OpenSSL.
  • Если указан http_port, конфигурация OpenSSL игнорируется даже если она установлена.

Пример

http_server_default_response

Страница, которая отображается по умолчанию при доступе к HTTP(s) серверу ClickHouse. Значение по умолчанию: "Ok." (с переводом строки в конце).

Пример

Открывается https://tabix.io/, когда вы обращаетесь к http://localhost: http_port.

http_options_response

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

Для получения дополнительной информации смотрите OPTIONS.

Пример:

hsts_max_age

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

примечание

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

Пример

mlock_executable

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

примечание

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

Пример

include_from

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

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

Пример

interserver_listen_host

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

примечание

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

Пример

Тип:

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

interserver_http_port

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

Пример

interserver_http_host

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

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

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

Пример

interserver_https_port

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

Пример

interserver_https_host

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

Пример

interserver_http_credentials

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

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

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

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

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

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

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

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

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

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

keep_alive_timeout

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

Пример

max_keep_alive_requests

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

Пример

ldap_servers

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

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

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

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

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

НастройкаОписание
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.

Пример:

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

listen_host

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

Примеры:

listen_try

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

Пример

listen_reuse_port

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

Пример

Тип:

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

listen_backlog

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

Обычно это значение не нужно изменять, так как:

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

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

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

Пример

logger

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

Ключи:

КлючОписание
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Формат логов для консольного вывода. В настоящее время поддерживается только json.
use_syslogДополнительно направлять вывод логов в syslog.
syslog_levelУровень логирования для записи в syslog.

Спецификаторы формата логов

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

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

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

Пример

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

Переопределение уровней

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

syslog

Чтобы дополнительно записывать лог-сообщения в syslog:

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

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

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

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

Пример

Вот пример вывода лога в формате JSON:

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

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

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

Опускание ключей для логов в формате JSON

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

send_crash_reports

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

Включение этой функции особенно приветствуется в тестовых (pre-production) средах.

Сервер должен иметь доступ к публичному интернету через IPv4 (на момент написания Sentry не поддерживает IPv6), чтобы эта функция работала корректно.

Ключи:

КлючОписание
enabledЛогический флаг для включения данной функции, по умолчанию false. Установите true, чтобы разрешить отправку отчетов о сбоях.
send_logical_errorsLOGICAL_ERROR похож на assert, это ошибка в ClickHouse. Этот логический флаг позволяет отправлять такие исключения в Sentry (по умолчанию: false).
endpointВы можете переопределить URL-адрес конечной точки Sentry для отправки отчетов о сбоях. Это может быть как отдельная учетная запись Sentry, так и ваша собственная локально размещённая инстанция Sentry. Используйте Sentry DSN синтаксис.
anonymizeИзбегайте прикрепления имени хоста сервера к отчету о сбоях.
http_proxyНастройка HTTP-прокси для отправки отчетов о сбоях.
debugУстанавливает клиент Sentry в режим отладки.
tmp_pathФайловая система для временного состояния отчетов о сбоях.
environmentПроизвольное имя среды, в которой работает сервер ClickHouse. Оно будет упомянуто в каждом отчете о сбоях. Значение по умолчанию - test или prod в зависимости от версии ClickHouse.

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

ssh_server

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

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

Пример:

tcp_ssh_port

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

Пример:

storage_configuration

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

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

Configuration of disks

Конфигурация disks следует указанной ниже структуре:

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

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

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

Configuration of policies

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

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

Для volume_priority:

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

macros

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

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

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

Пример

replica_group_name

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

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

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

Пример

Тип: String

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

remap_executable

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

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

примечание

Эта функция является экспериментальной.

Пример:

max_open_files

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

примечание

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

Пример

max_session_timeout

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

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

Пример:

max_table_size_to_drop

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

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

примечание

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

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

Пример

По умолчанию: 50 ГБ.

background_pool_size

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

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

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

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

Пример

Тип:

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

merges_mutations_memory_usage_soft_limit

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

примечание

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

Пример

merges_mutations_memory_usage_to_ram_ratio

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

См. также:

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

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, все базы данных загружаются при запуске сервера.

Пример

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

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

Пример

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

tables_loader_foreground_pool_size

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

примечание

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

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

tables_loader_background_pool_size

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

примечание

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

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

merge_tree

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

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

Пример

metric_log

Эта функция отключена по умолчанию.

Включение

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

Отключение

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

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

latency_log

Эта функция отключена по умолчанию.

Включение

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

Отключение

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

replicated_merge_tree

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

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

Пример

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

Пример:

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 не хоста пир-сертификату.false
requireTLSv1Требовать соединение TLSv1. Допустимые значения: true, false.false
requireTLSv1_1Требовать соединение TLSv1.1. Допустимые значения: true, false.false
requireTLSv1_2Требовать соединение TLSv1.2. Допустимые значения: true, false.false
fipsАктивация режима OpenSSL FIPS. Поддерживается, если версия 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

Пример настроек:

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

Пример

path

Путь к директории, содержащей данные.

примечание

Окончательный слэш обязателен.

Пример

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

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

Prometheus

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

Настройки:

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

Пример

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

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_metric_log

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

Включение

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

Отключение

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

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_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_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_views_log

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

Пример

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

Пример

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 содержит следующую секцию настроек:

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

Пример

crash_log

Настройки для работы системной таблицы crash_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 содержит следующую секцию настроек:

custom_cached_disks_base_directory

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

примечание

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

Пример:

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

Пример

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

Пример:

query_masking_rules

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

Пример

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

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

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

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

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

remote_servers

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

Пример

Узнать значение атрибута incl можно в разделе "Файлы конфигурации".

См. также

remote_url_allow_hosts

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

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

  • он должен быть указан точно так же, как в URL, поскольку имя проверяется до разрешения DNS. Например: <host>clickhouse.com</host>
  • если порт явно указан в URL, тогда хост:порт проверяется как единое целое. Например: <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) проверяется.

Например:

timezone

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

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

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

Пример

См. также

tcp_port

Порт для общения с клиентами по протоколу TCP.

Пример

tcp_port_secure

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

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

mysql_port

Порт для общения с клиентами по протоколу MySQL.

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

Пример

postgresql_port

Порт для общения с клиентами по протоколу PostgreSQL.

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

Пример

tmp_path

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

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

Пример

url_scheme_mappers

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

Пример:

user_files_path

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

Пример

user_scripts_path

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

Пример

Тип:

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

user_defined_path

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

Пример

users_config

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

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

Пример

validate_tcp_client_information

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

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

access_control_improvements

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

НастройкаОписаниеПо умолчанию
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Устанавливает количество секунд с последнего доступа, в течение которых роль хранится в кэше ролей.600

Пример:

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

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

wait_dictionaries_load_at_startup

Эта настройка позволяет указать поведение, если dictionaries_lazy_loadfalse. (Если dictionaries_lazy_loadtrue, эта настройка не влияет ни на что.)

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

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

Пример

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

zookeeper

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

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

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

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

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

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

См. также

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 в тестовой среде или на нескольких серверах кластера.

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

Тип: UInt8

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

distributed_ddl

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

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

НастройкаОписаниеЗначение по умолчанию
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 секунд

Пример

access_control_path

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

См. также

Тип: Строка

По умолчанию: /var/lib/clickhouse/access/.

allow_plaintext_password

Определяет, разрешены ли небезопасные типы паролей в открытую (plaintext-password).

По умолчанию: 1 (authType plaintext_password разрешён)

allow_no_password

Определяет, разрешён ли небезопасный тип пароля без пароля (no_password).

По умолчанию: 1 (authType no_password разрешён)

allow_implicit_no_password

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

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

default_session_timeout

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

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

default_password_type

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

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

  • plaintext_password
  • sha256_password
  • double_sha1_password
  • bcrypt_password

user_directories

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

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

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

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

Примеры

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

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

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

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

Пример

top_level_domains_list

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

Например:

Смотрите также:

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

total_memory_profiler_step

Устанавливает размер памяти (в байтах) для трассировки стека на каждом этапе пикового выделения. Данные хранятся в системной таблице system.trace_log с query_id, равным пустой строке.

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

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 отключена.

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

compiled_expression_cache_size

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

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

compiled_expression_cache_elements_size

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

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

display_secrets_in_show_and_select

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

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

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

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

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

proxy

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Приоритет

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

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

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

disable_tunneling_for_https_requests_over_http_proxy

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

no_proxy

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

Пример

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

max_materialized_views_count_for_table

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

примечание

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

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

format_alter_operations_with_parentheses

Если установлено значение true, то операции изменения будут заключены в скобки в отформатированных запросах. Это делает разбор отформатированных запросов на изменение менее неоднозначным.

Тип: Bool

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

ignore_empty_sql_security_in_create_view_query

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

примечание

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

Тип: Bool

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

merge_workload

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

Тип: String

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

Смотрите также

mutation_workload

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

Смотрите также

Тип: String

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

throw_on_unknown_workload

Определяет поведение при доступе к неизвестной РАБОЧЕЙ НАГРУЗКЕ с настройкой запроса 'workload'.

  • Если true, исключение RESOURCE_ACCESS_DENIED выбрасывается из запроса, который пытается получить доступ к неизвестной рабочей нагрузке. Полезно для обеспечения планирования ресурсов для всех запросов после того, как иерархия РАБОЧИХ НАГРУЗОК будет установлена и будет содержать РАБОЧУЮ НАГРУЗКУ по умолчанию.
  • Если false (по умолчанию), предоставляется неограниченный доступ без планирования ресурсов к запросу с установкой 'workload', указывающей на неизвестную РАБОЧУЮ НАГРУЗКУ. Это важно во время настройки иерархии РАБОЧИХ НАГРУЗОК, до того как будет добавлена РАБОЧАЯ НАГРУЗКА по умолчанию.

Смотрите также

Тип: String

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

Пример

workload_path

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

Пример

Смотрите также

workload_zookeeper_path

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

Пример

Смотрите также

max_authentication_methods_per_user

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

примечание

Значение 0 означает неограниченное количество.

Тип: UInt64

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

allow_feature_tier

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

  • 0 - Изменения любых настроек разрешены (экспериментальные, бета, производственные).
  • 1 - Разрешены только изменения для бета и производственных функций. Изменения экспериментальных функций запрещены.
  • 2 - Разрешены только изменения для производственных функций. Изменения экспериментальных или бета функций запрещены.

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

примечание

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

Тип: UInt32

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