Настройки сессии на уровне запроса
Обзор
Существует несколько способов выполнения операторов с конкретными настройками. Настройки конфигурируются по уровням, и каждый последующий уровень переопределяет предыдущие значения настройки.
Порядок приоритета
Порядок приоритета для определения настройки:
-
Применение настройки напрямую к пользователю или в рамках профиля настроек
- 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_inset = 1:
Изучение профиля настроек и назначения
Использование SQL для создания профиля настроек и назначения его пользователю
Это создает профиль log_ingest с настройкой async_inset = 1:
Это создает пользователя ingester и назначает ему профиль настроек log_ingest:
Использование XML для создания профиля настроек и пользователя
Изучение профиля настроек и назначения
Назначение настройки сессии
Назначение настройки во время запроса
См. также
- Просмотрите страницу Настройки для описания настроек ClickHouse.
- Глобальные настройки сервера