abort_on_logical_error
Приводит к аварийному завершению работы сервера при исключениях LOGICAL_ERROR. Только для опытных пользователей.allowed_disks_for_table_engines
Список дисков, разрешённых для использования с Icebergauth_use_forwarded_address
Использовать исходный адрес для аутентификации клиентов, подключающихся через прокси.- По умолчанию:
false
Этот параметр следует использовать с особой осторожностью, поскольку forwarded-адреса легко подделать: к серверам, принимающим такую аутентификацию, не следует обращаться напрямую — только через доверенный прокси.
bcrypt_workfactor
Фактор сложности для типа аутентификацииbcrypt_password, использующего алгоритм Bcrypt.
Фактор сложности определяет объём вычислений и время, необходимые для вычисления хэша и проверки пароля.
- По умолчанию:
12
blob_storage_log
Настройки для системной таблицыblob_storage_log.
Следующие настройки можно задать с помощью вложенных тегов:
Кроме того, следующая настройка на уровне сервера управляет политикой сброса по умолчанию для всех таблиц системных логов:
Пример:
builtin_dictionaries_reload_interval
Интервал в секундах до перезагрузки встроенных словарей. ClickHouse перезагружает встроенные словари каждые x секунд. Это позволяет редактировать словари “на лету” без перезапуска сервера. Примерcache_size_to_ram_max_ratio
Устанавливает максимальное соотношение размера кэша к объёму оперативной памяти. Позволяет уменьшить размер кэша на системах с небольшим объёмом памяти.cannot_allocate_thread_fault_injection_probability
Для тестирования.cgroups_memory_usage_observer_wait_time
Интервал в секундах, в течение которого максимально допустимое потребление памяти сервером корректируется в cgroups на соответствующий порог. Чтобы отключить наблюдатель cgroups, установите это значение равным0.
сжатие
Настройки сжатия данных для таблиц с движком MergeTree.Если вы только начали использовать ClickHouse, рекомендуем не менять этот параметр.
<case>:
min_part_size– Минимальный размер части данных.min_part_size_ratio– Отношение размера части данных к размеру таблицы.method– Метод сжатия. Допустимые значения:lz4,lz4hc,zstd,deflate_qpl.level– Уровень сжатия. См. Кодеки.
Можно настроить несколько разделов
<case>.- Если часть данных соответствует набору условий, ClickHouse использует указанный метод сжатия.
- Если часть данных соответствует нескольким наборам условий, ClickHouse использует последний из совпавших (разделы
<case>проверяются по порядку, и каждый следующий совпавший переопределяет предыдущий выбор).
Если для части данных не выполняется ни одно условие, ClickHouse использует встроенное значение по умолчанию, зависящее от размера:
LZ4 для частей меньше 100 МБ и ZSTD(3) для частей такого размера и больше. Как и в условиях min_part_size выше, учитывается размер, известный на момент выбора кодека, до записи данных: 0 для только что вставленной части и размер исходных частей для merge или mutation. Поэтому перезапись, уменьшающая свои входные данные, например TTL DELETE или схлопывающий merge, классифицируется по размеру входных данных и может дать часть меньше порога, которая всё равно будет сжата ZSTD(3).файл конфигурации
Указывает на файл конфигурации сервера.config_reload_interval_ms
Как часто ClickHouse будет перезагружать конфигурацию и проверять наличие измененийcore_dump
Настраивает мягкое ограничение размера файла дампа памяти.Жесткое ограничение задается с помощью системных инструментов
crash_log
Настройки работы системной таблицы crash_log. Следующие настройки можно задать с помощью под-тегов:
Файл конфигурации сервера
config.xml, используемый по умолчанию, содержит следующий раздел настроек:
create_union_system_log_tables
Запрашивает создание таблицall_... рядом с таблицами системных журналов (system.all_query_log для system.query_log, system.all_text_log для system.text_log и т. д.). Такая таблица объединяет соответствующую таблицу журналов, её ротированные версии (query_log_0, query_log_1, …) и/или аналогичные таблицы на всех репликах кластера и позволяет выполнять запросы ко всем им одновременно, не используя конструкции вроде clusterAllReplicas(default, merge(system, '^query_log')).
Этот раздел необязателен. Если он присутствует, необходимо указать хотя бы одну из следующих настроек:
Если указаны обе настройки, таблица объединяет ротированные таблицы со всех реплик кластера.
Эта опция применяется ко всем таблицам системных журналов; задать отдельную конфигурацию для разных системных журналов нельзя. Таблицы создаются в той же базе данных, что и таблицы системных журналов, при первом сбросе каждого журнала и автоматически пересоздаются при изменении структуры таблицы журналов (во время ротации). Они не имеют состояния, поэтому их можно безопасно удалить в любое время. Создание поддерживается только для движков баз данных
Atomic, Replicated и Shared.
При использовании настройки
cluster определение таблицы ссылается на кластер, поэтому для загрузки таблицы кластер должен существовать. Если удалить кластер из конфигурации, также удалите таблицы all_... (они будут пересозданы в соответствии с новой конфигурацией при следующем сбросе).database_atomic_delay_before_drop_table_sec
Задержка, в течение которой удалённую таблицу можно восстановить с помощью оператораUNDROP. Если команда DROP TABLE была выполнена с модификатором SYNC, этот параметр игнорируется.
Значение этого параметра по умолчанию — 480 (8 минут).
dead_letter_queue
Настройка системной таблицы ‘dead_letter_queue’. Следующие настройки можно задать с помощью вложенных тегов:
Кроме того, следующая настройка на уровне сервера управляет политикой сброса по умолчанию для всех таблиц системных логов:
Настройки по умолчанию:
dictionary_background_reconnect_interval
Интервал в миллисекундах между попытками повторного подключения для словарей MySQL и Postgres, завершившихся с ошибкой, у которых включенbackground_reconnect.
disk_transaction_wait_for_blob_removal
Значение по умолчанию для настройкиwait_for_blob_removal для каждого диска.
Если настройка включена, сервер ожидает завершения фонового удаления blob, прежде чем подтвердить операцию.
display_secrets_in_show_and_select
Включает или отключает отображение секретов в запросахSHOW и SELECT для таблиц, баз данных, табличных функций и словарей.
Пользователь, который хочет видеть секреты, также должен иметь
включенную
format_display_secrets_in_show_and_select настройку формата
и
displaySecretsInShowAndSelect привилегию.
Возможные значения:
0— Отключено.1— Включено.
dns_max_consecutive_failures
Прекращает дальнейшие попытки обновления DNS-кэша хоста после указанного числа последовательных сбоев. Информация при этом сохраняется в DNS-кэше. Ноль означает отсутствие ограничений. См. такжеdynamic_user_defined_executable_functions_path
Каталог, в котором хранятся файлы конфигурации исполняемых UDF, динамически создаваемых драйверами (см.CREATE FUNCTION ... ENGINE = DriverName(...)).
При перезапуске сервера каталог сканируется на наличие файлов конфигурации, и соответствующие UDF загружаются без повторного вызова драйвера.
Пример
шифрование
Задает команду для получения ключа, который будет использоваться кодеками шифрования. Ключ (или ключи) должен храниться в переменных окружения или задаваться в конфигурационном файле. Ключи могут быть представлены в шестнадцатеричном виде или в виде строки длиной 16 байт. Пример Загрузка из конфигурационного файла:Хранить ключи в файле конфигурации не рекомендуется. Это небезопасно. Вы можете вынести ключи в отдельный файл конфигурации на защищённом диске и поместить в папку
config.d/ символическую ссылку на него.current_key_id задаёт текущий ключ для шифрования, а все указанные ключи могут использоваться для расшифровки.
Каждый из этих методов можно применять для нескольких ключей:
current_key_id обозначает текущий ключ шифрования.
Кроме того, пользователи могут добавить nonce длиной 12 байт (по умолчанию в процессах шифрования и расшифровки используется nonce, состоящий из нулевых байтов):
Всё, что сказано выше, можно применить и к
aes_256_gcm_siv (но ключ должен быть длиной 32 байта).enforce_keeper_component_tracking
Если параметр включен, для каждого запроса к ZooKeeper должно быть задано имя компонента черезCoordination::setCurrentComponent. Если компонент отсутствует, генерируется исключение LOGICAL_ERROR.
error_log
По умолчанию отключено. Включение Чтобы вручную включить сбор истории ошибокsystem.error_log, создайте файл /etc/clickhouse-server/config.d/error_log.xml со следующим содержимым:
error_log, создайте файл /etc/clickhouse-server/config.d/disable_error_log.xml со следующим содержимым:
Кроме того, следующая настройка на уровне сервера управляет политикой сброса по умолчанию для всех таблиц системных логов:
filesystem_caches_path
Этот параметр указывает путь к кэшу. Примерgoogle_protos_path
Задает каталог с proto-файлами для типов Protobuf. Примерhandshake_timeout_milliseconds
Тайм-аут по реальному времени в миллисекундах для всей фазы TCP-рукопожатия (Hello + Addendum). Ограничивает время, в течение которого неаутентифицированное соединение может занимать поток. Установите значение 0, чтобы отключить.hdfs.libhdfs3_conf
Указывает libhdfs3 правильное расположение его конфигурации.hsts_max_age
Время действия HSTS в секундах.Значение
0 означает, что ClickHouse отключает HSTS. Если задать положительное число, HSTS будет включен, а значение max-age будет равно указанному числу.iceberg_background_schedule_pool_size
Размер пула потоков для асинхронного получения актуальных метаданных из удалённого каталога Iceberg; этот пул используется совместно всеми активными таблицами.iceberg_manifest_decode_thread_pool_queue_size
Максимальное количество задач, которые могут быть поставлены в очередь пула потоков для декодирования файлов манифестов данных Iceberg.ignore_empty_sql_security_in_create_view_query
Если true, запросCREATE VIEW или CREATE MATERIALIZED VIEW, в котором не указаны ни DEFINER, ни SQL SECURITY, сохраняется в исходном виде, а представлению присваивается пустой тип безопасности SQL. Указание только DEFINER считается указанием SQL SECURITY DEFINER, поэтому такая настройка на этот запрос не влияет. Обычное представление с пустым типом безопасности SQL выполняется с разрешениями пользователя, вызвавшего его. Для materialized view с явно указанной целевой таблицей проверки доступа к целевой таблице не выполняются: вставка в исходную таблицу не требует привилегии INSERT для целевой таблицы, а чтение из представления не требует привилегии SELECT для неё.
Если false, значения по умолчанию из настроек default_normal_view_sql_security, default_materialized_view_sql_security и default_view_definer записываются в определение представления при его создании. При значениях этих настроек по умолчанию materialized view, созданное без указания обеих клауз, сохраняет создавшего его пользователя в качестве определяющего пользователя и выполняется с разрешениями этого пользователя.
Refreshable materialized views всегда получают значения по умолчанию независимо от этой настройки.
Изменение этой настройки влияет только на представления, созданные после этого; сохранённые определения существующих представлений остаются без изменений.
include_from
Путь к файлу подстановок. Поддерживаются форматы XML и YAML. Дополнительные сведения см. в разделе Конфигурационные файлы. По умолчанию значение пустое, то есть файл подстановок не используется. До версии 26.8 файл/etc/metrika.xml использовался неявно, если он существовал; если вы используете его, укажите путь явно.
Обратите внимание: конфигурационные файлы, загружаемые отдельно от основной конфигурации сервера, — конфигурация пользователей (например, users.xml, если он не включён в основной файл) и XML-конфигурации словарей — считывают элемент include_from из собственного содержимого, а не из конфигурации сервера. Каждый такой файл, использующий подстановки, должен содержать собственный элемент include_from.
Пример
insert_deduplication_version
Устаревший защитный механизм миграции. ClickHouse версий 26.7 и новее поддерживает только единый хеш дедупликации вставки (new_unified_hash); сервер откажется запускаться, если этот параметр указан с любым другим значением (например, old_separate_hashes или compatible_double_hashes). Перед обновлением завершите миграцию дедупликации в предыдущей версии, запустив compatible_double_hashes (он записывает и устаревшие, и унифицированные хеши). Для реплицированных таблиц запускайте его как минимум в течение replicated_deduplication_window_seconds (по умолчанию один час); окна по умолчанию хранят унифицированные хеши всех вставок за этот период, и этого считается достаточно, чтобы покрыть цикл повторных попыток вставки. Для нереплицируемых таблиц с non_replicated_deduplication_window > 0 окно определяется количеством, а не временем, поэтому перед обновлением запускайте compatible_double_hashes как минимум для такого числа вставок.
io_thread_pool_queue_size
Максимальное количество задач, которые можно поставить в очередь пула потоков IO.Значение
0 означает отсутствие ограничений.keep_alive_timeout
Количество секунд, в течение которых ClickHouse ожидает входящих запросов по HTTP-протоколу, прежде чем закрыть соединение. Примерldap_servers
Здесь перечисляются LDAP-серверы с параметрами подключения, чтобы:- использовать их как аутентификаторы для выделенных локальных пользователей, у которых вместо
'password'указан механизм аутентификации'ldap' - использовать их как удалённые каталоги пользователей.
Настройку
user_dn_detection можно задать с помощью под-тегов:
Пример:
logger
Расположение и формат сообщений лога. Ключи:
Спецификаторы формата логов
Имена файлов в путях
log и errorLog поддерживают приведённые ниже спецификаторы формата для итогового имени файла (часть пути с каталогом их не поддерживает).
Столбец “Пример” показывает вывод для 2023-07-06 18:32:07.
Пример
<syslog>:
Форматы Log
Можно указать формат логирования, который будет использоваться в журнале консоли. Сейчас поддерживается только JSON.
Пример
Ниже приведён пример выходного JSON-журнала:
<names>. Например, чтобы заменить DATE_TIME на MY_DATE_TIME, можно использовать <date_time>MY_DATE_TIME</date_time>.
Исключение ключей из JSON-журналов
Свойства журнала можно исключить, закомментировав соответствующее свойство. Например, если вы не хотите, чтобы в журнале выводился query_id, можно закомментировать тег <query_id>.
logger.count
Политика ротации: максимальное количество хранимых исторических файлов журнала ClickHouse.logger.errorlog
Путь к файлу журнала ошибок.logger.formatting.type
Формат логирования для вывода в консоль. На данный момент поддерживается только<json>.
logger.level
Уровень логирования. Допустимые значения:<none> (отключает логирование), <fatal>, <critical>, <error>, <warning>, <notice>, <information>, <debug>, <trace>, <test>.
logger.log
Путь к файлу журнала.logger.rotation
Политика ротации: определяет, когда ротируются файлы журналов. Ротация может выполняться по размеру, по времени или по их сочетанию. Примеры: 100M, daily, 100M,daily. Когда файл журнала превышает указанный размер или истекает указанный интервал времени, он переименовывается и архивируется, после чего создаётся новый файл журнала.logger.shutdown_level
Shutdown level используется для задания уровня корневого логгера при завершении работы server.logger.size
Политика ротации: максимальный размер файлов журнала в байтах. Когда размер файла журнала превышает этот порог, файл переименовывается и архивируется, а затем создаётся новый файл журнала.logger.startup_level
Уровень при запуске используется для установки уровня корневого логгера во время запуска сервера. После завершения запуска уровень логирования возвращается к значению, заданному в настройке<level>.
logger.stream_compress
Сжимает сообщения лога с помощью LZ4. Для включения установите значение<1> или <true>.
logger.syslog_level
Уровень логирования для syslog.logger.use_syslog
Также направляет вывод логов в syslog.macros
Подстановки параметров для реплицированных таблиц. Можно опустить, если реплицированные таблицы не используются. Дополнительные сведения см. в разделе Создание реплицированных таблиц. Примерmessage_queue_disable_insertion
Отключает вставку из движков очередей сообщений (Kafka, RabbitMQ, NATS) в присоединенные materialized viewmetric_log
По умолчанию отключено. Включение Чтобы вручную включить сбор истории метрикsystem.metric_log, создайте файл /etc/clickhouse-server/config.d/metric_log.xml со следующим содержимым:
metric_log, создайте файл /etc/clickhouse-server/config.d/disable_metric_log.xml со следующим содержимым:
Кроме того, следующая настройка на уровне сервера управляет политикой сброса по умолчанию для всех таблиц системных логов:
mmap_cache_size
Этот параметр позволяет избежать частых вызовов open/close (которые очень затратны из-за связанных с ними page fault), а также повторно использовать отображения памяти между несколькими потоками и запросами. Значение параметра — количество отображённых областей (обычно оно равно числу отображённых файлов). Объём данных в отображённых файлах можно отслеживать в следующих системных таблицах по следующим метрикам:MMappedFiles/MMappedFileBytes/MMapCacheCellsвsystem.metrics,system.metric_logCreatedReadBufferMMap/CreatedReadBufferMMapFailed/MMappedFileCacheHits/MMappedFileCacheMissesвsystem.events,system.processes,system.query_log,system.query_thread_log,system.query_views_log
Объём данных в отображённых файлах сам по себе не потребляет память и не учитывается в использовании памяти запроса или сервера, поскольку эта память может быть освобождена так же, как и кэш страниц ОС. Кэш автоматически очищается (файлы закрываются) при удалении старых частей в таблицах семейства MergeTree; кроме того, его можно очистить вручную запросом
SYSTEM DROP MMAP CACHE.Этот параметр можно изменять во время работы, и он вступает в силу немедленно.mutation_workload
Используется для управления использованием и распределением ресурсов между мутациями и другими рабочими нагрузками. Указанное значение используется в качестве значения настройкиworkload для всех фоновых мутаций. Может быть переопределено настройкой MergeTree.
См. также
named_collections_storage.type
Тип хранилища для именованных коллекций. Возможные значения:local, local_encrypted, keeper,
keeper_encrypted, zookeeper и zookeeper_encrypted.
Задаётся параметром named_collections_storage.type (в XML — <named_collections_storage><type>).
oom_score
В системах Linux этот параметр позволяет управлять поведением OOM killer.openSSL
Настройка SSL для клиента и сервера. Поддержка SSL обеспечивается библиотекойlibpoco. Доступные параметры конфигурации описаны в SSLManager.h. Значения по умолчанию приведены в SSLManager.cpp.
Файлы, указанные в certificateFile, privateKeyFile и caConfig, перезагружаются без перезапуска при их изменении или по команде SYSTEM RELOAD CONFIG. Новые соединения используют перезагруженные сертификаты, на уже установленные соединения это не влияет.
Ключи настроек сервера/клиента:
Пример настроек:
openSSL.client.caConfig
Путь к файлу или каталогу с доверенными CA‑сертификатами. Если указан файл, он должен быть в формате PEM и может содержать несколько CA‑сертификатов. Если указан каталог, в нём должен быть один файл.pem на каждый CA‑сертификат. Имена файлов определяются по хеш-значению имени субъекта CA. Подробности см. на man‑странице SSL_CTX_load_verify_locations. CA‑сертификаты перезагружаются без перезапуска при изменении файла или по команде SYSTEM RELOAD CONFIG; новые соединения проверяются по перезагруженным сертификатам.
openSSL.client.cacheSessions
Включает или отключает кэширование сеансов. Должно использоваться вместе с<sessionIdContext>. Допустимые значения: <true>, <false>.
openSSL.client.certificateFile
Путь к файлу сертификата клиента или сервера в формате PEM. Этот параметр можно опустить, если<privateKeyFile> содержит сертификат.
openSSL.client.cipherList
Поддерживаемые шифры OpenSSL.openSSL.client.disableProtocols
Протоколы, которые нельзя использовать.openSSL.client.extendedVerification
Если включено, проверяет, что значение CN или SAN в сертификате соответствует имени хоста peer.openSSL.client.fips
Включает режим FIPS в OpenSSL. Поддерживается, если используемая библиотекой версия OpenSSL поддерживает FIPS.openSSL.client.invalidCertificateHandler.name
Класс (подкласс CertificateHandler), используемый для проверки недействительных сертификатов. Например:<<invalidCertificateHandler> <name>RejectCertificateHandler</name> </invalidCertificateHandler>>.
openSSL.client.loadDefaultCAFile
Определяет, будут ли использоваться CA‑сертификаты по умолчанию. ClickHouse ищет их в файле</etc/ssl/cert.pem> (соответственно, в каталоге </etc/ssl/certs>), в файле (соответственно, каталоге), указанном переменной окружения <SSL_CERT_FILE> (соответственно, <SSL_CERT_DIR>), а также в других общеизвестных расположениях, характерных для различных дистрибутивов. Если CA‑сертификаты не найдены в файловой системе, явный caConfig не задан, а бинарный файл был собран со встроенными CA‑сертификатами (поведение по умолчанию, управляется параметром сборки ENABLE_EMBEDDED_CA_CERTIFICATES), то используются встроенные сертификаты — благодаря этому TLS работает даже в минимальном окружении без каких‑либо файлов, например в контейнере, собранном «from scratch». В сборках без встроенных CA‑сертификатов в этом случае генерируется исключение.
openSSL.client.preferServerCiphers
Предпочитаемые клиентом шифры сервера.openSSL.client.privateKeyFile
Путь к файлу с закрытым ключом PEM-сертификата. Файл также может одновременно содержать и ключ, и сертификат.openSSL.client.privateKeyPassphraseHandler.name
Класс (подкласс PrivateKeyPassphraseHandler), запрашивающий парольную фразу для доступа к закрытому ключу. Например:<<privateKeyPassphraseHandler>>, <<name>KeyFileHandler</name>>, <<options><password>test</password></options>>, <</privateKeyPassphraseHandler>>
openSSL.client.verificationDepth
Максимальная длина цепочки проверки. Если длина цепочки сертификатов превышает заданное значение, проверка завершится ошибкой.openSSL.client.verificationMode
Способ проверки сертификатов узла. Подробности см. в описании класса Context. Возможные значения:<none>, <relaxed>, <strict>, <once>.
openSSL.server.caConfig
Путь к файлу или каталогу, содержащему доверенные CA‑сертификаты. Если указан файл, он должен быть в формате PEM и может содержать несколько CA‑сертификатов. Если указан каталог, в нём должен быть один файл.pem на каждый CA‑сертификат. Имена файлов определяются по хеш-значению имени субъекта CA. Подробности см. на man-странице SSL_CTX_load_verify_locations. CA‑сертификаты перезагружаются без перезапуска при изменении файла или по команде SYSTEM RELOAD CONFIG; новые соединения проверяются с использованием перезагруженных сертификатов.
openSSL.server.cacheSessions
Включает или отключает кэширование сеансов. Следует использовать вместе с<sessionIdContext>. Допустимые значения: <true>, <false>.
openSSL.server.certificateFile
Путь к файлу сертификата клиента или сервера в формате PEM. Этот параметр можно не указывать, если<privateKeyFile> содержит сертификат.
openSSL.server.cipherList
Список поддерживаемых шифров OpenSSL.openSSL.server.disableProtocols
Протоколы, использование которых запрещено.openSSL.server.extendedVerification
Если включено, проверяет, что CN или SAN сертификата соответствует имени хоста peer.openSSL.server.fips
Включает режим FIPS в OpenSSL. Поддерживается, если версия библиотеки OpenSSL поддерживает FIPS.openSSL.server.invalidCertificateHandler.name
Класс (подкласс CertificateHandler) для проверки недействительных сертификатов. Например:<<invalidCertificateHandler> <name>RejectCertificateHandler</name> </invalidCertificateHandler>>.
openSSL.server.loadDefaultCAFile
Определяет, будут ли использоваться CA‑сертификаты по умолчанию. ClickHouse ищет их в файле</etc/ssl/cert.pem> (или в каталоге </etc/ssl/certs>), в файле (или каталоге), заданном переменной окружения <SSL_CERT_FILE> (или <SSL_CERT_DIR>), а также в других стандартных расположениях, используемых в различных дистрибутивах. Если CA‑сертификаты не найдены в файловой системе, явный caConfig не настроен, а бинарный файл собран со встроенными CA‑сертификатами (по умолчанию; это определяется параметром сборки ENABLE_EMBEDDED_CA_CERTIFICATES), используются встроенные сертификаты. Благодаря этому TLS работает даже в минимальном окружении без каких-либо файлов, например в контейнере, собранном «с нуля». В сборках без встроенных CA‑сертификатов в этом случае генерируется исключение.
openSSL.server.preferServerCiphers
Наборы шифров сервера, предпочитаемые клиентом.openSSL.server.privateKeyFile
Путь к файлу с закрытым ключом PEM-сертификата. Файл может одновременно содержать ключ и сертификат.openSSL.server.privateKeyPassphraseHandler.name
Класс (подкласс PrivateKeyPassphraseHandler), запрашивающий парольную фразу для доступа к закрытому ключу. Например:<<privateKeyPassphraseHandler>>, <<name>KeyFileHandler</name>>, <<options><password>test</password></options>>, <</privateKeyPassphraseHandler>>
openSSL.server.sessionCacheSize
Максимальное количество сеансов, кэшируемых сервером. Значение 0 означает неограниченное количество сеансов.openSSL.server.sessionIdContext
Уникальный набор случайных символов, который сервер добавляет к каждому создаваемому идентификатору. Длина строки не должна превышать<SSL_MAX_SSL_SESSION_ID_LENGTH>. Этот параметр рекомендуется указывать всегда, поскольку он помогает избежать проблем как в случае, если сервер кэширует сеанс, так и в случае, если клиент запросил кэширование.
openSSL.server.sessionTimeout
Время кэширования сеанса на сервере, в часах.openSSL.server.verificationDepth
Максимальная длина цепочки проверки. Проверка завершится ошибкой, если длина цепочки сертификатов превысит заданное значение.openSSL.server.verificationMode
Способ проверки сертификатов узла. Подробности приведены в описании класса Context. Возможные значения:<none>, <relaxed>, <strict>, <once>.
opentelemetry_span_log
Настройки для системной таблицыopentelemetry_span_log.
Следующие настройки можно задать с помощью вложенных тегов:
Кроме того, следующая настройка на уровне сервера управляет политикой сброса по умолчанию для всех таблиц системных логов:
Пример:
part_log
Журнал событий, связанных с MergeTree, например добавления данных или их слияния. Этот лог можно использовать для моделирования алгоритмов слияния и сравнения их характеристик. Также можно визуализировать процесс слияния. Записи сохраняются в таблице system.part_log, а не в отдельном файле. Имя этой таблицы можно настроить с помощью параметраtable (см. ниже).
Следующие настройки можно задать с помощью вложенных тегов:
Кроме того, следующая настройка на уровне сервера управляет политикой сброса по умолчанию для всех таблиц системных логов:
Пример
path
Путь к каталогу с данными.Завершающая косая черта обязательна.
per_cpu_untracked_memory_thread_buffer
Объём неотслеживаемой памяти в байтах, который каждый поток может удерживать, не затрагивая общий per-CPU-бюджет. Это позволяет снизить накладные расходы на per-CPU-учёт для небольших выделений памяти и представляет собой запас, добавляемый сверхmax_per_cpu_untracked_memory * number_of_cpus в худшем случае. Значение 0 убирает этот запас: каждое выделение памяти обновляет общий per-CPU-счётчик (максимальная точность, но выше конкуренция). Только Linux.
point_in_polygon_cache_size
Максимальный размер в байтах для кэша предварительно обработанных полигонов, используемого функциейpointInPolygon с константным аргументом-полигоном.
Записи, превышающие этот лимит, вытесняются в порядке наименее недавнего использования.
При значении 0 кэш отключается: все кэшированные полигоны удаляются, и каждый последующий запрос заново предварительно обрабатывает свой константный полигон.
Кэш также можно очистить вручную, не меняя этот лимит, с помощью запроса SYSTEM DROP POINT IN POLYGON CACHE.
Этот параметр можно изменять в процессе работы, и он вступает в силу немедленно.
prefixes_deserialization_thread_pool_thread_pool_queue_size
Максимальное количество задач, которые можно поставить в очередь в пуле потоков десериализации префиксов.Значение
0 означает отсутствие ограничений.prepare_system_log_tables_on_startup
Если значение равно true, ClickHouse создаёт все настроенные таблицыsystem.*_log до запуска. Это может быть полезно, если от этих таблиц зависят некоторые скрипты запуска.
process_query_plan_packet
Эта настройка позволяет читать пакет QueryPlan. Этот пакет отправляется для распределённых запросов, когда включён serialize_query_plan. По умолчанию отключено, чтобы избежать возможных проблем с безопасностью, которые могут быть вызваны ошибками при бинарной десериализации плана запроса. Примерprocessors_profile_log
Настройки системной таблицыprocessors_profile_log.
Следующие настройки можно задать с помощью вложенных тегов:
Кроме того, следующая настройка на уровне сервера управляет политикой сброса по умолчанию для всех таблиц системных логов:
Настройки по умолчанию:
prometheus
Экспорт данных метрик для сбора с помощью Prometheus. Настройки:endpoint– HTTP-конечная точка, с которой сервер Prometheus собирает метрики. Должна начинаться с ’/’.port– Порт дляendpoint.metrics– Экспортировать метрики из таблицы system.metrics.events– Экспортировать метрики из таблицы system.events.asynchronous_metrics– Экспортировать текущие значения метрик из таблицы system.asynchronous_metrics. Метрики вида ключ-значение (те, что разбиты по ядрам CPU, блочным устройствам, сетевым интерфейсам или дискам) экспортируются как одна выборка на ключ, при этом ключ передаётся как метка:ClickHouseAsyncMetrics_BlockReadBytes{device="sda"}. Настройка сервераasynchronous_metrics_key_values_modeпозволяет вместо этого экспортировать их под искажёнными именами, как до версии 26.8 (ClickHouseAsyncMetrics_BlockReadBytes_sda), либо обоими способами одновременно.errors- Экспортировать количество ошибок по кодам, произошедших с момента последнего перезапуска сервера. Эту информацию также можно получить из system.errors.labels– Постоянные метки, добавляемые к каждой экспортируемой метрике. Каждый дочерний элемент определяет одну метку: имя элемента является именем метки (должно соответствовать[a-zA-Z_][a-zA-Z0-9_]*), а значение элемента — значением метки. Значения меток поддерживают стандартные подстановки конфигурации, такие как атрибутfrom_env. Имя метки отклоняется, если оно начинается с__(зарезервировано Prometheus) или совпадает с меткой, которую эта конечная точка уже записывает для одного из включенных разделов, — иначе одна выборка содержала бы одно и то же имя метки дважды. Таким образом, набор зарезервированных меток определяется активным набором экспортируемых данных конечной точки:le, когда включенhistograms; меткиClickHouse_Info(name,version,version_describe,version_major,version_minor,version_patch), когда включенinfo; ключевые метки асинхронных метрик вида ключ-значение (channel,cpu,device,disk,interface,mc,sensor), когда включенasynchronous_metricsи они публикуются в форме ключ-значение, что определяется настройкой сервераasynchronous_metrics_key_values_mode; а также любая метка, используемая экспортируемым семейством гистограмм или многомерных метрик (например,group,directionилиoperation_type), когда включенhistograms/dimensional_metrics. Поскольку это зависит от того, что фактически экспортирует конечная точка, имя может быть допустимым для одной конечной точки, но отклоняться для другой — например, конечная точка Keeperkeeper_metrics_onlyэкспортирует только семействаkeeper_*, поэтому метки, используемые только семействами сервера, там принимаются. Постоянные метки проверяются по этому же правилу при загрузке конфигурации, в том числе приSYSTEM RELOAD CONFIG: перезагрузка, которая привела бы к конфликту постоянной метки — из-за добавления такой метки или из-за измененияasynchronous_metrics_key_values_mode, после которого начинают записываться ключевые метки, — отклоняется целиком до вступления в силу, вместо того чтобы экспортировать одну и ту же метку дважды. Принятое изменение режима пересоздаёт конечные точки, экспортирующие метрики, чтобы новая форма и метки одной и той же конфигурации публиковались вместе.
127.0.0.1 на IP-адрес или имя хоста вашего сервера ClickHouse):
prometheus.keeper_metrics_only
Показывает метрики, относящиеся к Keeperпрокси
Определите прокси-серверы для HTTP- и HTTPS-запросов; сейчас это поддерживается для хранилища S3, табличных функций S3 и URL-функций. Существует три способа задать прокси-серверы:- переменные окружения
- списки прокси
- удалённые резолверы прокси.
no_proxy.
Переменные окружения
Переменные окружения http_proxy и https_proxy позволяют указать
прокси-сервер для конкретного протокола. Если они заданы в системе, всё должно работать без дополнительной настройки.
Это самый простой подход, если для конкретного протокола есть
только один прокси-сервер и он не меняется.
Списки прокси
Этот подход позволяет указать один или несколько
прокси-серверов для протокола. Если задано более одного прокси-сервера,
ClickHouse использует их по кругу (round-robin), распределяя
нагрузку между серверами. Это самый простой подход, если для протокола есть
более одного прокси-сервера и список прокси-серверов не меняется.
Шаблон конфигурации
- <proxy>
- <http> и <https>
\{proxy_scheme\}://\{proxy_host\}:{proxy_port}
Шаблон конфигурации
- <proxy>
- <http> и <https>
- <resolver>
ClickHouse проверяет тип резолвера с наивысшим приоритетом для протокола запроса. Если он не задан,
проверяется следующий по приоритету тип резолвера, и так далее, пока не дойдёт до резолвера среды.
Это также позволяет использовать сочетание разных типов резолвера.
remap_executable
Настройка для перераспределения памяти под машинный код (“text”) с использованием больших страниц памяти.Эта возможность пока крайне экспериментальна.
replica_group_name
Имя группы реплик для базы данных Replicated. Кластер, созданный базой данных Replicated, будет состоять из реплик одной и той же группы. DDL-запросы будут ожидать только реплики из той же группы.- По умолчанию:
""
replicated_merge_tree
Параметры тонкой настройки для таблиц ReplicatedMergeTree. Эта настройка имеет более высокий приоритет. Дополнительные сведения см. в заголовочном файле MergeTreeSettings.h. Примерrestore_threads
Максимальное количество потоков для выполнения запросов RESTORE.send_crash_reports
Настройки отправки отчетов о сбоях команде основных разработчиков ClickHouse. Будем очень признательны, если вы включите эту возможность, особенно в средах, предшествующих продакшн. Ключи:
Рекомендуемое использование
series_keeper_path
Путь в Keeper с автоинкрементными номерами, создаваемыми функциейgenerateSerialID. Каждая серия будет представлена узлом в этом пути.
ssh_server
Открытая часть ключа хоста будет записана в файл known_hosts на стороне SSH-клиента при первом подключении. Конфигурации ключей хоста по умолчанию отключены. Раскомментируйте конфигурации ключей хоста и укажите путь к соответствующему SSH-ключу, чтобы активировать их: Пример:table_engines_require_grant
Если установлено значение true, для создания таблицы с определённым движком пользователям требуется grant, напримерGRANT TABLE ENGINE ON TinyLog to user.
- По умолчанию:
false
По умолчанию из соображений обратной совместимости при создании таблицы с определённым движком таблицы grant игнорируется, однако это поведение можно изменить, установив для этого параметра значение true.
tcp_ssh_port
Порт SSH-сервера, через который пользователь может подключаться и выполнять запросы в интерактивном режиме с помощью встроенного клиента через PTY. Пример:text_log
Настройки системной таблицы text_log для журналирования текстовых сообщений. Следующие настройки можно задать с помощью вложенных тегов:
Кроме того, следующая настройка на уровне сервера управляет политикой сброса по умолчанию для всех таблиц системных логов:
Дополнительно:
Пример
thread_pool_queue_size
Максимальное число задач, которые можно поставить в очередь в глобальном пуле потоков. Увеличение размера очереди приводит к большему использованию памяти. Рекомендуется, чтобы это значение было равноmax_thread_pool_size.
Значение
0 означает отсутствие ограничения.throw_on_unknown_workload
Определяет поведение при обращении к неизвестной WORKLOAD с настройкой запроса ‘workload’.- Если
true, для запроса, который пытается обратиться к неизвестной рабочей нагрузке, генерируется исключение RESOURCE_ACCESS_DENIED. Полезно для принудительного применения планирования ресурсов ко всем запросам после того, как иерархия WORKLOAD создана и содержит WORKLOAD default. - Если
false(по умолчанию), запросу с настройкой ‘workload’, указывающей на неизвестную WORKLOAD, предоставляется неограниченный доступ без планирования ресурсов. Это важно при настройке иерархии WORKLOAD до добавления WORKLOAD default.
timezone
Часовой пояс сервера. Указывается как идентификатор IANA для часового пояса UTC или географического региона (например, Africa/Abidjan). Часовой пояс нужен для преобразований между форматами String и DateTime, когда поля DateTime выводятся в текстовом формате (на экран или в файл), а также при получении значения DateTime из строки. Кроме того, часовой пояс используется в функциях, работающих с датой и временем, если он не был передан во входных параметрах. Примерtrace_log
Настройки для работы системной таблицы trace_log. Следующие настройки можно задать с помощью вложенных тегов:
Кроме того, следующая настройка на уровне сервера управляет политикой сброса по умолчанию для всех таблиц системных логов:
Серверный файл конфигурации
config.xml, используемый по умолчанию, содержит следующий раздел настроек:
url_scheme_mappers
Настройка для преобразования сокращённых или символьных префиксов URL в полные URL. Пример:validate_tcp_client_information
Определяет, включена ли проверка информации о клиенте при получении пакета запроса. По умолчанию этоfalse:
wait_dictionaries_load_at_startup
Эта настройка позволяет задать поведение, еслиdictionaries_lazy_load имеет значение false.
(Если dictionaries_lazy_load имеет значение true, эта настройка ни на что не влияет.)
Если wait_dictionaries_load_at_startup имеет значение false, то сервер
начнет загружать все словари при запуске и будет принимать подключения параллельно с этой загрузкой.
Когда словарь впервые используется в запросе, запрос будет ждать, пока словарь не загрузится, если он еще не загружен.
Установка wait_dictionaries_load_at_startup в значение false может ускорить запуск ClickHouse, однако некоторые запросы могут выполняться медленнее
(поскольку им придется ждать загрузки некоторых словарей).
Если wait_dictionaries_load_at_startup имеет значение true, то сервер будет ждать при запуске,
пока все словари не завершат загрузку (успешно или нет), прежде чем принимать какие-либо подключения.
Пример
webassembly_udf_engine
Движок, используемый для исполнения WebAssembly UDF. Единственное поддерживаемое значение — ‘wasmtime’.webterminal_allowed_origins
Разделённый запятыми список полных origin-адресов (схема + хост + необязательный порт), которым разрешено открывать WebSocket-сеансы/webterminal. Если список пуст, политика same-origin применяется строго (Origin должен совпадать со схемой, хостом и портом запроса). Задайте этот параметр для развертываний за обратным прокси с терминацией TLS, где request.isSecure() имеет значение false, хотя браузер использует https. Пример: https://example.com,https://app.example.com:8443.