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

Глобальные параметры сервера

Этот раздел содержит описания параметров сервера, которые не могут быть изменены на уровне сессии или запроса. Эти параметры хранятся в файле 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
databaseИмя базы данных.
tableИмя системной таблицы.
engineОпределение двигателя MergeTree для системной таблицы.Не может использоваться, если определены partition_by или order_by. Если не указано, по умолчанию выбирается MergeTree
partition_byПользовательский ключ партиционирования для системной таблицы.Если для системной таблицы указан engine, параметр partition_by следует указывать непосредственно внутри 'engine'
ttlОпределяет TTL таблицы.Если для системной таблицы указан engine, параметр ttl следует указывать непосредственно внутри 'engine'
order_byПользовательский ключ сортировки для системной таблицы. Не может использоваться, если определен engine.Если для системной таблицы указан engine, параметр order_by следует указывать непосредственно внутри 'engine'
storage_policyИмя политики хранения, используемой для таблицы (необязательно).Если для системной таблицы указан engine, параметр storage_policy следует указывать непосредственно внутри 'engine'
settingsДополнительные параметры, которые управляют поведением MergeTree (необязательно).Если для системной таблицы указан engine, параметр settings следует указывать непосредственно внутри 'engine'
flush_interval_millisecondsИнтервал для выгрузки данных из буфера в памяти в таблицу.7500
max_size_rowsМаксимальный размер в строках для логов. Когда количество невыгруженных логов достигает max_size, логи сбрасываются на диск.1048576
reserved_size_rowsПредварительно выделенный размер памяти в строках для логов.8192
buffer_size_rows_flush_thresholdПорог для количества строк. Если порог достигнут, в фоне запускается выгрузка логов на диск.max_size_rows / 2
flush_on_crashУстанавливает, следует ли сбрасывать логи на диск в случае сбоя.false

asynchronous_metrics_update_period_s

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

Тип: UInt32

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

auth_use_forwarded_address

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

примечание

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

Тип: Bool

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

background_buffer_flush_schedule_pool_size

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

Тип: UInt64

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

background_common_pool_size

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

Тип: UInt64

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

background_distributed_schedule_pool_size

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

Тип: UInt64

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

background_fetches_pool_size

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

Тип: 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-engine в фоновом режиме.

Тип: 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

Установите максимум отношения размера кеша к ОЗУ. Позволяет уменьшить размер кеша на системах с низкой памятью.

Тип: 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

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

Тип: String

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

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

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

skipping_index_cache_policy

Имя политики кэша пропускающего индекса.

Тип: String

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

skipping_index_cache_size

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

примечание

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

Тип: UInt64

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

skipping_index_cache_size_ratio

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

Тип: Double

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

skipping_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

max_backup_bandwidth_for_server

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

Тип: UInt64

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

max_backups_io_thread_pool_free_size

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

Тип: UInt64

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

max_backups_io_thread_pool_size

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

Это ограничение неRestricts таблицы drop и truncate table, см. 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_table_num_to_throw

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

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

  • представление
  • удаленный
  • словарь
  • системный

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

  • Atomic
  • Обычный
  • Реплицированный
  • Ленивый
примечание

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

Пример

Тип: UInt64

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

max_replicated_table_num_to_throw

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

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

  • Atomic
  • Обычный
  • Реплицированный
  • Ленивый
примечание

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

Пример

Тип: UInt64

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

max_dictionary_num_to_throw

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

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

  • Atomic
  • Обычный
  • Реплицированный
  • Ленивый
примечание

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

Пример

Тип: UInt64

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

max_view_num_to_throw

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

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

  • Atomic
  • Обычный
  • Реплицированный
  • Ленивый
примечание

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

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

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

Системная таблицаМетрика
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 – Уровень сжатия. См. Codecs.
примечание

Вы можете настроить несколько секций <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
databaseИмя базы данных.
tableИмя системной таблицы.
engineОпределение двигателя MergeTree для системной таблицы.Не может использоваться, если определены partition_by или order_by. Если не указано, по умолчанию выбирается MergeTree
partition_byПользовательский ключ партиционирования для системной таблицы.Если для системной таблицы указан engine, параметр partition_by следует указывать непосредственно внутри 'engine'
ttlОпределяет TTL таблицы.Если для системной таблицы указан engine, параметр ttl следует указывать непосредственно внутри 'engine'
order_byПользовательский ключ сортировки для системной таблицы. Не может использоваться, если определен engine.Если для системной таблицы указан engine, параметр order_by следует указывать непосредственно внутри 'engine'
storage_policyИмя политики хранения, используемой для таблицы (необязательно).Если для системной таблицы указан engine, параметр storage_policy следует указывать непосредственно внутри 'engine'
settingsДополнительные параметры, которые управляют поведением MergeTree (необязательно).Если для системной таблицы указан engine, параметр settings следует указывать непосредственно внутри 'engine'
flush_interval_millisecondsИнтервал для выгрузки данных из буфера в памяти в таблицу.7500
max_size_rowsМаксимальный размер в строках для логов. Когда количество невыгруженных логов достигает max_size, логи сбрасываются на диск.1048576
reserved_size_rowsПредварительно выделенный размер памяти в строках для логов.8192
buffer_size_rows_flush_thresholdПорог для количества строк. Если порог достигнут, в фоне запускается выгрузка логов на диск.max_size_rows / 2
flush_on_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 будет включен, а max-age — это число, которое вы установили.

Пример

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

Пример

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 пользователя устанавливается равным 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}' шаблона на фактическое имя пользователя и DN привязки во время поиска LDAP.
scopeОбласть поиска LDAP. Допустимые значения: base, one_level, children, subtree (по умолчанию).
search_filterШаблон, используемый для построения фильтра поиска для поиска LDAP. Результирующий фильтр будет построен путем замены всех подстрок \{user_name\}, \{bind_dn\} и \{base_dn\} шаблона на фактическое имя пользователя, DN привязки и базовый DN во время поиска LDAP. Заметьте, что специальные символы должны быть правильно экранированы в XML.

Пример:

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

listen_host

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

Примеры:

listen_try

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

Пример

listen_reuse_port

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

Пример

Тип:

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

listen_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Сокращенное название месяца, например, окт (в зависимости от локали)Jul
%hСиноним %@bJul
%BПолное название месяца, например, октябрь (в зависимости от локали)July
%mМесяц в десятичном формате (диапазон [01,12])07
%UНомер недели в году в десятичном формате (воскресенье — первый день недели) (диапазон [00,53])27
%WНомер недели в году в десятичном формате (понедельник — первый день недели) (диапазон [00,53])27
%VНомер ISO 8601 недели (диапазон [01,53])27
%jНомер дня в году в десятичном формате (диапазон [001,366])187
%dДень месяца в виде десятичного числа с нулями (диапазон [01,31]). Однозначное число предшествует нулю.06
%eДень месяца в виде десятичного числа с пробелами (диапазон [1,31]). Однозначное число предшествует пробелу.&nbsp; 6
%aСокращенное название дня недели, например, пт (в зависимости от локали)Thu
%AПолное название дня недели, например, пятница (в зависимости от локали)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Стандартная строка даты и времени, например, Вс Окт 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Ключевое слово системного журнала. Должен быть указан в верхнем регистре с префиксом "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.

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

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

Ключи:

КлючОписание
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

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

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

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

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

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

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

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

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

Подтеги выше определяют следующие настройки для 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Отключает перемещение данных с истекшим временем жизни при вставке. По умолчанию (если включено), если мы вставляем кусок данных, который уже истек в соответствии с правилом перемещения по времени жизни, он немедленно перемещается на том / диске, указанном в правиле перемещения. Это может значительно замедлить вставку в случае, если целевой том / диск медленный (например, S3). Если отключено, истекшая часть данных записывается на резервный том и затем немедленно перемещается на том, указанном в правиле для истекшего времени жизни.
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-запросы будут ждать только реплик в одной группе.

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

Пример

Тип: строка

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

remap_executable

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

По умолчанию: 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.
  • Вы можете увеличивать количество потоков во время работы.
  • Чтобы уменьшить количество потоков, необходимо перезапустить сервер.
  • Настраивая эту настройку, вы управляете загрузкой ЦП и диска.
осторожно

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

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

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

примечание

Значение 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
databaseИмя базы данных.
tableИмя системной таблицы.
engineОпределение двигателя MergeTree для системной таблицы.Не может использоваться, если определены partition_by или order_by. Если не указано, по умолчанию выбирается MergeTree
partition_byПользовательский ключ партиционирования для системной таблицы.Если для системной таблицы указан engine, параметр partition_by следует указывать непосредственно внутри 'engine'
ttlОпределяет TTL таблицы.Если для системной таблицы указан engine, параметр ttl следует указывать непосредственно внутри 'engine'
order_byПользовательский ключ сортировки для системной таблицы. Не может использоваться, если определен engine.Если для системной таблицы указан engine, параметр order_by следует указывать непосредственно внутри 'engine'
storage_policyИмя политики хранения, используемой для таблицы (необязательно).Если для системной таблицы указан engine, параметр storage_policy следует указывать непосредственно внутри 'engine'
settingsДополнительные параметры, которые управляют поведением MergeTree (необязательно).Если для системной таблицы указан engine, параметр settings следует указывать непосредственно внутри 'engine'
flush_interval_millisecondsИнтервал для выгрузки данных из буфера в памяти в таблицу.7500
max_size_rowsМаксимальный размер в строках для логов. Когда количество невыгруженных логов достигает max_size, логи сбрасываются на диск.1048576
reserved_size_rowsПредварительно выделенный размер памяти в строках для логов.8192
buffer_size_rows_flush_thresholdПорог для количества строк. Если порог достигнут, в фоне запускается выгрузка логов на диск.max_size_rows / 2
flush_on_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
databaseИмя базы данных.
tableИмя системной таблицы.
engineОпределение двигателя MergeTree для системной таблицы.Не может использоваться, если определены partition_by или order_by. Если не указано, по умолчанию выбирается MergeTree
partition_byПользовательский ключ партиционирования для системной таблицы.Если для системной таблицы указан engine, параметр partition_by следует указывать непосредственно внутри 'engine'
ttlОпределяет TTL таблицы.Если для системной таблицы указан engine, параметр ttl следует указывать непосредственно внутри 'engine'
order_byПользовательский ключ сортировки для системной таблицы. Не может использоваться, если определен engine.Если для системной таблицы указан engine, параметр order_by следует указывать непосредственно внутри 'engine'
storage_policyИмя политики хранения, используемой для таблицы (необязательно).Если для системной таблицы указан engine, параметр storage_policy следует указывать непосредственно внутри 'engine'
settingsДополнительные параметры, которые управляют поведением MergeTree (необязательно).Если для системной таблицы указан engine, параметр settings следует указывать непосредственно внутри 'engine'
flush_interval_millisecondsИнтервал для выгрузки данных из буфера в памяти в таблицу.7500
max_size_rowsМаксимальный размер в строках для логов. Когда количество невыгруженных логов достигает max_size, логи сбрасываются на диск.1048576
reserved_size_rowsПредварительно выделенный размер памяти в строках для логов.8192
buffer_size_rows_flush_thresholdПорог для количества строк. Если порог достигнут, в фоне запускается выгрузка логов на диск.max_size_rows / 2
flush_on_crashУстанавливает, следует ли сбрасывать логи на диск в случае сбоя.false

Пример:

part_log

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

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

The following settings can be configured by sub-tags:

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

Пример

path

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

примечание

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

Пример

processors_profile_log

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

The following settings can be configured by sub-tags:

SettingDescriptionDefaultNote
databaseИмя базы данных.
tableИмя системной таблицы.
engineОпределение двигателя MergeTree для системной таблицы.Не может использоваться, если определены partition_by или order_by. Если не указано, по умолчанию выбирается MergeTree
partition_byПользовательский ключ партиционирования для системной таблицы.Если для системной таблицы указан engine, параметр partition_by следует указывать непосредственно внутри 'engine'
ttlОпределяет TTL таблицы.Если для системной таблицы указан engine, параметр ttl следует указывать непосредственно внутри 'engine'
order_byПользовательский ключ сортировки для системной таблицы. Не может использоваться, если определен engine.Если для системной таблицы указан engine, параметр order_by следует указывать непосредственно внутри 'engine'
storage_policyИмя политики хранения, используемой для таблицы (необязательно).Если для системной таблицы указан engine, параметр storage_policy следует указывать непосредственно внутри 'engine'
settingsДополнительные параметры, которые управляют поведением MergeTree (необязательно).Если для системной таблицы указан engine, параметр settings следует указывать непосредственно внутри 'engine'
flush_interval_millisecondsИнтервал для выгрузки данных из буфера в памяти в таблицу.7500
max_size_rowsМаксимальный размер в строках для логов. Когда количество невыгруженных логов достигает max_size, логи сбрасываются на диск.1048576
reserved_size_rowsПредварительно выделенный размер памяти в строках для логов.8192
buffer_size_rows_flush_thresholdПорог для количества строк. Если порог достигнут, в фоне запускается выгрузка логов на диск.max_size_rows / 2
flush_on_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
databaseИмя базы данных.
tableИмя системной таблицы.
engineОпределение двигателя MergeTree для системной таблицы.Не может использоваться, если определены partition_by или order_by. Если не указано, по умолчанию выбирается MergeTree
partition_byПользовательский ключ партиционирования для системной таблицы.Если для системной таблицы указан engine, параметр partition_by следует указывать непосредственно внутри 'engine'
ttlОпределяет TTL таблицы.Если для системной таблицы указан engine, параметр ttl следует указывать непосредственно внутри 'engine'
order_byПользовательский ключ сортировки для системной таблицы. Не может использоваться, если определен engine.Если для системной таблицы указан engine, параметр order_by следует указывать непосредственно внутри 'engine'
storage_policyИмя политики хранения, используемой для таблицы (необязательно).Если для системной таблицы указан engine, параметр storage_policy следует указывать непосредственно внутри 'engine'
settingsДополнительные параметры, которые управляют поведением MergeTree (необязательно).Если для системной таблицы указан engine, параметр settings следует указывать непосредственно внутри 'engine'
flush_interval_millisecondsИнтервал для выгрузки данных из буфера в памяти в таблицу.7500
max_size_rowsМаксимальный размер в строках для логов. Когда количество невыгруженных логов достигает max_size, логи сбрасываются на диск.1048576
reserved_size_rowsПредварительно выделенный размер памяти в строках для логов.8192
buffer_size_rows_flush_thresholdПорог для количества строк. Если порог достигнут, в фоне запускается выгрузка логов на диск.max_size_rows / 2
flush_on_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
databaseИмя базы данных.
tableИмя системной таблицы.
engineОпределение двигателя MergeTree для системной таблицы.Не может использоваться, если определены partition_by или order_by. Если не указано, по умолчанию выбирается MergeTree
partition_byПользовательский ключ партиционирования для системной таблицы.Если для системной таблицы указан engine, параметр partition_by следует указывать непосредственно внутри 'engine'
ttlОпределяет TTL таблицы.Если для системной таблицы указан engine, параметр ttl следует указывать непосредственно внутри 'engine'
order_byПользовательский ключ сортировки для системной таблицы. Не может использоваться, если определен engine.Если для системной таблицы указан engine, параметр order_by следует указывать непосредственно внутри 'engine'
storage_policyИмя политики хранения, используемой для таблицы (необязательно).Если для системной таблицы указан engine, параметр storage_policy следует указывать непосредственно внутри 'engine'
settingsДополнительные параметры, которые управляют поведением MergeTree (необязательно).Если для системной таблицы указан engine, параметр settings следует указывать непосредственно внутри 'engine'
flush_interval_millisecondsИнтервал для выгрузки данных из буфера в памяти в таблицу.7500
max_size_rowsМаксимальный размер в строках для логов. Когда количество невыгруженных логов достигает max_size, логи сбрасываются на диск.1048576
reserved_size_rowsПредварительно выделенный размер памяти в строках для логов.8192
buffer_size_rows_flush_thresholdПорог для количества строк. Если порог достигнут, в фоне запускается выгрузка логов на диск.max_size_rows / 2
flush_on_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
databaseИмя базы данных.
tableИмя системной таблицы.
engineОпределение двигателя MergeTree для системной таблицы.Не может использоваться, если определены partition_by или order_by. Если не указано, по умолчанию выбирается MergeTree
partition_byПользовательский ключ партиционирования для системной таблицы.Если для системной таблицы указан engine, параметр partition_by следует указывать непосредственно внутри 'engine'
ttlОпределяет TTL таблицы.Если для системной таблицы указан engine, параметр ttl следует указывать непосредственно внутри 'engine'
order_byПользовательский ключ сортировки для системной таблицы. Не может использоваться, если определен engine.Если для системной таблицы указан engine, параметр order_by следует указывать непосредственно внутри 'engine'
storage_policyИмя политики хранения, используемой для таблицы (необязательно).Если для системной таблицы указан engine, параметр storage_policy следует указывать непосредственно внутри 'engine'
settingsДополнительные параметры, которые управляют поведением MergeTree (необязательно).Если для системной таблицы указан engine, параметр settings следует указывать непосредственно внутри 'engine'
flush_interval_millisecondsИнтервал для выгрузки данных из буфера в памяти в таблицу.7500
max_size_rowsМаксимальный размер в строках для логов. Когда количество невыгруженных логов достигает max_size, логи сбрасываются на диск.1048576
reserved_size_rowsПредварительно выделенный размер памяти в строках для логов.8192
buffer_size_rows_flush_thresholdПорог для количества строк. Если порог достигнут, в фоне запускается выгрузка логов на диск.max_size_rows / 2
flush_on_crashУстанавливает, следует ли сбрасывать логи на диск в случае сбоя.false

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

Пример

query_views_log

Настройка для записи представлений (живых, материализованных и т.д.), зависящих от запросов, полученных с помощью параметра log_query_views=1.

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

The following settings can be configured by sub-tags:

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

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

Пример

text_log

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

The following settings can be configured by sub-tags:

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

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

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

Пример

trace_log

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

The following settings can be configured by sub-tags:

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

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

asynchronous_insert_log

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

The following settings can be configured by sub-tags:

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

Пример

crash_log

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

The following settings can be configured by sub-tags:

SettingDescriptionDefaultNote
databaseИмя базы данных.
tableИмя системной таблицы.
engineОпределение двигателя MergeTree для системной таблицы.Не может использоваться, если определены partition_by или order_by. Если не указано, по умолчанию выбирается MergeTree
partition_byПользовательский ключ партиционирования для системной таблицы.Если для системной таблицы указан engine, параметр partition_by следует указывать непосредственно внутри 'engine'
ttlОпределяет TTL таблицы.Если для системной таблицы указан engine, параметр ttl следует указывать непосредственно внутри 'engine'
order_byПользовательский ключ сортировки для системной таблицы. Не может использоваться, если определен engine.Если для системной таблицы указан engine, параметр order_by следует указывать непосредственно внутри 'engine'
storage_policyИмя политики хранения, используемой для таблицы (необязательно).Если для системной таблицы указан engine, параметр storage_policy следует указывать непосредственно внутри 'engine'
settingsДополнительные параметры, которые управляют поведением MergeTree (необязательно).Если для системной таблицы указан engine, параметр settings следует указывать непосредственно внутри 'engine'
flush_interval_millisecondsИнтервал для выгрузки данных из буфера в памяти в таблицу.7500
max_size_rowsМаксимальный размер в строках для логов. Когда количество невыгруженных логов достигает max_size, логи сбрасываются на диск.1048576
reserved_size_rowsПредварительно выделенный размер памяти в строках для логов.8192
buffer_size_rows_flush_thresholdПорог для количества строк. Если порог достигнут, в фоне запускается выгрузка логов на диск.max_size_rows / 2
flush_on_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
databaseИмя базы данных.
tableИмя системной таблицы.
engineОпределение двигателя MergeTree для системной таблицы.Не может использоваться, если определены partition_by или order_by. Если не указано, по умолчанию выбирается MergeTree
partition_byПользовательский ключ партиционирования для системной таблицы.Если для системной таблицы указан engine, параметр partition_by следует указывать непосредственно внутри 'engine'
ttlОпределяет TTL таблицы.Если для системной таблицы указан engine, параметр ttl следует указывать непосредственно внутри 'engine'
order_byПользовательский ключ сортировки для системной таблицы. Не может использоваться, если определен engine.Если для системной таблицы указан engine, параметр order_by следует указывать непосредственно внутри 'engine'
storage_policyИмя политики хранения, используемой для таблицы (необязательно).Если для системной таблицы указан engine, параметр storage_policy следует указывать непосредственно внутри 'engine'
settingsДополнительные параметры, которые управляют поведением MergeTree (необязательно).Если для системной таблицы указан engine, параметр settings следует указывать непосредственно внутри 'engine'
flush_interval_millisecondsИнтервал для выгрузки данных из буфера в памяти в таблицу.7500
max_size_rowsМаксимальный размер в строках для логов. Когда количество невыгруженных логов достигает max_size, логи сбрасываются на диск.1048576
reserved_size_rowsПредварительно выделенный размер памяти в строках для логов.8192
buffer_size_rows_flush_thresholdПорог для количества строк. Если порог достигнут, в фоне запускается выгрузка логов на диск.max_size_rows / 2
flush_on_crashУстанавливает, следует ли сбрасывать логи на диск в случае сбоя.false

Пример

blog_storage_log

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

The following settings can be configured by sub-tags:

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

Пример:

правила_маскирования_запросов

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

Пример

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

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

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

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

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

удаленные_серверы

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

Пример

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

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

разрешенные_хосты_удаленного_url

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

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

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

Например:

часовой_пояс

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

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

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

Пример

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

tcp_порт

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

Пример

tcp_порт_защищенный

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

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

mysql_порт

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

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

Пример

postgresql_порт

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

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

Пример

tmp_путь

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

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

Пример

url_scheme_mappers

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

Пример:

путь_пользовательских_файлов

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

Пример

путь_пользовательских_скриптов

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

Пример

Тип:

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

путь_пользовательских_определений

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

Пример

конфигурация_пользователей

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

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

Пример

проверка_tcp_информации_клиента

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

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

улучшения_контроля_доступа

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

НастройкаОписаниеЗначение по умолчанию
users_without_row_policies_can_read_rowsУстанавливает, могут ли пользователи без разрешений на строки все равно читать строки с помощью запроса SELECT. Например, если есть два пользователя A и B, и политика строк определена только для A, то если эта настройка истина, пользователь B увидит все строки. Если эта настройка ложно, пользователь B не увидит никаких строк.true
on_cluster_queries_require_cluster_grantУстанавливает, требуют ли запросы ON CLUSTER разрешение CLUSTER.true
select_from_system_db_requires_grantУстанавливает, требует ли SELECT * FROM system.<table> каких-либо разрешений и может выполняться любым пользователем. Если установлено в 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
databaseИмя базы данных.
tableИмя системной таблицы.
engineОпределение двигателя MergeTree для системной таблицы.Не может использоваться, если определены partition_by или order_by. Если не указано, по умолчанию выбирается MergeTree
partition_byПользовательский ключ партиционирования для системной таблицы.Если для системной таблицы указан engine, параметр partition_by следует указывать непосредственно внутри 'engine'
ttlОпределяет TTL таблицы.Если для системной таблицы указан engine, параметр ttl следует указывать непосредственно внутри 'engine'
order_byПользовательский ключ сортировки для системной таблицы. Не может использоваться, если определен engine.Если для системной таблицы указан engine, параметр order_by следует указывать непосредственно внутри 'engine'
storage_policyИмя политики хранения, используемой для таблицы (необязательно).Если для системной таблицы указан engine, параметр storage_policy следует указывать непосредственно внутри 'engine'
settingsДополнительные параметры, которые управляют поведением MergeTree (необязательно).Если для системной таблицы указан engine, параметр settings следует указывать непосредственно внутри 'engine'
flush_interval_millisecondsИнтервал для выгрузки данных из буфера в памяти в таблицу.7500
max_size_rowsМаксимальный размер в строках для логов. Когда количество невыгруженных логов достигает max_size, логи сбрасываются на диск.1048576
reserved_size_rowsПредварительно выделенный размер памяти в строках для логов.8192
buffer_size_rows_flush_thresholdПорог для количества строк. Если порог достигнут, в фоне запускается выгрузка логов на диск.max_size_rows / 2
flush_on_crashУстанавливает, следует ли сбрасывать логи на диск в случае сбоя.false

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

ожидать_загрузки_словарей_при_старте

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

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

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

Пример

Значение по умолчанию: 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 (необязательно)Узел, который используется в качестве корня для узлов, используемых сервером ClickHouse.
fallback_session_lifetime.min (необязательно)Минимальный предел для срока службы сессии ZooKeeper для резервного узла, когда основной недоступен (балансировка нагрузки). Установлен в секундах. Значение по умолчанию: 3 часа.
fallback_session_lifetime.max (необязательно)Максимальный предел для срока службы сессии ZooKeeper для резервного узла, когда основной недоступен (балансировка нагрузки). Установлен в секундах. Значение по умолчанию: 6 часов.
identity (необязательно)Пользователь и пароль, требуемые ZooKeeper для доступа к запрашиваемым узлам.
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, если происходит повторное соединение, выбирает следующий.

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

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

использовать_минималистичный_заголовок_части_в_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

распределенный_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 секунд

Пример

путь_контроля_доступа

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

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

Тип: String

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

разрешить_пароли_в_открытом_виде

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

Значение по умолчанию: 1 (тип authType plaintext_password разрешен)

разрешить_без_пароля

Устанавливает, разрешен ли небезопасный тип пароля без пароля.

Значение по умолчанию: 1 (тип authType no_password разрешен)

запрещать_неявный_без_пароля

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

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

таймаут_сессии_по_умолчанию

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

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

тип_пароля_по_умолчанию

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

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

примечание

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

Тип: Bool

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

merge_workload

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

Тип: String

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

См. также

mutation_workload

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

См. также

Тип: String

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

throw_on_unknown_workload

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

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

См. также

Тип: String

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

Пример

workload_path

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

Пример

См. также

workload_zookeeper_path

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

Пример

См. также

use_legacy_mongodb_integration

Использовать устаревшую реализацию интеграции с MongoDB. Устарело.

Тип: Bool

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

max_authentication_methods_per_user

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

примечание

Значение 0 означает безлимитность.

Тип: UInt64

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

allow_feature_tier

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

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

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

примечание

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

Тип: UInt32

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