Изменение настроек ClickHouse® на уровне пользователя
- Получить список настроек ClickHouse® на уровне пользователя
- Задать настройки ClickHouse® через интерфейсы Yandex Cloud
- Задать настройки ClickHouse® в учетной записи пользователя
- Задать настройки ClickHouse® в профиле настроек
- Задать настройки ClickHouse® в сессии
- Задать настройки ClickHouse® при подключении к БД через командную строку
Вы можете задать настройки ClickHouse® на уровне пользователя
-
С помощью интерфейсов Yandex Cloud. Так можно задать только настройки ClickHouse®, доступные в Yandex Cloud.
-
С помощью SQL-запросов. Так можно задать любые настройки ClickHouse® на уровне пользователя. Способ, как установить настройки, зависит от их типа:
-
Настройки пользователей. В SQL-запросах
CREATE USER
иALTER USER
вы можете передать настройки в условииSETTINGS
. В результате настройки применятся только к указанному пользователю.Чтобы воспользоваться этим способом, при создании или изменении кластера включите опцию Управление пользователями через SQL. После этого нельзя будет управлять пользователями через интерфейсы Yandex Cloud: управление пользователями через SQL невозможно выключить.
-
Настройки на уровне профиля. В ClickHouse® профиль настроек
содержит их значения и ограничения, а также список ролей и пользователей, к которым применяется профиль. Настройки ClickHouse® передаются в SQL-запросахCREATE SETTINGS PROFILE
иALTER SETTINGS PROFILE
.Чтобы воспользоваться этим способом, при создании или изменении кластера включите опцию Управление пользователями через SQL.
-
Настройки сессии. Во время сессии можно передать настройки ClickHouse® с помощью SQL-запроса
SET
. Так можно задать настройки в кластере с любой конфигурацией, но они будут действовать только для текущей сессии.Способ подходит не для всех SQL-редакторов: в некоторых из них каждый запрос выполняется в отдельной сессии. Проверьте параметры своего SQL-редактора, прежде чем настраивать сессию.
-
Настройки подключения. Когда вы подключаетесь к базе данных с помощью утилиты clickhouse-client, в команде для подключения можно передать настройки ClickHouse® с помощью флагов. Так можно задать настройки в кластере с любой конфигурацией, но они будут действовать только для установленного подключения.
Вы можете также указать настройки подключения в различных драйверах для ClickHouse® либо передать настройки в виде URL-параметров при отправке запросов HTTP API ClickHouse®. Подробнее об этих способах см. в документации ClickHouse®
.
-
Получить список настроек ClickHouse® на уровне пользователя
-
Подключитесь к кластеру.
-
Выполните запрос:
SELECT name, description, value FROM system.settings;
Результат содержит названия, описания и значения настроек ClickHouse® на уровне пользователя. Результат показывает значения для текущей сессии и пользователя, установившего эту сессию.
Задать настройки ClickHouse® через интерфейсы Yandex Cloud
Чтобы задать настройки ClickHouse®:
- В консоли управления
перейдите на страницу каталога и выберите сервис Managed Service for ClickHouse. - Выберите кластер и нажмите кнопку Редактировать на панели сверху.
- В блоке Настройки СУБД нажмите кнопку Настроить.
- Задайте настройки ClickHouse®.
- Нажмите кнопку Сохранить изменения.
Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.
По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name
или --folder-id
.
Чтобы задать настройки ClickHouse®:
-
Посмотрите полный список настроек, установленных для кластера:
yc managed-clickhouse cluster get <имя_или_идентификатор_кластера> --full
-
Посмотрите описание команды CLI для изменения конфигурации кластера:
yc managed-clickhouse cluster update-config --help
-
Установите нужные значения параметров:
yc managed-clickhouse cluster update-config <имя_или_идентификатор_кластера> \ --set <имя_параметра_1>=<значение_1>,...
Чтобы задать настройки ClickHouse®:
-
Откройте актуальный конфигурационный файл Terraform с планом инфраструктуры.
О том, как создать такой файл, см. в разделе Создание кластера.
-
В описании кластера Managed Service for ClickHouse®, в блоке
clickhouse.config
, измените значения параметров:resource "yandex_mdb_clickhouse_cluster" "<имя_кластера>" { ... clickhouse { ... config { # Общие настройки СУБД ... merge_tree { # Настройки движка MergeTree ... } kafka { # Общие настройки получения данных из Apache Kafka ... } kafka_topic { # Настройки отдельного топика Apache Kafka ... } rabbit_mq { # Настройки получения данных из RabbitMQ username = "<имя_пользователя>" password = "<пароль>" } compression { # Настройки сжатия данных method = "<метод_сжатия>" min_part_size = <размер_куска_данных> min_part_size_ratio = <отношение_размеров> } graphite_rollup { # Настройки движка GraphiteMergeTree для прореживания, агрегирования и усреднения (rollup) данных Graphite. ... } } ... } ... }
Где:
method
— метод сжатия:LZ4
илиZSTD
.min_part_size
— минимальный размер куска данных таблицы в байтах.min_part_size_ratio
— отношение размера наименьшего куска данных в таблице к полному размеру таблицы.
-
Проверьте корректность настроек.
-
В командной строке перейдите в каталог, в котором расположены актуальные конфигурационные файлы Terraform с планом инфраструктуры.
-
Выполните команду:
terraform validate
Если в файлах конфигурации есть ошибки, Terraform на них укажет.
-
-
Подтвердите изменение ресурсов.
-
Выполните команду для просмотра планируемых изменений:
terraform plan
Если конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.
-
Если вас устраивают планируемые изменения, внесите их:
-
Выполните команду:
terraform apply
-
Подтвердите изменение ресурсов.
-
Дождитесь завершения операции.
-
-
Подробнее см. в документации провайдера Terraform
Ограничения по времени
Провайдер Terraform ограничивает время на выполнение операций с кластером Managed Service for ClickHouse®:
- создание, в т. ч. путем восстановления из резервной копии, — 60 минут;
- изменение — 90 минут;
- удаление — 30 минут.
Операции, длящиеся дольше указанного времени, прерываются.
Добавьте к описанию кластера блок timeouts
, например:
resource "yandex_mdb_clickhouse_cluster" "<имя_кластера>" {
...
timeouts {
create = "1h30m" # Полтора часа
update = "2h" # 2 часа
delete = "30m" # 30 минут
}
}
Чтобы задать настройки ClickHouse®, воспользуйтесь методом REST API update для ресурса Cluster или вызовом gRPC API ClusterService/Update и передайте в запросе:
- Идентификатор кластера в параметре
clusterId
. Чтобы узнать идентификатор, получите список кластеров в каталоге. - Нужные значения в параметре
configSpec.clickhouse.config
. - Список настроек, которые необходимо изменить, в параметре
updateMask
.
Важно
Этот метод API переопределит все параметры изменяемого объекта, которые не были явно переданы в запросе, на значения по умолчанию. Чтобы избежать этого, перечислите настройки, которые вы хотите изменить, в параметре updateMask
(одной строкой через запятую).
Задать настройки ClickHouse® в учетной записи пользователя
Передать настройки ClickHouse® можно при добавлении нового пользователя или изменении настроек уже созданного пользователя.
Добавить нового пользователя с настройками ClickHouse®
-
Подключитесь к кластеру под учетной записью
admin
. -
Создайте пользователя:
CREATE USER <имя_пользователя> IDENTIFIED WITH sha256_password BY '<пароль_пользователя>' SETTINGS <список_настроек_ClickHouse®>;
Примечание
Имя пользователя может содержать латинские буквы, цифры, дефис и нижнее подчеркивание, но должно начинаться с буквы или нижнего подчеркивания.
Длина пароля от 8 до 128 символов.
В параметре
SETTINGS
помимо значения настройки можно указать ее минимальное и максимальное значение. Пример для настройки idle_connection_timeout :CREATE USER <имя_пользователя> IDENTIFIED WITH sha256_password BY 'password' SETTINGS idle_connection_timeout = 60 MIN 5 MAX 120;
Подробнее о создании пользователей см. в документации ClickHouse®
.
Изменить настройки ClickHouse® у пользователя
-
Подключитесь к кластеру под учетной записью
admin
. -
Измените учетную запись пользователя:
ALTER USER <имя_пользователя> SETTINGS <список_настроек_ClickHouse®>;
Подробнее об изменении учетных записей см. в документации ClickHouse®
.
Задать настройки ClickHouse® в профиле настроек
Передать настройки ClickHouse® можно при создании или изменении профиля настроек.
Создать профиль с настройками ClickHouse®
-
Подключитесь к кластеру под учетной записью
admin
. -
Создайте профиль настроек:
CREATE SETTINGS PROFILE <название_профиля_настроек> SETTINGS <список_настроек_ClickHouse®>;
В параметре
SETTINGS
помимо значения настройки можно указать ее минимальное и максимальное значение. Пример для настройки idle_connection_timeout :CREATE SETTINGS PROFILE <название_профиля_настроек> SETTINGS idle_connection_timeout = 60 MIN 5 MAX 120;
Профиль настроек можно привязать к пользователю:
CREATE SETTINGS PROFILE <название_профиля_настроек> SETTINGS <список_настроек_ClickHouse®> TO <имя_пользователя>;
Подробнее о создании профилей настроек см. в документации ClickHouse®
.
Изменить настройки ClickHouse® в профиле настроек
-
Подключитесь к кластеру под учетной записью
admin
. -
Измените профиль настроек:
ALTER SETTINGS PROFILE <название_профиля_настроек> SETTINGS <список_настроек_ClickHouse®>;
В этом запросе можно задать граничные значения настроек и привязать профиль к пользователю. Подробнее об изменении профилей настроек см. в документации ClickHouse®
.
Задать настройки ClickHouse® в сессии
-
Подключитесь к кластеру.
-
Выполните запрос:
SET <имя_пользователя> SETTINGS <список_настроек_ClickHouse®>;
Примененные настройки будут действовать только во время открытой сессии.
-
Убедитесь, что настройки применились:
SELECT value FROM system.settings;
Чтобы посмотреть значение одной настройки, выполните запрос:
SELECT value FROM system.settings WHERE name='<название_настройки>';
Задать настройки ClickHouse® при подключении к БД через командную строку
-
Установите зависимости, необходимые для подключения к БД.
-
Посмотрите описание команды для подключения к БД:
clickhouse-client --help
Большинство флагов в выводе команды — это расширенные настройки ClickHouse®.
-
Выберите флаги с нужными настройками. Для этого соотнесите названия флагов с названиями настроек ClickHouse®
. -
Укажите выбранные флаги в команде на подключение к БД:
-
Подключение без SSL:
clickhouse-client --host <FQDN_любого_хоста_ClickHouse®> \ --user <имя_пользователя> \ --database <имя_БД> \ --port 9000 \ --ask-password \ <флаги_с_настройками_ClickHouse®>
-
Подключение с SSL:
clickhouse-client --host <FQDN_любого_хоста_ClickHouse®> \ --secure \ --user <имя_пользователя> \ --database <имя_БД> \ --port 9440 \ --ask-password \ <флаги_с_настройками_ClickHouse®>
-
Пример подключения без SSL с настройкой idle_connection_timeout
:clickhouse-client --host rc1d-***.mdb.yandexcloud.net \ --user user1 \ --database db1 \ --port 9440 \ --ask-password \ --idle_connection_timeout 60
-
-
Убедитесь, что настройки применились:
SELECT value FROM system.settings;
Чтобы посмотреть значение одной настройки, выполните запрос:
SELECT value FROM system.settings WHERE name='<название_настройки>';
ClickHouse® является зарегистрированным товарным знаком ClickHouse, Inc