Настройки сессии на уровне запроса
Обзор
Существует несколько способов выполнения операторов с использованием конкретных настроек. Настройки конфигурируются по уровням, и каждый следующий уровень переопределяет предыдущие значения настройки.
Порядок приоритета
Порядок приоритета для определения настройки следующий:
-
Применение настройки к пользователю непосредственно или в рамках профиля настроек
- SQL (рекомендуется)
- добавление одного или нескольких XML или YAML файлов в
/etc/clickhouse-server/users.d
-
Настройки сессии
- Отправьте
SET setting=value
из консоли ClickHouse Cloud SQL илиclickhouse client
в интерактивном режиме. Аналогично, вы можете использовать сессии ClickHouse в протоколе HTTP. Для этого вам нужно указать параметрsession_id
в HTTP.
- Отправьте
-
Настройки запроса
- При запуске
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 для создания профиля настроек и пользователя
Проверка профиля настроек и присвоений
Присвоение настройки сессии
Присвоение настройки во время запроса
См. также
- Посмотрите страницу Настройки для описания настроек ClickHouse.
- Глобальные настройки сервера