Изменение настроек кластера ClickHouse®
После создания кластера вы можете:
-
Включить управление пользователями и базами данных через SQL.
-
Переместить кластер в другой каталог.
Подробнее о других изменениях кластера:
Изменить настройки сервисного аккаунта
Для привязки сервисного аккаунта к кластеру Managed Service for ClickHouse® убедитесь, что вашему аккаунту в Yandex Cloud назначена роль iam.serviceAccounts.user или выше.
Важно
Если для доступа к объектам из Object Storage в кластере уже используется сервисный аккаунт, то его смена может привести к недоступности этих объектов и нарушению работы кластера. Перед изменением настроек сервисного аккаунта убедитесь, что кластер не использует соответствующие объекты.
Чтобы изменить настройки сервисного аккаунта:
- В консоли управления
перейдите на страницу каталога и выберите сервис Managed Service for ClickHouse. - Выберите кластер и нажмите кнопку Редактировать на панели сверху.
- В разделе Сервисные настройки выберите нужный сервисный аккаунт из списка или создайте новый. Подробнее о настройке сервисного аккаунта см. в разделе Настройка доступа к Object Storage из кластера ClickHouse®.
Изменить класс хостов
Примечание
В кластерах с поддержкой ClickHouse® Keeper хосты ZooKeeper не используются. Подробнее см. в разделе Репликация.
При смене класса хостов:
- Кластер из одного хоста будет недоступен несколько минут, соединения с БД будут прерваны.
- В кластере из нескольких хостов каждый хост по очереди будет остановлен и обновлен. Остановленный хост будет недоступен несколько минут.
- Подключение по особому FQDN не гарантирует стабильность соединения с БД: пользовательские сессии могут быть прерваны.
Рекомендуется изменять класс хостов только во время отсутствия рабочей нагрузки на кластер.
Класс хостов влияет на количество оперативной памяти, доступной для использования ClickHouse®. Подробнее см. в разделе Управление памятью.
Минимальное количество ядер для одного хоста ZooKeeper зависит от суммарного количества ядер хостов ClickHouse®. Подробнее см. в разделе Репликация.
- В консоли управления
перейдите на страницу каталога и выберите сервис Managed Service for ClickHouse. - Выберите кластер и нажмите кнопку Редактировать на панели сверху.
- Чтобы изменить класс хостов ClickHouse®, в блоке Ресурсы выберите платформу, тип виртуальной машины и нужный класс хоста.
- Чтобы изменить класс хостов ZooKeeper, в блоке Класс хоста ZooKeeper выберите платформу, тип виртуальной машины и нужный класс хоста ZooKeeper.
- Нажмите кнопку Сохранить изменения.
Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.
По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name
или --folder-id
.
Чтобы изменить класс хостов для кластера:
-
Посмотрите описание команды CLI для изменения кластера:
yc managed-clickhouse cluster update --help
-
Запросите список доступных классов хостов (в колонке
ZONE IDS
указаны зоны доступности, в которых можно выбрать соответствующий класс):yc managed-clickhouse resource-preset list +-----------+--------------------------------+-------+----------+ | ID | ZONE IDS | CORES | MEMORY | +-----------+--------------------------------+-------+----------+ | s1.micro | ru-central1-a, ru-central1-b, | 2 | 8.0 GB | | | ru-central1-d | | | | ... | +-----------+--------------------------------+-------+----------+
-
Укажите нужный класс в команде изменения кластера:
yc managed-clickhouse cluster update <имя_или_идентификатор_кластера> \ --clickhouse-resource-preset=<идентификатор_класса>
Managed Service for ClickHouse® запустит операцию изменения класса хостов для кластера.
-
Чтобы изменить класс хостов ZooKeeper, передайте нужное значение в параметре
--zookeeper-resource-preset
.
-
Откройте актуальный конфигурационный файл Terraform с планом инфраструктуры.
О том, как создать такой файл, см. в разделе Создание кластера.
-
Измените в описании кластера Managed Service for ClickHouse® значение параметра
resource_preset_id
в блокахclickhouse.resources
иzookeeper.resources
для хостов ClickHouse® и ZooKeeper соответственно:resource "yandex_mdb_clickhouse_cluster" "<имя_кластера>" { ... clickhouse { resources { resource_preset_id = "<класс_хостов_ClickHouse®>" ... } } zookeeper { resources { resource_preset_id = "<класс_хостов_ZooKeeper>" ... } } }
-
Проверьте корректность настроек.
-
В командной строке перейдите в каталог, в котором расположены актуальные конфигурационные файлы 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 минут
}
}
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>"
-
Запросите список доступных классов хостов:
-
Воспользуйтесь методом ResourcePreset.list и выполните запрос, например, с помощью cURL
:curl \ --request GET \ --header "Authorization: Bearer $IAM_TOKEN" \ --url 'https://mdb.api.cloud.yandex.net/managed-clickhouse/v1/resourcePresets'
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
-
-
Измените класс хостов на нужный:
-
Воспользуйтесь методом Cluster.update и выполните запрос, например, с помощью cURL
:Важно
Метод API переопределит все параметры изменяемого объекта, которые не были явно переданы в запросе, на значения по умолчанию. Чтобы избежать этого, перечислите настройки, которые вы хотите изменить, в параметре
updateMask
(одной строкой через запятую).curl \ --request PATCH \ --header "Authorization: Bearer $IAM_TOKEN" \ --header "Content-Type: application/json" \ --url 'https://mdb.api.cloud.yandex.net/managed-clickhouse/v1/clusters/<идентификатор_кластера>' \ --data '{ "updateMask": "configSpec.clickhouse.resources.resourcePresetId,configSpec.zookeeper.resources.resourcePresetId", "configSpec": { "clickhouse": { "resources": { "resourcePresetId": "<идентификатор_класса_хостов_ClickHouse®>" } }, "zookeeper": { "resources": { "resourcePresetId": "<идентификатор_класса_хостов_ZooKeeper>" } } } }'
Где:
-
updateMask
— перечень изменяемых параметров в одну строку через запятую.Укажите нужные параметры:
configSpec.clickhouse.resources.resourcePresetId
— если нужно изменить класс хостов ClickHouse®.configSpec.zookeeper.resources.resourcePresetId
— если нужно изменить класс хостов ZooKeeper.
В примере запроса изменяется как класс хостов ClickHouse®, так и класс хостов ZooKeeper.
-
configSpec.clickhouse.resources.resourcePresetId
— идентификатор класса хостов ClickHouse®. -
configSpec.zookeeper.resources.resourcePresetId
— идентификатор класса хостов ZooKeeper.
Идентификатор кластера можно запросить со списком кластеров в каталоге. Список доступных классов хостов с их идентификаторами был получен ранее.
-
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
-
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>"
-
Клонируйте репозиторий cloudapi
:cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapi
Далее предполагается, что содержимое репозитория находится в директории
~/cloudapi/
. -
Запросите список доступных классов хостов:
-
Воспользуйтесь вызовом ResourcePresetService/List и выполните запрос, например, с помощью gRPCurl
:grpcurl \ -format json \ -import-path ~/cloudapi/ \ -import-path ~/cloudapi/third_party/googleapis/ \ -proto ~/cloudapi/yandex/cloud/mdb/clickhouse/v1/resource_preset_service.proto \ -rpc-header "Authorization: Bearer $IAM_TOKEN" \ mdb.api.cloud.yandex.net:443 \ yandex.cloud.mdb.clickhouse.v1.ResourcePresetService.List
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
-
-
Измените класс хостов на нужный:
-
Воспользуйтесь вызовом ClusterService/Update и выполните запрос, например, с помощью gRPCurl
:Важно
Метод API переопределит все параметры изменяемого объекта, которые не были явно переданы в запросе, на значения по умолчанию. Чтобы избежать этого, перечислите настройки, которые вы хотите изменить, в параметре
update_mask
(в виде массива строкpaths[]
).Формат перечисления настроек
"update_mask": { "paths": [ "<настройка_1>", "<настройка_2>", ... "<настройка_N>" ] }
grpcurl \ -format json \ -import-path ~/cloudapi/ \ -import-path ~/cloudapi/third_party/googleapis/ \ -proto ~/cloudapi/yandex/cloud/mdb/clickhouse/v1/cluster_service.proto \ -rpc-header "Authorization: Bearer $IAM_TOKEN" \ -d '{ "cluster_id": "<идентификатор_кластера>", "update_mask": { "paths": [ "config_spec.clickhouse.resources.resource_preset_id", "config_spec.zookeeper.resources.resource_preset_id" ] }, "config_spec": { "clickhouse": { "resources": { "resource_preset_id": "<идентификатор_класса_хостов_ClickHouse®>" } }, "zookeeper": { "resources": { "resource_preset_id": "<идентификатор_класса_хостов_ZooKeeper>" } } } }' \ mdb.api.cloud.yandex.net:443 \ yandex.cloud.mdb.clickhouse.v1.ClusterService.Update
Где:
-
update_mask
— перечень изменяемых параметров в виде массива строкpaths[]
.Укажите нужные параметры:
config_spec.clickhouse.resources.resource_preset_id
— если нужно изменить класс хостов ClickHouse®.config_spec.zookeeper.resources.resource_preset_id
— если нужно изменить класс хостов ZooKeeper.
В примере запроса изменяется как класс хостов ClickHouse®, так и класс хостов ZooKeeper.
-
config_spec.clickhouse.resources.resource_preset_id
— идентификатор класса хостов ClickHouse®. -
config_spec.zookeeper.resources.resource_preset_id
— идентификатор класса хостов ZooKeeper.
Идентификатор кластера можно запросить со списком кластеров в каталоге. Список доступных классов хостов с их идентификаторами был получен ранее.
-
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
-
Увеличить размер хранилища
Примечание
В кластерах с поддержкой ClickHouse® Keeper хосты ZooKeeper не используются. Подробнее см. в разделе Репликация.
Проверьте, что в облаке достаточно квот для увеличения хранилища. Откройте страницу Квоты
Чтобы увеличить размер хранилища для кластера:
- В консоли управления
перейдите на страницу каталога и выберите сервис Managed Service for ClickHouse. - Выберите кластер и нажмите кнопку Редактировать на панели сверху.
- В блоке Размер хранилища укажите необходимое значение.
- Нажмите кнопку Сохранить изменения.
Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.
По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name
или --folder-id
.
Чтобы увеличить размер хранилища для кластера:
-
Посмотрите описание команды CLI для изменения кластера:
yc managed-clickhouse cluster update --help
-
Укажите нужный размер хранилища в команде изменения кластера (должен быть не меньше, чем значение
disk_size
в свойствах кластера):yc managed-clickhouse cluster update <имя_или_идентификатор_кластера> \ --clickhouse-disk-size <размер_хранилища_ГБ>
-
Чтобы увеличить размер хранилища хостов ZooKeeper, передайте нужное значение в параметре
--zookeeper-disk-size
.
Чтобы увеличить размер хранилища:
-
Откройте актуальный конфигурационный файл Terraform с планом инфраструктуры.
О том, как создать такой файл, см. в разделе Создание кластера.
-
Измените в описании кластера Managed Service for ClickHouse® значение параметра
disk_size
в блокахclickhouse.resources
иzookeeper.resources
для хостов ClickHouse® и ZooKeeper соответственно:resource "yandex_mdb_clickhouse_cluster" "<имя_кластера>" { ... clickhouse { resources { disk_size = <размер_хранилища_ГБ> ... } } zookeeper { resources { disk_size = <размер_хранилища_ГБ> ... } } }
-
Проверьте корректность настроек.
-
В командной строке перейдите в каталог, в котором расположены актуальные конфигурационные файлы 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 минут
}
}
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>"
-
Воспользуйтесь методом Cluster.update и выполните запрос, например, с помощью cURL
:Важно
Метод API переопределит все параметры изменяемого объекта, которые не были явно переданы в запросе, на значения по умолчанию. Чтобы избежать этого, перечислите настройки, которые вы хотите изменить, в параметре
updateMask
(одной строкой через запятую).curl \ --request PATCH \ --header "Authorization: Bearer $IAM_TOKEN" \ --header "Content-Type: application/json" \ --url 'https://mdb.api.cloud.yandex.net/managed-clickhouse/v1/clusters/<идентификатор_кластера>' \ --data '{ "updateMask": "configSpec.clickhouse.resources.diskSize,configSpec.zookeeper.resources.diskSize", "configSpec": { "clickhouse": { "resources": { "diskSize": "<размер_хранилища_в_байтах>" } }, "zookeeper": { "resources": { "diskSize": "<размер_хранилища_в_байтах>" } } } }'
Где:
-
updateMask
— перечень изменяемых параметров в одну строку через запятую.Укажите нужные параметры:
configSpec.clickhouse.resources.diskSize
— если нужно увеличить размер хранилища хостов ClickHouse®.configSpec.zookeeper.resources.diskSize
— если нужно увеличить размер хранилища хостов ZooKeeper.
В примере запроса размер хранилища увеличивается как для хостов ClickHouse®, так и для хостов ZooKeeper.
-
configSpec.clickhouse.resources.diskSize
— размер хранилища хостов ClickHouse® в байтах. -
configSpec.zookeeper.resources.diskSize
— размер хранилища хостов ZooKeeper в байтах.
Идентификатор кластера можно запросить со списком кластеров в каталоге.
-
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>"
-
Клонируйте репозиторий cloudapi
:cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapi
Далее предполагается, что содержимое репозитория находится в директории
~/cloudapi/
. -
Воспользуйтесь вызовом ClusterService/Update и выполните запрос, например, с помощью gRPCurl
:Важно
Метод API переопределит все параметры изменяемого объекта, которые не были явно переданы в запросе, на значения по умолчанию. Чтобы избежать этого, перечислите настройки, которые вы хотите изменить, в параметре
update_mask
(в виде массива строкpaths[]
).Формат перечисления настроек
"update_mask": { "paths": [ "<настройка_1>", "<настройка_2>", ... "<настройка_N>" ] }
grpcurl \ -format json \ -import-path ~/cloudapi/ \ -import-path ~/cloudapi/third_party/googleapis/ \ -proto ~/cloudapi/yandex/cloud/mdb/clickhouse/v1/cluster_service.proto \ -rpc-header "Authorization: Bearer $IAM_TOKEN" \ -d '{ "cluster_id": "<идентификатор_кластера>", "update_mask": { "paths": [ "config_spec.clickhouse.resources.disk_size", "config_spec.zookeeper.resources.disk_size" ] }, "config_spec": { "clickhouse": { "resources": { "disk_size": "<размер_хранилища_в_байтах>" } }, "zookeeper": { "resources": { "disk_size": "<размер_хранилища_в_байтах>" } } } }' \ mdb.api.cloud.yandex.net:443 \ yandex.cloud.mdb.clickhouse.v1.ClusterService.Update
Где:
-
update_mask
— перечень изменяемых параметров в виде массива строкpaths[]
.Укажите нужные параметры:
config_spec.clickhouse.resources.disk_size
— если нужно увеличить размер хранилища хостов ClickHouse®.config_spec.zookeeper.resources.disk_size
— если нужно увеличить размер хранилища хостов ZooKeeper.
В примере запроса размер хранилища увеличивается как для хостов ClickHouse®, так и для хостов ZooKeeper.
-
config_spec.clickhouse.resources.disk_size
— размер хранилища хостов ClickHouse® в байтах. -
config_spec.zookeeper.resources.disk_size
— размер хранилища хостов ZooKeeper в байтах.
Идентификатор кластера можно запросить со списком кластеров в каталоге.
-
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
Включить управление пользователями и базами данных через SQL
Сервис Managed Service for ClickHouse® позволяет включить управление пользователями и базами данных кластера через SQL.
Внимание
Управление пользователями и базами данных через стандартные интерфейсы Yandex Cloud (консоль управления, CLI, Terraform, API) станет недоступно.
Включенные настройки управления пользователями или базами данных через SQL невозможно выключить.
- Перейдите на страницу каталога и выберите сервис Managed Service for ClickHouse.
- Выберите кластер и нажмите кнопку Редактировать на панели сверху.
- Для управления пользователями через SQL, в блоке Настройки СУБД включите настройку Управление пользователями через SQL и укажите пароль пользователя
admin
. - Для управления базами данных через SQL, в блоке Настройки СУБД включите настройки Управление пользователями через SQL и Управление базами данных через SQL, укажите пароль пользователя
admin
. - Нажмите кнопку Сохранить изменения.
Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.
По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name
или --folder-id
.
-
Чтобы включить режим управления пользователями через SQL:
- задайте значение
true
для параметра--enable-sql-user-management
; - задайте пароль для пользователя
admin
в параметре--admin-password
.
yc managed-clickhouse cluster update <имя_или_идентификатор_кластера> \ ... --enable-sql-user-management true \ --admin-password "<пароль_пользователя_admin>"
- задайте значение
-
Чтобы включить режим управления базами данных через SQL:
- задайте значение
true
для параметров--enable-sql-user-management
и--enable-sql-database-management
; - задайте пароль для пользователя
admin
в параметре--admin-password
.
yc managed-clickhouse cluster update <имя_или_идентификатор_кластера> \ ... --enable-sql-user-management true \ --enable-sql-database-management true \ --admin-password "<пароль_пользователя_admin>"
- задайте значение
-
Откройте актуальный конфигурационный файл Terraform с планом инфраструктуры.
О том, как создать такой файл, см. в разделе Создание кластера.
-
Чтобы включить режим управления пользователями через SQL, добавьте к описанию кластера поле
sql_user_management
со значениемtrue
и полеadmin_password
с паролем пользователяadmin
:resource "yandex_mdb_clickhouse_cluster" "<имя_кластера>" { name = "<имя_кластера>" ... admin_password = "<пароль_пользователя_admin>" sql_user_management = true ... }
-
Чтобы включить режим управления базами данных через SQL, добавьте к описанию кластера поля
sql_user_management
иsql_database_management
со значениемtrue
, а также полеadmin_password
с паролем пользователяadmin
:resource "yandex_mdb_clickhouse_cluster" "<имя_кластера>" { name = "<имя_кластера>" ... admin_password = "<пароль_пользователя_admin>" sql_database_management = true sql_user_management = true ... }
-
Проверьте корректность настроек.
-
В командной строке перейдите в каталог, в котором расположены актуальные конфигурационные файлы 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 минут
}
}
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>"
-
Воспользуйтесь методом Cluster.update и выполните запрос, например, с помощью cURL
:Важно
Метод API переопределит все параметры изменяемого объекта, которые не были явно переданы в запросе, на значения по умолчанию. Чтобы избежать этого, перечислите настройки, которые вы хотите изменить, в параметре
updateMask
(одной строкой через запятую).curl \ --request PATCH \ --header "Authorization: Bearer $IAM_TOKEN" \ --header "Content-Type: application/json" \ --url 'https://mdb.api.cloud.yandex.net/managed-clickhouse/v1/clusters/<идентификатор_кластера>' \ --data '{ "updateMask": "configSpec.adminPassword,configSpec.sqlUserManagement,configSpec.sqlDatabaseManagement", "configSpec": { "adminPassword": "<пароль_пользователя_admin>", "sqlUserManagement": <управление_пользователями_через_SQL>, "sqlDatabaseManagement": <управление_базами_данных_через_SQL> } }'
Где:
-
updateMask
— перечень изменяемых параметров в одну строку через запятую.Укажите нужные параметры:
configSpec.adminPassword
— пароль пользователяadmin
, с помощью которого осуществляется управление.configSpec.sqlUserManagement
— если нужно включить управление пользователями через SQL.configSpec.sqlDatabaseManagement
— если нужно включить управление базами данных через SQL.
В примере запроса включается и управление пользователями, и управление базами данных черех SQL.
-
configSpec.adminPassword
— пароль пользователяadmin
. -
configSpec.sqlUserManagement
— режим управления пользователями через SQL:true
илиfalse
. -
configSpec.sqlDatabaseManagement
— режим управления базами данных через SQL:true
илиfalse
. Необходимо, чтобы был включен режим управления пользователями через SQL.
Идентификатор кластера можно запросить со списком кластеров в каталоге.
-
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>"
-
Клонируйте репозиторий cloudapi
:cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapi
Далее предполагается, что содержимое репозитория находится в директории
~/cloudapi/
. -
Воспользуйтесь вызовом ClusterService/Update и выполните запрос, например, с помощью gRPCurl
:Важно
Метод API переопределит все параметры изменяемого объекта, которые не были явно переданы в запросе, на значения по умолчанию. Чтобы избежать этого, перечислите настройки, которые вы хотите изменить, в параметре
update_mask
(в виде массива строкpaths[]
).Формат перечисления настроек
"update_mask": { "paths": [ "<настройка_1>", "<настройка_2>", ... "<настройка_N>" ] }
grpcurl \ -format json \ -import-path ~/cloudapi/ \ -import-path ~/cloudapi/third_party/googleapis/ \ -proto ~/cloudapi/yandex/cloud/mdb/clickhouse/v1/cluster_service.proto \ -rpc-header "Authorization: Bearer $IAM_TOKEN" \ -d '{ "cluster_id": "<идентификатор_кластера>", "update_mask": { "paths": [ "config_spec.admin_password", "config_spec.sql_user_management", "config_spec.sql_database_management" ] }, "config_spec": { "admin_password": "<пароль_пользователя_admin>", "sql_user_management": <управление_пользователями_через_SQL>, "sql_database_management": <управление_базами_данных_через_SQL> } }' \ mdb.api.cloud.yandex.net:443 \ yandex.cloud.mdb.clickhouse.v1.ClusterService.Update
Где:
-
update_mask
— перечень изменяемых параметров в виде массива строкpaths[]
.Укажите нужные параметры:
config_spec.admin_password
— пароль пользователяadmin
, с помощью которого осуществляется управление.config_spec.sql_user_management
— если нужно включить управление пользователями через SQL.config_spec.sql_database_management
— если нужно включить управление базами данных через SQL.
В примере запроса включается и управление пользователями, и управление базами данных черех SQL.
-
config_spec.admin_password
— пароль пользователяadmin
. -
config_spec.sql_user_management
— режим управления пользователями через SQL:true
илиfalse
. -
config_spec.sql_database_management
— режим управления базами данных через SQL:true
илиfalse
. Необходимо, чтобы был включен режим управления пользователями через SQL.
Идентификатор кластера можно запросить со списком кластеров в каталоге.
-
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
Изменить дополнительные настройки кластера
-
В консоли управления
перейдите на страницу каталога и выберите сервис Managed Service for ClickHouse. -
Выберите кластер и нажмите кнопку Редактировать на панели сверху.
-
В блоке Сервисные настройки измените дополнительные настройки кластера:
-
Начало резервного копирования (UTC) — промежуток времени, в течение которого начинается резервное копирование кластера. Время указывается по UTC в 24-часовом формате. По умолчанию —
22:00 - 23:00
UTC. -
Окно обслуживания — настройки времени технического обслуживания:
- Чтобы разрешить проведение технического обслуживания в любое время, выберите пункт произвольное (по умолчанию).
- Чтобы указать предпочтительное время начала обслуживания, выберите пункт по расписанию и укажите нужные день недели и час дня по UTC. Например, можно выбрать время, когда кластер наименее загружен.
Операции по техническому обслуживанию проводятся для включенных и выключенных кластеров. Они могут включать в себя: обновление СУБД, применение патчей и так далее.
-
Доступ из DataLens — опция разрешает анализировать данные из кластера в сервисе Yandex DataLens.
-
Доступ из WebSQL — опция разрешает выполнять SQL-запросы к базам данных кластера из консоли управления Yandex Cloud с помощью сервиса Yandex WebSQL.
-
Доступ из Метрики и AppMetrica — опция разрешает импортировать данные из AppMetrica
в кластер. -
Доступ из Serverless — включите эту опцию, чтобы разрешить доступ к кластеру из сервиса Yandex Cloud Functions. Подробнее о настройке доступа см. в документации Cloud Functions.
-
Доступ из Yandex Query — включите эту опцию, чтобы разрешить доступ к кластеру из сервиса Yandex Query. Функциональность находится на стадии Preview.
-
Защита от удаления — управляет защитой кластера, его баз данных и пользователей от непреднамеренного удаления.
Включенная защита от удаления не помешает подключиться вручную и удалить содержимое базы данных.
-
-
Нажмите кнопку Сохранить изменения.
Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.
По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name
или --folder-id
.
Чтобы изменить дополнительные настройки кластера:
-
Посмотрите описание команды CLI для изменения кластера:
yc managed-clickhouse cluster update --help
-
Выполните команду, передав список настроек, которые хотите изменить:
yc managed-clickhouse cluster update <имя_или_идентификатор_кластера> \ --backup-window-start <время_начала_резервного_копирования> \ --datalens-access=<true_или_false> \ --metrika-access=<true_или_false> \ --serverless-access=<true_или_false> \ --websql-access=<true_или_false> \ --yandexquery-access=<true_или_false> \ --deletion-protection \ --maintenance-window type=<тип_технического_обслуживания>,` `day=<день_недели>,` `hour=<час_дня>
Вы можете изменить следующие настройки:
--backup-window-start
— время начала резервного копирования кластера, задается по UTC в форматеHH:MM:SS
. Если время не задано, резервное копирование начнется в 22:00 UTC.
-
--datalens-access
— разрешает доступ из DataLens. Значение по умолчанию —false
. Подробнее о настройке подключения см. в разделе Подключение из DataLens. -
--metrika-access
— разрешает импорт данных из AppMetrika в кластер . Значение по умолчанию —false
. -
--serverless-access
— разрешает доступ к кластеру из сервиса Yandex Cloud Functions. Значение по умолчанию —false
. Подробнее о настройке доступа см. в документации Cloud Functions. -
--websql-access
— разрешает выполнять SQL-запросы к базам данных кластера из консоли управления Yandex Cloud с помощью сервиса Yandex WebSQL. Значение по умолчанию —false
. -
--yandexquery-access=true
— разрешает доступ к кластеру из сервиса Yandex Query. Функциональность находится на стадии Preview. Значение по умолчанию —false
. -
--deletion-protection
— защита кластера, его баз данных и пользователей от непреднамеренного удаления.Включенная защита от удаления не помешает подключиться вручную и удалить содержимое базы данных.
-
--maintenance-window
— настройки времени технического обслуживания (в т. ч. для выключенных кластеров), гдеtype
— тип технического обслуживания:anytime
(по умолчанию) — в любое время.weekly
— по расписанию. При задании этого значения укажите день недели и час дня:day
— день недели в форматеDDD
:MON
,TUE
,WED
,THU
,FRI
,SAT
илиSUN
.hour
— час дня по UTC в форматеHH
: от1
до24
.
Идентификатор и имя кластера можно получить со списком кластеров в каталоге.
-
Откройте актуальный конфигурационный файл Terraform с планом инфраструктуры.
О том, как создать такой файл, см. в разделе Создание кластера.
-
Чтобы изменить время начала резервного копирования, добавьте к описанию кластера Managed Service for ClickHouse® блок
backup_window_start
.resource "yandex_mdb_clickhouse_cluster" "<имя_кластера>" { ... backup_window_start { hours = <час_начала_резервного_копирования> minutes = <минута_начала_резервного_копирования> } ... }
-
Чтобы разрешить доступ к кластеру из других сервисов и выполнение SQL-запросов из консоли управления с помощью Yandex WebSQL, измените значения соответствующих полей в блоке
access
:resource "yandex_mdb_clickhouse_cluster" "<имя_кластера>" { ... access { data_lens = <доступ_из_DataLens> metrika = <доступ_из_Метрики_и_AppMetrika> serverless = <доступ_из_Cloud_Functions> web_sql = <выполнение_SQL-запросов_из_консоли_управления> yandex_query = <доступ_из_Yandex_Query> } ... }
Где:
-
data_lens
— доступ из DataLens:true
илиfalse
. -
metrika
— доступ из Метрики и AppMetrika:true
илиfalse
. -
serverless
— доступ из Cloud Functions:true
илиfalse
. -
yandex_query
— доступ из Yandex Query:true
илиfalse
. -
web_sql
— выполнение SQL-запросов из консоли управления:true
илиfalse
.
-
-
Чтобы настроить время технического обслуживания (в т. ч. для выключенных кластеров), добавьте к описанию кластера блок
maintenance_window
:resource "yandex_mdb_clickhouse_cluster" "<имя_кластера>" { ... maintenance_window { type = <тип_технического_обслуживания> day = <день_недели> hour = <час_дня> } ... }
Где:
type
— тип технического обслуживания. Принимает значения:ANYTIME
— в любое время.WEEKLY
— по расписанию.
day
— день недели для типаWEEKLY
в форматеDDD
. Например,MON
.hour
— час дня по UTC для типаWEEKLY
в форматеHH
. Например,21
.
-
Чтобы включить защиту кластера от непреднамеренного удаления пользователем вашего облака, добавьте к описанию кластера поле
deletion_protection
со значениемtrue
:resource "yandex_mdb_clickhouse_cluster" "<имя_кластера>" { ... deletion_protection = <защита_от_удаления_кластера> }
Включенная защита от удаления не помешает подключиться вручную и удалить содержимое базы данных.
-
Проверьте корректность настроек.
-
В командной строке перейдите в каталог, в котором расположены актуальные конфигурационные файлы 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 минут
}
}
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>"
-
Воспользуйтесь методом Cluster.update и выполните запрос, например, с помощью cURL
:Важно
Метод API переопределит все параметры изменяемого объекта, которые не были явно переданы в запросе, на значения по умолчанию. Чтобы избежать этого, перечислите настройки, которые вы хотите изменить, в параметре
updateMask
(одной строкой через запятую).-
Создайте файл
body.json
и добавьте в него следующее содержимое:{ "updateMask": "<перечень_изменяемых_настроек>", "configSpec": { "backupWindowStart": { "hours": "<часы>", "minutes": "<минуты>", "seconds": "<секунды>", "nanos": "<наносекунды>" }, "access": { "dataLens": <доступ_из_DataLens>, "webSql": <выполнение_SQL-запросов>, "metrika": <импорт_данных_из_AppMetrica>, "serverless": <доступ_из_Yandex Cloud Functions>, "dataTransfer": <доступ_из_Yandex Data Transfer>, "yandexQuery": <доступ_из_Yandex Query> } }, "maintenanceWindow": { "anytime": {}, "weeklyMaintenanceWindow": { "day": "<день_недели>", "hour": "<час_дня_по_UTC>" } }, "deletionProtection": <защита_от_удаления> }
Где:
-
updateMask
— перечень изменяемых параметров в одну строку через запятую. -
configSpec.backupWindowStart
— время начала резервного копирования (UTC):hours
— часы в 24-часовом формате.minutes
— минуты.seconds
— секунды.nanos
— наносекунды.
-
configSpec.access
— настройки, которые разрешают доступ к кластеру из других сервисов и выполнение SQL-запросов из консоли управления с помощью Yandex WebSQL:-
dataLens
— разрешить доступ из DataLens:true
илиfalse
. Значение по умолчанию —false
. Подробнее о настройке подключения см. в разделе Подключение из DataLens. -
webSql
— разрешить выполнять SQL-запросы к базам данных кластера из консоли управления Yandex Cloud с помощью сервиса Yandex WebSQL:true
илиfalse
. Значение по умолчанию —false
. -
metrika
— разрешить импорт данных из AppMetrika в кластер :true
илиfalse
. Значение по умолчанию —false
. -
serverless
— разрешить доступ к кластеру из сервиса Yandex Cloud Functions:true
илиfalse
. Значение по умолчанию —false
. Подробнее о настройке доступа см. в документации Cloud Functions. -
dataTransfer
— разрешить доступ к кластеру из сервиса Yandex Data Transfer в Serverless-режиме:true
илиfalse
. Значение по умолчанию —false
.Это позволит через специальную сеть подключаться к Yandex Data Transfer, запущенному в Kubernetes. В результате будут быстрее выполняться, например, запуск и деактивация трансфера.
-
yandexQuery
— разрешить доступ к кластеру из сервиса Yandex Query:true
илиfalse
. Функциональность находится на стадии Preview. Значение по умолчанию —false
.
-
-
maintenanceWindow
— настройки времени технического обслуживания (в т. ч. для выключенных кластеров). Выберите один из вариантов:anytime
— (по умолчанию) — в любое время.weeklyMaintenanceWindow
— по расписанию:day
— день недели в форматеDDD
:MON
,TUE
,WED
,THU
,FRI
,SAT
илиSUN
.hour
— час дня по UTC в форматеHH
: от1
до24
.
-
deletionProtection
— защитить кластер, его базы данных и пользователей от непреднамеренного удаления:true
илиfalse
. Значение по умолчанию —false
.Включенная защита от удаления не помешает подключиться вручную и удалить содержимое базы данных.
-
-
Выполните запрос:
curl \ --request PATCH \ --header "Authorization: Bearer $IAM_TOKEN" \ --header "Content-Type: application/json" \ --url 'https://mdb.api.cloud.yandex.net/managed-clickhouse/v1/clusters/<идентификатор_кластера>' \ --data '@body.json'
Идентификатор кластера можно запросить со списком кластеров в каталоге.
-
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>"
-
Клонируйте репозиторий cloudapi
:cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapi
Далее предполагается, что содержимое репозитория находится в директории
~/cloudapi/
. -
Воспользуйтесь вызовом ClusterService/Update и выполните запрос, например, с помощью gRPCurl
:Важно
Метод API переопределит все параметры изменяемого объекта, которые не были явно переданы в запросе, на значения по умолчанию. Чтобы избежать этого, перечислите настройки, которые вы хотите изменить, в параметре
update_mask
(в виде массива строкpaths[]
).Формат перечисления настроек
"update_mask": { "paths": [ "<настройка_1>", "<настройка_2>", ... "<настройка_N>" ] }
-
Создайте файл
body.json
и добавьте в него следующее содержимое:{ "cluster_id": "<идентификатор_кластера>", "update_mask": { "paths": [ <перечень_изменяемых_настроек> ] }, "config_spec": { "backup_window_start": { "hours": "<часы>", "minutes": "<минуты>", "seconds": "<секунды>", "nanos": "<наносекунды>" }, "access": { "data_lens": <доступ_из_DataLens>, "web_sql": <выполнение_SQL-запросов>, "metrika": <импорт_данных_из_AppMetrica>, "serverless": <доступ_из_Yandex Cloud Functions>, "data_transfer": <доступ_из_Yandex Data Transfer>, "yandex_query": <доступ_из_Yandex Query> } }, "maintenance_window": { "anytime": {}, "weekly_maintenance_window": { "day": "<день_недели>", "hour": "<час_дня_по_UTC>" } }, "deletion_protection": <защита_от_удаления> }
Где:
-
update_mask
— перечень изменяемых параметров в виде массива строкpaths[]
. -
config_spec.backup_window_start
— время начала резервного копирования (UTC):hours
— часы в 24-часовом формате.minutes
— минуты.seconds
— секунды.nanos
— наносекунды.
-
config_spec.access
— настройки, которые разрешают доступ к кластеру из других сервисов и выполнение SQL-запросов из консоли управления с помощью Yandex WebSQL:-
data_lens
— разрешить доступ из DataLens:true
илиfalse
. Значение по умолчанию —false
. Подробнее о настройке подключения см. в разделе Подключение из DataLens. -
web_sql
— разрешить выполнять SQL-запросы к базам данных кластера из консоли управления Yandex Cloud с помощью сервиса Yandex WebSQL:true
илиfalse
. Значение по умолчанию —false
. -
metrika
— разрешить импорт данных из AppMetrika в кластер :true
илиfalse
. Значение по умолчанию —false
. -
serverless
— разрешить доступ к кластеру из сервиса Yandex Cloud Functions:true
илиfalse
. Значение по умолчанию —false
. Подробнее о настройке доступа см. в документации Cloud Functions. -
data_transfer
— разрешить доступ к кластеру из сервиса Yandex Data Transfer в Serverless-режиме:true
илиfalse
. Значение по умолчанию —false
.Это позволит через специальную сеть подключаться к Yandex Data Transfer, запущенному в Kubernetes. В результате будут быстрее выполняться, например, запуск и деактивация трансфера.
-
yandex_query
— разрешить доступ к кластеру из сервиса Yandex Query:true
илиfalse
. Функциональность находится на стадии Preview. Значение по умолчанию —false
.
-
-
maintenance_window
— настройки времени технического обслуживания (в т. ч. для выключенных кластеров). Выберите один из вариантов:anytime
— (по умолчанию) — в любое время.weekly_maintenance_window
— по расписанию:day
— день недели в форматеDDD
:MON
,TUE
,WED
,THU
,FRI
,SAT
илиSUN
.hour
— час дня по UTC в форматеHH
: от1
до24
.
-
deletion_protection
— защитить кластер, его базы данных и пользователей от непреднамеренного удаления:true
илиfalse
. Значение по умолчанию —false
.Включенная защита от удаления не помешает подключиться вручную и удалить содержимое базы данных.
Идентификатор кластера можно запросить со списком кластеров в каталоге.
-
-
Выполните запрос:
grpcurl \ -format json \ -import-path ~/cloudapi/ \ -import-path ~/cloudapi/third_party/googleapis/ \ -proto ~/cloudapi/yandex/cloud/mdb/clickhouse/v1/cluster_service.proto \ -rpc-header "Authorization: Bearer $IAM_TOKEN" \ -d @ \ mdb.api.cloud.yandex.net:443 \ yandex.cloud.mdb.clickhouse.v1.ClusterService.Update \ < body.json
-
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
Переместить кластер
- Перейдите на страницу каталога и выберите сервис Managed Service for ClickHouse.
- Нажмите на значок
справа в строке кластера, который вы хотите переместить. - Выберите пункт Переместить.
- Выберите каталог, в который вы хотите переместить кластер.
- Нажмите кнопку Переместить.
Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.
По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name
или --folder-id
.
Чтобы переместить кластер:
-
Посмотрите описание команды CLI для перемещения кластера:
yc managed-clickhouse cluster move --help
-
Укажите каталог назначения в команде перемещения кластера:
yc managed-clickhouse cluster move <имя_или_идентификатор_кластера> \ --destination-folder-name=<имя_каталога_назначения>
Идентификатор кластера можно получить со списком кластеров в каталоге.
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>"
-
Воспользуйтесь методом Cluster.move и выполните запрос, например, с помощью cURL
:curl \ --request POST \ --header "Authorization: Bearer $IAM_TOKEN" \ --header "Content-Type: application/json" \ --url 'https://mdb.api.cloud.yandex.net/managed-clickhouse/v1/clusters/<идентификатор_кластера>:move' \ --data '{ "destinationFolderId": "<идентификатор_каталога_назначения>" }'
Где
destinationFolderId
— идентификатор каталога назначения, в который нужно переместить кластер. Этот идентификатор можно запросить со списком каталогов в облаке.Идентификатор кластера можно запросить со списком кластеров в каталоге.
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>"
-
Клонируйте репозиторий cloudapi
:cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapi
Далее предполагается, что содержимое репозитория находится в директории
~/cloudapi/
. -
Воспользуйтесь вызовом ClusterService/Move и выполните запрос, например, с помощью gRPCurl
:grpcurl \ -format json \ -import-path ~/cloudapi/ \ -import-path ~/cloudapi/third_party/googleapis/ \ -proto ~/cloudapi/yandex/cloud/mdb/clickhouse/v1/cluster_service.proto \ -rpc-header "Authorization: Bearer $IAM_TOKEN" \ -d '{ "cluster_id": "<идентификатор_кластера>", "destination_folder_id": "<идентификатор_каталога_назначения>" }' \ mdb.api.cloud.yandex.net:443 \ yandex.cloud.mdb.clickhouse.v1.ClusterService.Move
Где
destination_folder_id
— идентификатор каталога назначения, в который нужно переместить кластер. Этот идентификатор можно запросить со списком каталогов в облаке.Идентификатор кластера можно запросить со списком кластеров в каталоге.
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
Изменить группы безопасности
- В консоли управления
перейдите на страницу каталога и выберите сервис Managed Service for ClickHouse. - Выберите кластер и нажмите кнопку Редактировать на панели сверху.
- В блоке Сетевые настройки выберите группы безопасности для сетевого трафика кластера.
Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.
По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name
или --folder-id
.
Чтобы изменить список групп безопасности для кластера:
-
Посмотрите описание команды CLI для изменения кластера:
yc managed-clickhouse cluster update --help
-
Укажите нужные группы безопасности в команде изменения кластера:
yc managed-clickhouse cluster update <имя_кластера> \ --security-group-ids <список_идентификаторов_групп_безопасности>
-
Откройте актуальный конфигурационный файл Terraform с планом инфраструктуры.
О том, как создать такой файл, см. в разделе Создание кластера.
-
Измените значение параметра
security_group_ids
в описании кластера:resource "yandex_mdb_clickhouse_cluster" "<имя_кластера>" { ... security_group_ids = [ <список_идентификаторов_групп_безопасности_кластера> ] }
-
Проверьте корректность настроек.
-
В командной строке перейдите в каталог, в котором расположены актуальные конфигурационные файлы 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 минут
}
}
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>"
-
Воспользуйтесь методом Cluster.update и выполните запрос, например, с помощью cURL
:Важно
Метод API переопределит все параметры изменяемого объекта, которые не были явно переданы в запросе, на значения по умолчанию. Чтобы избежать этого, перечислите настройки, которые вы хотите изменить, в параметре
updateMask
(одной строкой через запятую).curl \ --request PATCH \ --header "Authorization: Bearer $IAM_TOKEN" \ --header "Content-Type: application/json" \ --url 'https://mdb.api.cloud.yandex.net/managed-clickhouse/v1/clusters/<идентификатор_кластера>' \ --data '{ "updateMask": "securityGroupIds", "securityGroupIds": [ <список_идентификаторов_групп_безопасности> ] }'
Где:
-
updateMask
— перечень изменяемых параметров в одну строку через запятую.В данном случае указан только один параметр:
securityGroupIds
. -
securityGroupIds
— массив строк. Каждая строка — идентификатор группы безопасности.Важно
Список назначенных кластеру групп безопасности будет полностью перезаписан списком, переданным в параметре
securityGroupIds
.Перед выполнением запроса убедитесь, что вы включили в этот список все нужные идентификаторы групп безопасности, в том числе существующие.
Идентификатор кластера можно запросить со списком кластеров в каталоге.
-
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>"
-
Клонируйте репозиторий cloudapi
:cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapi
Далее предполагается, что содержимое репозитория находится в директории
~/cloudapi/
. -
Воспользуйтесь вызовом ClusterService/Update и выполните запрос, например, с помощью gRPCurl
:Важно
Метод API переопределит все параметры изменяемого объекта, которые не были явно переданы в запросе, на значения по умолчанию. Чтобы избежать этого, перечислите настройки, которые вы хотите изменить, в параметре
update_mask
(в виде массива строкpaths[]
).Формат перечисления настроек
"update_mask": { "paths": [ "<настройка_1>", "<настройка_2>", ... "<настройка_N>" ] }
grpcurl \ -format json \ -import-path ~/cloudapi/ \ -import-path ~/cloudapi/third_party/googleapis/ \ -proto ~/cloudapi/yandex/cloud/mdb/clickhouse/v1/cluster_service.proto \ -rpc-header "Authorization: Bearer $IAM_TOKEN" \ -d '{ "cluster_id": "<идентификатор_кластера>", "update_mask": { "paths": [ "security_group_ids" ] }, "security_group_ids": [ <список_идентификаторов_групп_безопасности> ] }' \ mdb.api.cloud.yandex.net:443 \ yandex.cloud.mdb.clickhouse.v1.ClusterService.Update
Где:
-
update_mask
— перечень изменяемых параметров в виде массива строкpaths[]
.В данном случае указан только один параметр:
security_group_ids
. -
security_group_ids
— массив строк. Каждая строка — идентификатор группы безопасности.Важно
Список назначенных кластеру групп безопасности будет полностью перезаписан списком, переданным в параметре
security_group_ids
.Перед выполнением запроса убедитесь, что вы включили в этот список все нужные идентификаторы групп безопасности, в том числе существующие.
Идентификатор кластера можно запросить со списком кластеров в каталоге.
-
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
Важно
Может потребоваться дополнительная настройка групп безопасности для подключения к кластеру.
Изменить настройки гибридного хранилища
Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.
По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name
или --folder-id
.
Чтобы изменить настройки гибридного хранилища:
-
Посмотрите описание команды CLI для изменения кластера:
yc managed-clickhouse cluster update --help
-
Если гибридное хранилище в кластере выключено, включите его:
yc managed-clickhouse cluster update <имя_или_идентификатор_кластера> \ --cloud-storage=true
Примечание
Включенное однажды гибридное хранилище нельзя отключить.
-
Передайте список настроек, которые хотите изменить:
yc managed-clickhouse cluster update <имя_или_идентификатор_кластера> \ --cloud-storage-data-cache=<хранение_файлов> \ --cloud-storage-data-cache-max-size=<объем_памяти_в_байтах> \ --cloud-storage-move-factor=<доля_свободного_места> \ --cloud-storage-prefer-not-to-merge=<слияние_кусков_данных>
Вы можете изменить следующие настройки:
--cloud-storage-data-cache
— разрешает временное хранение файлов в кластерном хранилище. По умолчанию —true
(разрешено).--cloud-storage-data-cache-max-size
— определяет максимальный объем памяти (в байтах), выделяемый в кластерном хранилище для временного хранения файлов. По умолчанию —1073741824
(1 ГБ).--cloud-storage-move-factor
— устанавливает минимальную долю свободного места в кластерном хранилище. Если доля свободного места меньше этого значения, данные переносятся в Yandex Object Storage. Минимальное значение —0
, максимальное —1
, по умолчанию —0.01
.--cloud-storage-prefer-not-to-merge
— отключает слияние кусков данных в кластерном и объектном хранилищах. Чтобы отключить слияние, укажите значениеtrue
или передайте параметр без значения. Чтобы оставить слияние включенным, укажите значениеfalse
или не передавайте параметр в команде CLI при создании кластера.
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>"
-
Воспользуйтесь методом Cluster.update и выполните запрос, например, с помощью cURL
:Важно
Метод API переопределит все параметры изменяемого объекта, которые не были явно переданы в запросе, на значения по умолчанию. Чтобы избежать этого, перечислите настройки, которые вы хотите изменить, в параметре
updateMask
(одной строкой через запятую).curl \ --request PATCH \ --header "Authorization: Bearer $IAM_TOKEN" \ --header "Content-Type: application/json" \ --url 'https://mdb.api.cloud.yandex.net/managed-clickhouse/v1/clusters/<идентификатор_кластера>' \ --data '{ "updateMask": "<перечень_изменяемых_настроек>", "configSpec": { "cloudStorage": { "enabled": <использование_гибридного_хранилища>, "moveFactor": "<доля_свободного_места>", "dataCacheEnabled": <временное_хранение_файлов>, "dataCacheMaxSize": "<максимальный_объем_памяти_для_хранения_файлов>", "preferNotToMerge": <отключение_слияния_кусков_данных> } } }'
Где:
-
updateMask
— перечень изменяемых параметров в одну строку через запятую. -
configSpec.cloudStorage
— настройки гибридного хранилища:-
enabled
— включить гибридное хранилище в кластере, если оно выключено:true
илиfalse
. Значение по умолчанию —false
(выключено).Примечание
Включенное однажды гибридное хранилище нельзя отключить.
-
moveFactor
— минимальная доля свободного места в кластерном хранилище. Если доля свободного места меньше этого значения, данные переносятся в Yandex Object Storage.Минимальное значение —
0
, максимальное —1
, по умолчанию —0.01
. -
dataCacheEnabled
— разрешить временное хранение файлов в кластерном хранилище:true
илиfalse
.По умолчанию —
true
(разрешено). -
dataCacheMaxSize
— максимальный объем памяти (в байтах), выделяемый в кластерном хранилище для временного хранения файлов.По умолчанию —
1073741824
(1 ГБ). -
preferNotToMerge
— отключить слияние кусков данных в кластерном и объектном хранилищах:true
илиfalse
.Чтобы отключить слияние, укажите значение
true
. Чтобы оставить слияние включенным, укажите значениеfalse
.
-
Идентификатор кластера можно запросить со списком кластеров в каталоге.
-
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>"
-
Клонируйте репозиторий cloudapi
:cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapi
Далее предполагается, что содержимое репозитория находится в директории
~/cloudapi/
. -
Воспользуйтесь вызовом ClusterService/Update и выполните запрос, например, с помощью gRPCurl
:Важно
Метод API переопределит все параметры изменяемого объекта, которые не были явно переданы в запросе, на значения по умолчанию. Чтобы избежать этого, перечислите настройки, которые вы хотите изменить, в параметре
update_mask
(в виде массива строкpaths[]
).Формат перечисления настроек
"update_mask": { "paths": [ "<настройка_1>", "<настройка_2>", ... "<настройка_N>" ] }
grpcurl \ -format json \ -import-path ~/cloudapi/ \ -import-path ~/cloudapi/third_party/googleapis/ \ -proto ~/cloudapi/yandex/cloud/mdb/clickhouse/v1/cluster_service.proto \ -rpc-header "Authorization: Bearer $IAM_TOKEN" \ -d '{ "cluster_id": "<идентификатор_кластера>", "update_mask": { "paths": [ <перечень_изменяемых_настроек> ] }, "config_spec": { "cloud_storage": { "enabled": <использование_гибридного_хранилища>, "move_factor": "<доля_свободного_места>", "data_cache_enabled": <временное_хранение_файлов>, "data_cache_max_size": "<максимальный_объем_памяти_для_хранения_файлов>", "prefer_not_to_merge": <отключение_слияния_кусков_данных> } } }' \ mdb.api.cloud.yandex.net:443 \ yandex.cloud.mdb.clickhouse.v1.ClusterService.Update
Где:
-
update_mask
— перечень изменяемых параметров в виде массива строкpaths[]
. -
config_spec.cloud_storage
— настройки гибридного хранилища:-
enabled
— включить гибридное хранилище в кластере, если оно выключено:true
илиfalse
. Значение по умолчанию —false
(выключено).Примечание
Включенное однажды гибридное хранилище нельзя отключить.
-
move_factor
— минимальная доля свободного места в кластерном хранилище. Если доля свободного места меньше этого значения, данные переносятся в Yandex Object Storage.Минимальное значение —
0
, максимальное —1
, по умолчанию —0.01
. -
data_cache_enabled
— разрешить временное хранение файлов в кластерном хранилище:true
илиfalse
.По умолчанию —
true
(разрешено). -
data_cache_max_size
— максимальный объем памяти (в байтах), выделяемый в кластерном хранилище для временного хранения файлов.По умолчанию —
1073741824
(1 ГБ). -
prefer_not_to_merge
— отключить слияние кусков данных в кластерном и объектном хранилищах:true
илиfalse
.Чтобы отключить слияние, укажите значение
true
. Чтобы оставить слияние включенным, укажите значениеfalse
.
-
Идентификатор кластера можно запросить со списком кластеров в каталоге.
-
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
ClickHouse® является зарегистрированным товарным знаком ClickHouse, Inc