Изменение настроек кластера ClickHouse®
После создания кластера вы можете:
- Изменить настройки сервисного аккаунта.
- Изменить класс хостов.
- Изменить тип диска и увеличить размер хранилища.
- Включить управление пользователями и базами данных через SQL.
- Изменить дополнительные настройки кластера.
- Переместить кластер в другой каталог.
- Изменить группы безопасности кластера.
- Изменить настройки гибридного хранилища.
Подробнее о других изменениях кластера:
- Перенос кластера в другую зону доступности.
- Настройка серверов ClickHouse® согласно документации ClickHouse®
. - Изменение настроек ClickHouse® на уровне запроса.
Изменить настройки сервисного аккаунта
Для привязки сервисного аккаунта к кластеру 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), установите и инициализируйте его.
По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --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 не используются. Подробнее см. в разделе Репликация.
Проверьте, что в облаке достаточно квот для увеличения хранилища. Откройте страницу Квоты
Примечание
Чтобы изменить тип диска на local-ssd, обратитесь в техническую поддержку
Чтобы изменить тип диска и увеличить размер хранилища для кластера:
- В консоли управления
выберите каталог, в котором находится кластер. - Перейдите в сервис Managed Service for ClickHouse.
- Выберите кластер и нажмите кнопку Редактировать на панели сверху.
- Чтобы изменить тип диска и увеличить размер хранилища для хостов ClickHouse®, выберите нужное значение в блоке Размер хранилища.
- Чтобы изменить тип диска и увеличить размер хранилища для хостов ZooKeeper, выберите нужное значение в блоке Размер хранилища ZooKeeper.
- Нажмите кнопку Сохранить изменения.
Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.
По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.
Чтобы изменить тип диска и увеличить размер хранилища для кластера:
-
Посмотрите описание команды CLI для изменения кластера:
yc managed-clickhouse cluster update --help -
Укажите нужный тип диска и размер хранилища в команде изменения кластера:
yc managed-clickhouse cluster update <имя_или_идентификатор_кластера> \ --clickhouse-disk-size <размер_хранилища_ГБ> \ --clickhouse-disk-type <тип_диска>Новый размер хранилища должен быть не меньше, чем значение
disk_sizeв свойствах кластера.Имя и идентификатор кластера можно запросить со списком кластеров в каталоге.
-
Чтобы изменить тип диска и увеличить размер хранилища хостов ZooKeeper, передайте нужные значения в параметре
--zookeeper-disk-size.
Чтобы изменить тип диска и увеличить размер хранилища:
-
Откройте актуальный конфигурационный файл Terraform с планом инфраструктуры.
О том, как создать такой файл, см. в разделе Создание кластера.
-
Измените в описании кластера Managed Service for ClickHouse® значения параметров
disk_sizeиdisk_type_idв блокахclickhouse.resourcesиzookeeper.resourcesдля хостов ClickHouse® и ZooKeeper соответственно:resource "yandex_mdb_clickhouse_cluster" "<имя_кластера>" { ... clickhouse { resources { disk_size = <размер_хранилища_ГБ> disk_type_id = "<тип_диска>" ... } } zookeeper { resources { disk_size = <размер_хранилища_ГБ> disk_type_id = "<тип_диска>" ... } } } -
Проверьте корректность настроек.
-
В командной строке перейдите в каталог, в котором расположены актуальные конфигурационные файлы 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.clickhouse.resources.diskTypeId,configSpec.zookeeper.resources.diskSize,configSpec.zookeeper.resources.diskTypeId", "configSpec": { "clickhouse": { "resources": { "diskSize": "<размер_хранилища_в_байтах>", "diskTypeId": "<тип_диска>" } }, "zookeeper": { "resources": { "diskSize": "<размер_хранилища_в_байтах>", "diskTypeId": "<тип_диска>" } } } }'Где:
-
updateMask— перечень изменяемых параметров в одну строку через запятую.Укажите нужные параметры:
configSpec.clickhouse.resources.diskSize,configSpec.clickhouse.resources.diskTypeId— если нужно изменить тип диска и увеличить размер хранилища хостов ClickHouse®.configSpec.zookeeper.resources.diskSize,configSpec.zookeeper.resources.diskTypeId— если нужно изменить тип диска и увеличить размер хранилища хостов ZooKeeper.
В примере запроса размер хранилища и тип диска изменяются и для хостов ClickHouse®, и для хостов ZooKeeper.
-
configSpec.clickhouse.resources.diskSize— размер хранилища хостов ClickHouse® в байтах. -
configSpec.clickhouse.resources.diskTypeId— тип диска хостов ClickHouse®. -
configSpec.zookeeper.resources.diskSize— размер хранилища хостов ZooKeeper в байтах. -
configSpec.zookeeper.resources.diskTypeId— тип диска хостов 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.clickhouse.resources.disk_type_id", "config_spec.zookeeper.resources.disk_size", "config_spec.zookeeper.resources.disk_type_id" ] }, "config_spec": { "clickhouse": { "resources": { "disk_size": "<размер_хранилища_в_байтах>", "disk_type_id": "<тип_диска>" } }, "zookeeper": { "resources": { "disk_size": "<размер_хранилища_в_байтах>", "disk_type_id": "<тип_диска>" } } } }' \ 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.clickhouse.resources.disk_type_id— если нужно изменить тип диска хостов ClickHouse®.config_spec.zookeeper.resources.disk_size— если нужно увеличить размер хранилища хостов ZooKeeper.config_spec.zookeeper.resources.disk_type_id— если нужно изменить тип диска хостов ZooKeeper.
В примере запроса размер хранилища и тип диска изменяются и для хостов ClickHouse®, и для хостов ZooKeeper.
-
config_spec.clickhouse.resources.disk_size— размер хранилища хостов ClickHouse® в байтах. -
config_spec.clickhouse.resources.disk_type_id— тип диска хостов ClickHouse®. -
config_spec.zookeeper.resources.disk_size— размер хранилища хостов ZooKeeper в байтах. -
config_spec.zookeeper.resources.disk_type_id— тип диска хостов 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), установите и инициализируйте его.
По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --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.
-
Выберите кластер и нажмите кнопку Редактировать на панели сверху.
-
В блоке Ресурсы:
-
(Опционально) Задайте настройки автоматического увеличения размера хранилища для подкластера ClickHouse®:
- В поле Увеличивать размер выберите один или оба порога:
-
В окно обслуживания при заполненности более — порог для планового увеличения. При его достижении размер хранилища увеличивается во время ближайшего окна обслуживания.
Для планового увеличения необходимо настроить расписание окна обслуживания.
-
Незамедлительно при заполненности более — порог для незамедлительного увеличения. При его достижении размер хранилища увеличивается немедленно.
-
- Задайте пороговое значение (в процентах от общего размера хранилища). Если выбраны оба порога, значение для незамедлительного увеличения должно быть не меньше, чем для планового.
- Задайте Максимальный размер хранилища.
Настройки автоматического увеличения размера хранилища, заданные для подкластера ClickHouse®, применяются ко всем существующим шардам внутри подкластера. При добавлении нового шарда значения настроек берутся с самого старого шарда.
- В поле Увеличивать размер выберите один или оба порога:
-
-
В блоке Класс хоста ZooKeeper:
-
(Опционально) Задайте настройки автоматического увеличения размера хранилища для подкластера ZooKeeper:
- В поле Увеличивать размер выберите один или оба порога:
-
В окно обслуживания при заполненности более — порог для планового увеличения. При его достижении размер хранилища увеличивается во время ближайшего окна обслуживания.
Для планового увеличения необходимо настроить расписание окна обслуживания.
-
Незамедлительно при заполненности более — порог для незамедлительного увеличения. При его достижении размер хранилища увеличивается немедленно.
-
- Задайте пороговое значение (в процентах от общего размера хранилища). Если выбраны оба порога, значение для незамедлительного увеличения должно быть не меньше, чем для планового.
- Задайте Максимальный размер хранилища.
- В поле Увеличивать размер выберите один или оба порога:
-
-
В блоке Сервисные настройки измените дополнительные настройки кластера:
-
Начало резервного копирования (UTC) — промежуток времени, в течение которого начинается резервное копирование кластера. Время указывается по UTC в 24-часовом формате. По умолчанию —
22:00 - 23:00UTC. -
Срок хранения автоматических резервных копий, дней — время, в течение которого нужно хранить созданные автоматически резервные копии (в днях). Если для такой копии истекает срок хранения, то она удаляется. Значение по умолчанию — 7 дней. Подробнее см. в разделе Резервные копии.
Изменение срока хранения затрагивает как новые автоматические резервные копии, так и уже существующие. Например, изначальный срок хранения был 7 дней, оставшееся время жизни отдельной автоматической резервной копии — 1 день. При увеличении срока хранения до 9 дней оставшееся время жизни этой резервной копии будет уже 3 дня.
-
Окно обслуживания — настройки времени технического обслуживания:
- Чтобы разрешить проведение технического обслуживания в любое время, выберите пункт произвольное (по умолчанию).
- Чтобы указать предпочтительное время начала обслуживания, выберите пункт по расписанию и укажите нужные день недели и час дня по 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), установите и инициализируйте его.
По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.
Чтобы изменить дополнительные настройки кластера:
-
Посмотрите описание команды CLI для изменения кластера:
yc managed-clickhouse cluster update --help -
Выполните команду, передав список настроек, которые хотите изменить:
yc managed-clickhouse cluster update <имя_или_идентификатор_кластера> \ --backup-window-start <время_начала_резервного_копирования> \ --backup-retain-period-days <срок_хранения_автоматических_резервных_копий> \ --datalens-access=<true_или_false> \ --metrika-access=<true_или_false> \ --serverless-access=<true_или_false> \ --websql-access=<true_или_false> \ --yandexquery-access=<true_или_false> \ --deletion-protection \ --disk-size-autoscaling clickhouse-disk-size-limit=<максимальный_размер_хранилища_ГБ>,` `clickhouse-planned-usage-threshold=<порог_для_планового_увеличения_в_процентах>,` `clickhouse-emergency-usage-threshold=<порог_для_незамедлительного_увеличения_в_процентах>,` `zookeeper-disk-size-limit=<максимальный_размер_хранилища_ГБ>,` `zookeeper-planned-usage-threshold=<порог_для_планового_увеличения_в_процентах>,` `zookeeper-emergency-usage-threshold=<порог_для_незамедлительного_увеличения_в_процентах> \ --maintenance-window type=<тип_технического_обслуживания>,` `day=<день_недели>,` `hour=<час_дня>
Вы можете изменить следующие настройки:
--backup-window-start— время начала резервного копирования кластера, задается по UTC в форматеHH:MM:SS. Если время не задано, резервное копирование начнется в 22:00 UTC.
-
--backup-retain-period-days– срок хранения автоматических резервных копий (в днях). -
--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— защита кластера от непреднамеренного удаления:trueилиfalse.Включенная защита кластера от удаления не помешает удалить пользователя или базу данных, а также подключиться вручную и удалить содержимое базы данных.
-
--disk-size-autoscaling— настройки автоматического увеличения размера хранилища:-
clickhouse-disk-size-limit— максимальный размер хранилища для подкластера ClickHouse®, в гигабайтах. -
clickhouse-planned-usage-threshold— порог заполнения хранилища для подкластера ClickHouse® в процентах, при достижении которого оно будет увеличено в следующее окно обслуживания. По умолчанию —0(автоматическое увеличение отключено).Допустимые значения: от
0до100. -
clickhouse-emergency-usage-threshold— порог заполнения хранилища для подкластера ClickHouse® в процентах, при достижении которого оно будет увеличено незамедлительно. По умолчанию —0(автоматическое увеличение отключено).Допустимые значения: от
0до100. -
zookeeper-disk-size-limit— максимальный размер хранилища для подкластера ZooKeeper, в гигабайтах. -
zookeeper-planned-usage-threshold— порог заполнения хранилища для подкластера ZooKeeper в процентах, при достижении которого оно будет увеличено в следующее окно обслуживания. По умолчанию —0(автоматическое увеличение отключено).Допустимые значения: от
0до100. -
zookeeper-emergency-usage-threshold— порог заполнения хранилища для подкластера ZooKeeper в процентах, при достижении которого оно будет увеличено незамедлительно. По умолчанию —0(автоматическое увеличение отключено).Допустимые значения: от
0до100.
Важно
-
Если заданы оба порога для подкластера ClickHouse®, значение
clickhouse-emergency-usage-thresholdдолжно быть не меньшеclickhouse-planned-usage-threshold. -
Если заданы оба порога для подкластера ZooKeeper, значение
zookeeper-emergency-usage-thresholdдолжно быть не меньшеzookeeper-planned-usage-threshold. -
При использовании параметров
clickhouse-planned-usage-thresholdиzookeeper-planned-usage-thresholdнеобходимо настроить окно технического обслуживания.
Настройки автоматического масштабирования, заданные для подкластера ClickHouse®, применяются ко всем существующим шардам внутри подкластера. При добавлении нового шарда значения настройки берутся с самого старого шарда. Эти значения не сохраняются в конфигурации подкластера и не отображаются при выводе команды
yc managed-clickhouse cluster get.Чтобы посмотреть информацию о конкретном шарде, включая настройки автоматического масштабирования, используйте команду:
yc managed-clickhouse shards get <имя_шарда> --cluster-id <идентификатор_кластера>Идентификатор кластера можно получить со списком кластеров в каталоге.
Имя шарда можно получить со списком шардов в кластере.
-
-
--maintenance-window— настройки времени технического обслуживания (в т. ч. для выключенных кластеров), гдеtype— тип технического обслуживания:anytime(по умолчанию) — в любое время.weekly— по расписанию. Для этого значения дополнительно укажите:day— день недели:MON,TUE,WED,THU,FRI,SATилиSUN.hour— час дня по UTC: от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:MON,TUE,WED,THU,FRI,SATилиSUN.hour— час дня по UTC для типаWEEKLY: от1до24.
-
Чтобы включить защиту кластера от непреднамеренного удаления пользователем вашего облака, добавьте к описанию кластера поле
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": "<наносекунды>" }, "clickhouse": { "diskSizeAutoscaling": { "plannedUsageThreshold": "<порог_для_планового_увеличения_в_процентах>", "emergencyUsageThreshold": "<порог_для_незамедлительного_увеличения_в_процентах>", "diskSizeLimit": "<максимальный_размер_хранилища_в_байтах>" } }, "zookeeper": { "diskSizeAutoscaling": { "plannedUsageThreshold": "<порог_для_планового_увеличения_в_процентах>", "emergencyUsageThreshold": "<порог_для_незамедлительного_увеличения_в_процентах>", "diskSizeLimit": "<максимальный_размер_хранилища_в_байтах>" } }, "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.
-
-
configSpec.clickhouse.diskSizeAutoscaling— настройки автоматического увеличения размера хранилища для подкластера ClickHouse®:-
plannedUsageThreshold— порог заполнения хранилища для подкластера ClickHouse® в процентах, при достижении которого оно будет увеличено в следующее окно обслуживания. По умолчанию —0(автоматическое увеличение отключено).Допустимые значения: от
0до100. -
emergencyUsageThreshold— порог заполнения хранилища для подкластера ClickHouse® в процентах, при достижении которого оно будет увеличено незамедлительно. По умолчанию —0(автоматическое увеличение отключено).Допустимые значения: от
0до100. -
diskSizeLimit— максимальный размер хранилища для подкластера ClickHouse®, в байтах.
Важно
-
Если заданы оба порога, значение
emergencyUsageThresholdдолжно быть не меньшеplannedUsageThreshold. -
При использовании параметра
plannedUsageThresholdнеобходимо настроить окно технического обслуживания.
Настройки автоматического масштабирования, заданные для подкластера ClickHouse®, применяются ко всем существующим шардам внутри подкластера. При добавлении нового шарда значения настройки берутся с самого старого шарда. Эти значения не сохраняются в конфигурации подкластера.
Чтобы посмотреть информацию о конкретном шарде, включая настройки автоматического масштабирования, воспользуйтесь методом Cluster.GetShard и передайте в запросе идентификатор кластера и имя шарда.
Идентификатор кластера можно получить со списком кластеров в каталоге.
Имя шарда можно получить со списком шардов в кластере.
-
-
configSpec.zookeeper.diskSizeAutoscaling— настройки автоматического увеличения размера хранилища для подкластера ZooKeeper:-
plannedUsageThreshold— порог заполнения хранилища для подкластера ZooKeeper в процентах, при достижении которого оно будет увеличено в следующее окно обслуживания. По умолчанию —0(автоматическое увеличение отключено).Допустимые значения: от
0до100. -
emergencyUsageThreshold— порог заполнения хранилища для подкластера ZooKeeper в процентах, при достижении которого оно будет увеличено незамедлительно. По умолчанию —0(автоматическое увеличение отключено).Допустимые значения: от
0до100. -
diskSizeLimit— максимальный размер хранилища для подкластера ZooKeeper, в байтах.
Важно
-
Если заданы оба порога, значение
emergencyUsageThresholdдолжно быть не меньшеplannedUsageThreshold. -
При использовании параметра
plannedUsageThresholdнеобходимо настроить окно технического обслуживания.
-
-
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": "<наносекунды>" }, "clickhouse": { "disk_size_autoscaling": { "planned_usage_threshold": "<порог_для_планового_увеличения_в_процентах>", "emergency_usage_threshold": "<порог_для_незамедлительного_увеличения_в_процентах>", "disk_size_limit": "<максимальный_размер_хранилища_в_байтах>" } }, "zookeeper": { "disk_size_autoscaling": { "planned_usage_threshold": "<порог_для_планового_увеличения_в_процентах>", "emergency_usage_threshold": "<порог_для_незамедлительного_увеличения_в_процентах>", "disk_size_limit": "<максимальный_размер_хранилища_в_байтах>" } }, "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.
-
-
config_spec.clickhouse.disk_size_autoscaling— настройки автоматического увеличения размера хранилища для подкластера ClickHouse®:-
planned_usage_threshold— порог заполнения хранилища для подкластера ClickHouse® в процентах, при достижении которого оно будет увеличено в следующее окно обслуживания. По умолчанию —0(автоматическое увеличение отключено).Допустимые значения: от
0до100. -
emergency_usage_threshold— порог заполнения хранилища для подкластера ClickHouse® в процентах, при достижении которого оно будет увеличено незамедлительно. По умолчанию —0(автоматическое увеличение отключено).Допустимые значения: от
0до100. -
disk_size_limit— максимальный размер хранилища для подкластера ClickHouse®, в байтах.
Важно
-
Если заданы оба порога, значение
emergency_usage_thresholdдолжно быть не меньшеplanned_usage_threshold. -
При использовании параметра
planned_usage_thresholdнеобходимо настроить окно технического обслуживания.
Настройки автоматического масштабирования, заданные для подкластера ClickHouse®, применяются ко всем существующим шардам внутри подкластера. При добавлении нового шарда значения настройки берутся с самого старого шарда. Эти значения не сохраняются в конфигурации подкластера.
Чтобы посмотреть информацию о конкретном шарде, включая настройки автоматического масштабирования, воспользуйтесь методом ClusterService.GetShard и передайте в запросе идентификатор кластера и имя шарда.
Идентификатор кластера можно получить со списком кластеров в каталоге.
Имя шарда можно получить со списком шардов в кластере.
-
-
config_spec.zookeeper.disk_size_autoscaling— настройки автоматического увеличения размера хранилища для подкластера ZooKeeper:-
planned_usage_threshold— порог заполнения хранилища для подкластера ZooKeeper в процентах, при достижении которого оно будет увеличено в следующее окно обслуживания. По умолчанию —0(автоматическое увеличение отключено).Допустимые значения: от
0до100. -
emergency_usage_threshold— порог заполнения хранилища для подкластера ZooKeeper в процентах, при достижении которого оно будет увеличено незамедлительно. По умолчанию —0(автоматическое увеличение отключено).Допустимые значения: от
0до100. -
disk_size_limit— максимальный размер хранилища для подкластера ZooKeeper, в байтах.
Важно
-
Если заданы оба порога, значение
emergency_usage_thresholdдолжно быть не меньшеplanned_usage_threshold. -
При использовании параметра
planned_usage_thresholdнеобходимо настроить окно технического обслуживания.
-
-
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
-
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
Connection Manager
Если в кластере не включена интеграция с сервисом Connection Manager, включите опцию Использовать Connection Manager. Она доступна только в консоли управления
Для каждого пользователя БД будут созданы:
-
Подключение Connection Manager с информацией о соединении с БД.
-
Секрет Yandex Lockbox, в котором хранится пароль пользователя. Хранение паролей в сервисе Yandex Lockbox обеспечивает их безопасность.
Подключение и секрет создаются для каждого нового пользователя БД. Чтобы увидеть все подключения, на странице кластера выберите вкладку Подключения.
Для просмотра информации о подключении требуется роль
connection-manager.viewer. Вы можете настраивать доступ к подключениям в Connection Manager.Примечание
Использование сервиса Connection Manager и секретов, созданных с его помощью, не тарифицируется.
Переместить кластер
- В консоли управления
выберите каталог, в котором находится кластер. - Перейдите в сервис Managed Service for ClickHouse.
- Нажмите на значок
справа в строке кластера, который вы хотите переместить. - Выберите пункт Переместить.
- Выберите каталог, в который вы хотите переместить кластер.
- Нажмите кнопку Переместить.
Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.
По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.
Чтобы переместить кластер:
-
Посмотрите описание команды CLI для перемещения кластера:
yc managed-clickhouse cluster move --help -
Укажите каталог назначения в команде перемещения кластера:
yc managed-clickhouse cluster move <имя_или_идентификатор_кластера> \ --destination-folder-name=<имя_каталога_назначения>Идентификатор кластера можно получить со списком кластеров в каталоге.
-
Откройте актуальный конфигурационный файл Terraform с планом инфраструктуры.
О том, как создать такой файл, см. в разделе Создание кластера.
-
Измените или добавьте в описании кластера Managed Service for ClickHouse® значение параметра
folder_id:resource "yandex_mdb_clickhouse_cluster" "<имя_кластера>" { ... folder_id = "<идентификатор_каталога_назначения>" } -
Проверьте корректность настроек.
-
В командной строке перейдите в каталог, в котором расположены актуальные конфигурационные файлы 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.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), установите и инициализируйте его.
По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --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), установите и инициализируйте его.
По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --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