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