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

Настройки сессии на уровне запроса

Обзор

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

Порядок приоритета

Порядок приоритета для определения настройки следующий:

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

    • SQL (рекомендуется)
    • добавление одного или нескольких XML или YAML файлов в /etc/clickhouse-server/users.d
  2. Настройки сессии

    • Отправьте SET setting=value из консоли ClickHouse Cloud SQL или clickhouse client в интерактивном режиме. Аналогично, вы можете использовать сессии ClickHouse в протоколе HTTP. Для этого вам нужно указать параметр session_id в HTTP.
  3. Настройки запроса

    • При запуске clickhouse client в неинтерактивном режиме задайте параметр запуска --setting=value.
    • При использовании HTTP API передавайте параметры CGI (URL?setting_1=value&setting_2=value...).
    • Определите настройки в SETTINGS клаузе запроса SELECT. Значение настройки применяется только к этому запросу и сбрасывается к значению по умолчанию или предыдущему значению после выполнения запроса.

Приведение Настройки к Значению По Умолчанию

Если вы изменили настройку и хотите вернуть её к значению по умолчанию, установите значение на DEFAULT. Синтаксис выглядит так:

Например, значение по умолчанию для async_insert равно 0. Предположим, вы изменили его значение на 1:

Ответ будет:

Следующая команда возвращает его значение обратно на 0:

Настройка теперь опять вернулась к значению по умолчанию:

Пользовательские Настройки

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

Имя пользовательской настройки должно начинаться с одного из предопределённых префиксов. Список этих префиксов должен быть объявлен в параметре custom_settings_prefixes в файле конфигурации сервера.

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

Чтобы получить текущее значение пользовательской настройки, используйте функцию getSetting():

Примеры

Все эти примеры устанавливают значение настройки async_insert на 1 и демонстрируют, как проверить настройки в работающей системе.

Использование SQL для прямого применения настройки к пользователю

Это создает пользователя ingester с настройкой async_insert = 1:

Проверка профиля настроек и присвоений

Использование SQL для создания профиля настроек и назначения его пользователю

Это создает профиль log_ingest с настройкой async_insert = 1:

Это создает пользователя ingester и присваивает ему профиль настроек log_ingest:

Использование XML для создания профиля настроек и пользователя

Проверка профиля настроек и присвоений

Присвоение настройки сессии

Присвоение настройки во время запроса

См. также