Изменение настроек ClickHouse® на уровне сервера
Вы можете задать настройки ClickHouse® на уровне сервера
-
С помощью интерфейсов Yandex Cloud. Так можно задать только настройки ClickHouse®, доступные в Yandex Cloud.
-
С помощью SQL-запросов. Так задаются настройки для таблиц MergeTree. Вы можете:
- задать настройки при создании таблицы;
- задать настройки существующей таблицы;
- вернуть значения по умолчанию для настроек существующей таблицы.
Задать настройки ClickHouse® через интерфейсы Yandex Cloud
Изменение некоторых настроек сервера приводит к перезапуску серверов ClickHouse® на хостах кластера.
Примечание
Значение настройки Max server memory usage
Чтобы задать настройки 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
(одной строкой через запятую).
Проверить настройки таблицы MergeTree
-
Подключитесь к базе данных в кластере.
-
Чтобы посмотреть все настройки, заданные на уровне таблицы, выполните запрос:
SHOW CREATE TABLE <название_таблицы>;
Важно
Выдача
SHOW CREATE TABLE
содержит только переопределенные пользователем настройки. Если заданное пользователем значение настройки совпадает со значением по умолчанию, эта настройка тоже отображается в выдаче.
Задать настройки таблиц MergeTree с помощью SQL-запросов
Изменить настройки при создании таблицы MergeTree
-
Подключитесь к базе данных в кластере.
-
Создайте таблицу. Чтобы задать ее настройки, перечислите их через запятую в параметре
SETTINGS
:CREATE TABLE <название_таблицы> ( <описание_колонок_таблицы> ) ENGINE = MergeTree PRIMARY KEY (<столбец_или_группа_столбцов>) SETTINGS <название_настройки> = <значение_настройки>, <название_настройки> = <значение_настройки>;
Пример запроса для настроек merge_with_ttl_timeout
и merge_with_recompression_ttl_timeout :CREATE TABLE <имя_таблицы> ( user_id UInt32, message String, ) ENGINE = MergeTree PRIMARY KEY (user_id) SETTINGS merge_with_ttl_timeout = 15000, merge_with_recompression_ttl_timeout = 15000;
Подробнее о создании таблиц MergeTree см. в документации ClickHouse®
Изменить настройки существующей таблицы MergeTree
-
Подключитесь к базе данных в кластере.
-
Чтобы изменить настройки для существующей таблицы, выполните запрос:
ALTER TABLE <имя_таблицы> MODIFY SETTING <название_настройки> = <новое_значение_настройки>;
Вы можете изменить несколько настроек в одном запросе. Для этого перечислите пары
<название_настройки> = <новое_значение_настройки>
через запятую.
Вернуть настройку таблицы MergeTree к значению по умолчанию
-
Подключитесь к базе данных в кластере.
-
Чтобы вернуть настройку существующей таблицы к значению по умолчанию, выполните запрос:
ALTER TABLE <имя_таблицы> RESET SETTING <название_настройки>;
Вы можете вернуть к значениям по умолчанию несколько настроек в одном запросе. Для этого перечислите названия настроек через запятую.
ClickHouse® является зарегистрированным товарным знаком ClickHouse, Inc