Изменение настроек кластера Greenplum®
После создания кластера вы можете:
- Изменить имя и описание кластера.
- Изменить настройку публичного доступа.
- Изменить дополнительные настройки кластера.
- Изменить настройки регламентных операций технического обслуживания.
- Изменить настройки Greenplum® согласно документации Greenplum®.
- Изменить класс хостов.
- Изменить тип диска и увеличить размер хранилища.
Если вы хотите переместить кластер в другую зону доступности, восстановите его из резервной копии. Во время восстановления укажите новую зону доступности. В результате вы перенесете хосты кластера.
Если вы используете внешние источники данных для работы по протоколу PXF, узнайте, как настроить протокол. Так можно оптимизировать работу с внешними данными.
Изменить имя и описание кластера
- Перейдите на страницу каталога
и выберите сервис Managed Service for Greenplum. - Выберите кластер и нажмите кнопку Редактировать в верхней части страницы.
- В блоке Базовые параметры задайте новые имя и описание кластера.
- Нажмите кнопку Сохранить.
Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.
По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name
или --folder-id
.
Чтобы изменить имя и описание кластера Greenplum®:
-
Посмотрите текущие имя (
name
) и описание (description
) кластера:yc managed-greenplum cluster get <имя_или_идентификатор_кластера>
-
Посмотрите описание команды CLI для изменения конфигурации кластера:
yc managed-greenplum cluster update --help
-
Задайте новое имя и описание кластера:
yc managed-greenplum cluster update <имя_или_идентификатор_кластера> \ --new-name <новое_имя_кластера> \ --description <новое_описание_кластера>
Внимание
Не изменяйте имя кластера с помощью Terraform. Это приведет к удалению существующего кластера и созданию нового.
Чтобы изменить описание кластера:
-
Откройте актуальный конфигурационный файл Terraform с планом инфраструктуры.
Как создать такой файл, см. в разделе Создание кластера.
Полный список доступных для изменения полей конфигурации кластера Managed Service for Greenplum® см. в документации провайдера Terraform
. -
Измените в описании кластера Managed Service for Greenplum® значение атрибута
description
:resource "yandex_mdb_greenplum_cluster" "<имя_кластера>" { name = "<имя_кластера>" description = "<новое_описание_кластера>" ... }
-
Проверьте корректность настроек.
-
В командной строке перейдите в каталог, в котором расположены актуальные конфигурационные файлы Terraform с планом инфраструктуры.
-
Выполните команду:
terraform validate
Если в файлах конфигурации есть ошибки, Terraform на них укажет.
-
-
Подтвердите изменение ресурсов.
-
Выполните команду для просмотра планируемых изменений:
terraform plan
Если конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.
-
Если вас устраивают планируемые изменения, внесите их:
-
Выполните команду:
terraform apply
-
Подтвердите изменение ресурсов.
-
Дождитесь завершения операции.
-
Ограничения по времени
Провайдер Terraform ограничивает время на выполнение всех операций с кластером Managed Service for Greenplum® 120 минутами.
Операции, длящиеся дольше указанного времени, прерываются.
Как изменить эти ограничения?
Добавьте к описанию кластера блок
timeouts
, например:resource "yandex_mdb_greenplum_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-greenplum/v1/clusters/<идентификатор_кластера>' \ --data '{ "updateMask": "name,description", "name": "<новое_имя_кластера>", "description": "<новое_описание_кластера>" }'
Где
updateMask
— перечень изменяемых параметров в одну строку через запятую.Идентификатор кластера можно запросить со списком кластеров в каталоге.
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
-
Получите 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/greenplum/v1/cluster_service.proto \ -rpc-header "Authorization: Bearer $IAM_TOKEN" \ -d '{ "cluster_id": "<идентификатор_кластера>", "update_mask": { "paths": [ "name", "description" ] }, "name": "<новое_имя_кластера>", "description": "<новое_описание_кластера>" }' \ mdb.api.cloud.yandex.net:443 \ yandex.cloud.mdb.greenplum.v1.ClusterService.Update
Где
update_mask
— перечень изменяемых параметров в виде массива строкpaths[]
.Идентификатор кластера можно запросить со списком кластеров в каталоге.
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
Изменить настройку публичного доступа
- Перейдите на страницу каталога
и выберите сервис Managed Service for Greenplum®. - Выберите кластер и нажмите кнопку Редактировать в верхней части страницы.
- В блоке Сетевые настройки установите или отключите опцию Публичный доступ.
- Нажмите кнопку Сохранить.
Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.
По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name
или --folder-id
.
Чтобы изменить настройку публичного доступа Greenplum®:
-
Посмотрите описание команды CLI для изменения конфигурации кластера:
yc managed-greenplum cluster update --help
-
Задайте настройку публичного доступа в параметре
--assign-public-ip
:yc managed-greenplum cluster update <имя_или_идентификатор_кластера> \ --assign-public-ip=<публичный_доступ_к_кластеру>
Где
assign-public-ip
— публичный доступ к кластеру: true или false.
-
Получите 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-greenplum/v1/clusters/<идентификатор_кластера>' \ --data '{ "updateMask": "config.assignPublicIp", "config": { "assignPublicIp": <публичный_доступ_к_хостам_кластера> } }'
Где:
-
updateMask
— перечень изменяемых параметров в одну строку через запятую.В данном случае передается только один параметр.
-
assignPublicIp
— публичный доступ к хостам кластера: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/greenplum/v1/cluster_service.proto \ -rpc-header "Authorization: Bearer $IAM_TOKEN" \ -d '{ "cluster_id": "<идентификатор_кластера>", "update_mask": { "paths": [ "config.assign_public_ip" ] }, "config": { "assign_public_ip": <публичный_доступ_к_хостам_кластера> } }' \ mdb.api.cloud.yandex.net:443 \ yandex.cloud.mdb.greenplum.v1.ClusterService.Update
Где:
-
update_mask
— перечень изменяемых параметров в виде массива строкpaths[]
.В данном случае передается только один параметр.
-
assign_public_ip
— публичный доступ к хостам кластера:true
илиfalse
.
Идентификатор кластера можно запросить со списком кластеров в каталоге.
-
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
Совет
Если вы включили публичный доступ к кластеру, но подключение через интернет не срабатывает:
- Проверьте настройки групп безопасности.
- Подождите некоторое время. Включение публичного доступа иногда вступает в силу не сразу.
Изменить дополнительные настройки кластера
-
Перейдите на страницу каталога и выберите сервис Managed Service for Greenplum.
-
Выберите кластер и нажмите кнопку Редактировать на панели сверху.
-
Измените дополнительные настройки кластера:
-
Начало резервного копирования (UTC) — промежуток времени, в течение которого начинается резервное копирование кластера. Время указывается по UTC в 24-часовом формате. По умолчанию —
22:00 - 23:00
UTC. -
Окно обслуживания — настройки времени технического обслуживания:
- Чтобы разрешить проведение технического обслуживания в любое время, выберите пункт произвольное (по умолчанию).
- Чтобы указать предпочтительное время начала обслуживания, выберите пункт по расписанию и укажите нужные день недели и час дня по UTC. Например, можно выбрать время, когда кластер наименее загружен.
Операции по техническому обслуживанию проводятся для включенных и выключенных кластеров. Они могут включать в себя: обновление СУБД, применение патчей и так далее.
-
Доступ из DataLens — опция разрешает анализировать данные из кластера в сервисе Yandex DataLens.
-
Доступ из Yandex Query — опция разрешает выполнять YQL-запросы из сервиса Yandex Query к управляемой базе данных Managed Service for Greenplum®.
-
Защита от удаления — управляет защитой кластера, его баз данных и пользователей от непреднамеренного удаления.
Включенная защита от удаления не помешает подключиться вручную и удалить содержимое базы данных.
-
Гибридное хранилище — включает гибридное хранилище.
Гибридное хранилище нельзя отключить после сохранения настроек кластера.
Когда гибридное хранилище включено, с помощью расширения Yezzey можно переместить часть таблиц AO и AOCO из хранилища кластера в холодное хранилище и наоборот.
Холодное хранилище удобно, если данные таблиц нужно хранить долго, а работать с ними планируется редко. Так хранение будет дешевле.
Примечание
Функциональность находится на стадии Preview и не тарифицируется.
-
Менеджер подключений — режим работы и параметры менеджера подключений:
- Режим —
SESSION
(сессионный, по умолчанию) илиTRANSACTION
(транзакционный). - Размер — количество клиентских соединений.
- Тайм-аут ожидания клиента — время неактивности клиентского соединения (в миллисекундах), после которого соединение разрывается.
- Режим —
-
-
Нажмите кнопку Сохранить.
Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.
По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name
или --folder-id
.
Чтобы изменить дополнительные настройки кластера:
-
Посмотрите описание команды CLI для изменения кластера:
yc managed-greenplum cluster update --help
-
Выполните команду, передав список настроек, которые хотите изменить:
yc managed-greenplum cluster update <имя_или_идентификатор_кластера> \ --backup-window-start <время_начала_резервного_копирования> \ --datalens-access=<доступ_из_DataLens> \ --yandexquery-access=<доступ_из_Yandex_Query> \ --maintenance-window type=<тип_технического_обслуживания>,` `day=<день_недели>,` `hour=<час_дня> \ --deletion-protection
Вы можете изменить следующие настройки:
--backup-window-start
— время начала резервного копирования кластера, задается по UTC в форматеHH:MM:SS
. Если время не задано, резервное копирование начнется в 22:00 UTC.
-
--datalens-access
— доступ к кластеру из сервиса Yandex DataLens:true
илиfalse
. -
--yandexquery-access
— доступ к кластеру из сервиса Yandex Query:true
илиfalse
. -
--maintenance-window
— настройки времени технического обслуживания (в т. ч. для выключенных кластеров), гдеtype
— тип технического обслуживания:anytime
(по умолчанию) — в любое время.weekly
— по расписанию. При задании этого значения укажите день недели и час дня:day
— день недели в форматеDDD
:MON
,TUE
,WED
,THU
,FRI
,SAT
илиSUN
.hour
— час дня по UTC в форматеHH
: от1
до24
.
-
--deletion-protection
— защита кластера, его баз данных и пользователей от непреднамеренного удаления.Включенная защита от удаления не помешает подключиться вручную и удалить содержимое базы данных.
Имя кластера можно получить со списком кластеров в каталоге.
-
Откройте актуальный конфигурационный файл Terraform с планом инфраструктуры.
Как создать такой файл, см. в разделе Создание кластера.
Полный список доступных для изменения полей конфигурации кластера Managed Service for Greenplum® см. в документации провайдера Terraform
. -
Измените в описании кластера Managed Service for Greenplum® значения нужных дополнительных настроек:
resource "yandex_mdb_greenplum_cluster" "<имя_кластера>" { ... backup_window_start { hours = <начало_периода_резервного_копирования> } maintenance_window { type = <тип_технического_обслуживания> day = <день_недели> hour = <час_дня> } access { data_lens = <доступ_из_DataLens> yandex_query = <доступ_из_Yandex_Query> } deletion_protection = <защита_от_удаления> cloud_storage { enable = <использование_гибридного_хранилища> } pooler_config { pooling_mode = <режим_работы> pool_size = <размер> pool_client_idle_timeout = <время_ожидания_клиента> } }
Вы можете изменить следующие настройки:
-
backup_window_start.hours
— начало периода, в течение которого начинается резервное копирование кластера. Задается по UTC в форматеHH
: от0
до23
. -
maintenance_window
— настройки времени технического обслуживания (в т. ч. для выключенных кластеров):type
— тип технического обслуживания. Принимает значения:ANYTIME
— в любое время.WEEKLY
— по расписанию.
day
— день недели для типаWEEKLY
в форматеDDD
. Например,MON
.hour
— час дня по UTC для типаWEEKLY
в форматеHH
. Например,21
.
-
access.data_lens
— доступ к кластеру из сервиса Yandex DataLens:true
илиfalse
. -
access.yandex_query
— доступ к кластеру из сервиса Yandex Query:true
илиfalse
. -
deletion_protection
— защита от удаления кластера, его баз данных и пользователей:true
илиfalse
.Включенная защита от удаления кластера не помешает подключиться к нему вручную и удалить данные.
-
cloud_storage.enable
— использование гибридного хранилища.Установите значение
true
, чтобы включить гибридное хранилище. Гибридное хранилище нельзя отключить после сохранения настроек кластера.Когда гибридное хранилище включено, с помощью расширения Yezzey можно переместить часть таблиц AO и AOCO из хранилища кластера в холодное хранилище и наоборот.
Холодное хранилище удобно, если данные таблиц нужно хранить долго, а работать с ними планируется редко. Так хранение будет дешевле.
Примечание
Функциональность находится на стадии Preview и не тарифицируется.
-
pooler_config
— настройки менеджера подключений:pooling_mode
— режим работы:SESSION
илиTRANSACTION
.pool_size
— количество клиентских соединений.pool_client_idle_timeout
— время неактивности клиентского соединения в миллисекундах, после которого соединение разрывается.
-
-
Проверьте корректность настроек.
-
В командной строке перейдите в каталог, в котором расположены актуальные конфигурационные файлы Terraform с планом инфраструктуры.
-
Выполните команду:
terraform validate
Если в файлах конфигурации есть ошибки, Terraform на них укажет.
-
-
Подтвердите изменение ресурсов.
-
Выполните команду для просмотра планируемых изменений:
terraform plan
Если конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.
-
Если вас устраивают планируемые изменения, внесите их:
-
Выполните команду:
terraform apply
-
Подтвердите изменение ресурсов.
-
Дождитесь завершения операции.
-
Ограничения по времени
Провайдер Terraform ограничивает время на выполнение всех операций с кластером Managed Service for Greenplum® 120 минутами.
Операции, длящиеся дольше указанного времени, прерываются.
Как изменить эти ограничения?
Добавьте к описанию кластера блок
timeouts
, например:resource "yandex_mdb_greenplum_cluster" "<имя кластера>" { ... timeouts { create = "1h30m" # Полтора часа update = "2h" # 2 часа delete = "30m" # 30 минут } }
-
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>"
-
Создайте файл
body.json
и добавьте в него следующее содержимое:Важно
Метод API переопределит все параметры изменяемого объекта, которые не были явно переданы в запросе, на значения по умолчанию. Чтобы избежать этого, перечислите настройки, которые вы хотите изменить, в параметре
updateMask
(одной строкой через запятую).{ "updateMask": "config.backupWindowStart,config.access.dataLens,config.access.yandexQuery,maintenanceWindow,deletionProtection,configSpec.pool.mode,configSpec.pool.size,configSpec.pool.clientIdleTimeout,cloudStorage", "config": { "backupWindowStart": { "hours": "<часы>", "minutes": "<минуты>", "seconds": "<секунды>", "nanos": "<наносекунды>" }, "access": { "dataLens": <доступ_из_DataLens>, "yandexQuery": <доступ_из_Yandex_Query> } }, "maintenanceWindow": { "weeklyMaintenanceWindow": { "day": "<день_недели>", "hour": "<час>" } }, "deletionProtection": <защита_от_удаления_кластера>, "configSpec": { "pool": { "mode": "<режим_работы>", "size": "<количество_клиентских_соединений>", "clientIdleTimeout": "<время_ожидания_клиента>" } }, "cloudStorage": { "enable": <использование_гибридного_хранилища> } }
Где:
-
updateMask
— перечень изменяемых параметров в одну строку через запятую. -
config
— настройки кластера:-
backupWindowStart
— настройки окна резервного копирования.В параметре укажите время, когда начинать резервное копирование:
hours
— от0
до23
часов;minutes
— от0
до59
минут;seconds
— от0
до59
секунд;nanos
— от0
до999999999
наносекунд.
-
access
— настройки доступа кластера к следующим сервисам Yandex Cloud:dataLens
— Yandex DataLens:true
илиfalse
.yandexQuery
— Yandex Query:true
илиfalse
.
-
-
maintenanceWindow
— настройки времени технического обслуживания (в т. ч. для выключенных кластеров). Передайте один из двух параметров:-
anytime
— техническое обслуживание происходит в любое время. -
weeklyMaintenanceWindow
— техническое обслуживание происходит раз в неделю, в указанное время:day
— день недели в форматеDDD
:MON
,TUE
,WED
,THU
,FRI
,SAT
илиSUN
.hour
— час дня по UTC от1
до24
.
-
-
deletionProtection
— защита от удаления кластера:true
илиfalse
.Включенная защита от удаления не помешает подключиться вручную и удалить содержимое базы данных.
-
configSpec.pool
— настройки менеджера подключений:mode
— режим работы:SESSION
илиTRANSACTION
.size
— количество клиентских соединений.clientIdleTimeout
— время неактивности клиентского соединения в миллисекундах, после которого соединение разрывается.
-
cloudStorage.enable
— использование гибридного хранилища в кластерах с версией Greenplum® 6.25 и выше. Установите значениеtrue
, чтобы включить в кластере расширение Yezzey от Yandex Cloud. Оно применяется, чтобы выгрузить таблицы AO и AOCO с дисков кластера Managed Service for Greenplum® в холодное хранилище Yandex Object Storage. Так данные хранятся в служебном бакете в сжатом и зашифрованном виде. Это более экономичный способ хранения.Гибридное хранилище нельзя отключить после сохранения настроек кластера.
Примечание
Функциональность находится на стадии Preview и не тарифицируется.
-
-
Воспользуйтесь методом Cluster.Update и выполните запрос, например, с помощью cURL
:curl \ --request PATCH \ --header "Authorization: Bearer $IAM_TOKEN" \ --header "Content-Type: application/json" \ --url 'https://mdb.api.cloud.yandex.net/managed-greenplum/v1/clusters/<идентификатор_кластера>' \ --data "@body.json"
Идентификатор кластера можно запросить со списком кластеров в каталоге.
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>"
-
Клонируйте репозиторий cloudapi
:cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapi
Далее предполагается, что содержимое репозитория находится в директории
~/cloudapi/
. -
Создайте файл
body.json
и добавьте в него следующее содержимое:Важно
Метод API переопределит все параметры изменяемого объекта, которые не были явно переданы в запросе, на значения по умолчанию. Чтобы избежать этого, перечислите настройки, которые вы хотите изменить, в параметре
update_mask
(в виде массива строкpaths[]
).Формат перечисления настроек
"update_mask": { "paths": [ "<настройка_1>", "<настройка_2>", ... "<настройка_N>" ] }
{ "cluster_id": "<идентификатор_кластера>" "update_mask": { "paths": [ "config.backup_window_start", "config.access.data_lens", "config.access.yandex_query", "maintenance_window", "deletion_protection", "config_spec.pool.mode", "config_spec.pool.size", "config_spec.pool.client_idle_timeout", "cloud_storage" ] }, "config": { "backup_window_start": { "hours": "<часы>", "minutes": "<минуты>", "seconds": "<секунды>", "nanos": "<наносекунды>" }, "access": { "data_lens": <доступ_из_DataLens>, "yandex_query": <доступ_из_Yandex_Query> } }, "maintenance_window": { "weekly_maintenance_window": { "day": "<день_недели>", "hour": "<час>" } }, "deletion_protection": <защита_от_удаления_кластера>, "config_spec": { "pool": { "mode": "<режим_работы>", "size": "<количество_клиентских_соединений>", "client_idle_timeout": "<время_ожидания_клиента>" } }, "cloud_storage": { "enable": <использование_гибридного_хранилища> } }
Где:
-
update_mask
— перечень изменяемых параметров в виде массива строкpaths[]
. -
config
— настройки кластера:-
backup_window_start
— настройки окна резервного копирования.В параметре укажите время, когда начинать резервное копирование:
hours
— от0
до23
часов;minutes
— от0
до59
минут;seconds
— от0
до59
секунд;nanos
— от0
до999999999
наносекунд.
-
access
— настройки доступа кластера к следующим сервисам Yandex Cloud:data_lens
— Yandex DataLens:true
илиfalse
.yandex_query
— Yandex Query:true
илиfalse
.
-
-
maintenance_window
— настройки времени технического обслуживания (в т. ч. для выключенных кластеров). Передайте один из двух параметров:-
anytime
— техническое обслуживание происходит в любое время. -
weekly_maintenance_window
— техническое обслуживание происходит раз в неделю, в указанное время:day
— день недели в форматеDDD
:MON
,TUE
,WED
,THU
,FRI
,SAT
илиSUN
.hour
— час дня по UTC от1
до24
.
-
-
deletion_protection
— защита от удаления кластера:true
илиfalse
.Включенная защита от удаления не помешает подключиться вручную и удалить содержимое базы данных.
-
config_spec.pool
— настройки менеджера подключений:mode
— режим работы:SESSION
илиTRANSACTION
.size
— количество клиентских соединений.client_idle_timeout
— время неактивности клиентского соединения в миллисекундах, после которого соединение разрывается.
-
cloud_storage.enable
— использование гибридного хранилища в кластерах с версией Greenplum® 6.25 и выше. Установите значениеtrue
, чтобы включить в кластере расширение Yezzey от Yandex Cloud. Оно применяется, чтобы выгрузить таблицы AO и AOCO с дисков кластера Managed Service for Greenplum® в холодное хранилище Yandex Object Storage. Так данные хранятся в служебном бакете в сжатом и зашифрованном виде. Это более экономичный способ хранения.Гибридное хранилище нельзя отключить после сохранения настроек кластера.
Примечание
Функциональность находится на стадии Preview и не тарифицируется.
Идентификатор кластера можно запросить со списком кластеров в каталоге.
-
-
Воспользуйтесь вызовом ClusterService.Update и выполните запрос, например, с помощью gRPCurl
:grpcurl \ -format json \ -import-path ~/cloudapi/ \ -import-path ~/cloudapi/third_party/googleapis/ \ -proto ~/cloudapi/yandex/cloud/mdb/greenplum/v1/cluster_service.proto \ -rpc-header "Authorization: Bearer $IAM_TOKEN" \ -d @ \ mdb.api.cloud.yandex.net:443 \ yandex.cloud.mdb.greenplum.v1.ClusterService.Update \ < body.json
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
Изменить настройки регламентных операций технического обслуживания
Вы можете изменить настройки регламентных операций технического обслуживания вашего кластера.
-
Перейдите на страницу каталога и выберите сервис Managed Service for Greenplum.
-
Выберите кластер и нажмите кнопку Редактировать на панели сверху.
-
В блоке Управление фоновыми процессами измените параметры:
- Время старта (UTC) — время, в которое начнется выполнение операции
VACUUM
. По умолчанию —19:00 UTC
. После завершения операцииVACUUM
запустится операцияANALYZE
. - Таймаут VACUUM — максимальная длительность выполнения операции
VACUUM
, в секундах. Возможные значения: от7200
до86399
, по умолчанию —36000
. Когда указанное время истечет, операцияVACUUM
будет принудительно завершена. - Таймаут ANALYZE — максимальная длительность выполнения операции
ANALYZE
, в секундах. Возможные значения: от7200
до86399
, по умолчанию —36000
. Когда указанное время истечет, операцияANALYZE
будет принудительно завершена.
Суммарная длительность операций
VACUUM
иANALYZE
не может превышать 24 часа. - Время старта (UTC) — время, в которое начнется выполнение операции
-
Нажмите кнопку Сохранить.
-
Получите 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-greenplum/v1/clusters/<идентификатор_кластера>' \ --data '{ "updateMask": "configSpec.backgroundActivities.analyzeAndVacuum.start,configSpec.backgroundActivities.analyzeAndVacuum.analyzeTimeout,configSpec.backgroundActivities.analyzeAndVacuum.vacuumTimeout", "configSpec": { "backgroundActivities": { "analyzeAndVacuum": { "start": { "hours": "<час_начала_операции>", "minutes": "<минута_начала_операции>" }, "analyzeTimeout": "<длительность_выполнения_операции_ANALYZE>", "vacuumTimeout": "<длительность_выполнения_операции_VACUUM>" } } } }'
Где:
-
updateMask
— перечень изменяемых параметров в одну строку через запятую. -
configSpec.backgroundActivities.analyzeAndVacuum
— настройки управления фоновыми процессами:start.hours
— час начала операцииVACUUM
по UTC. Возможные значения: от0
до23
, по умолчанию —19
.start.minutes
— минута начала операцииVACUUM
по UTC. Возможные значения: от0
до59
, по умолчанию —0
.analyzeTimeout
— максимальная длительность выполнения операцииANALYZE
, в секундах. Возможные значения: от7200
до86399
, по умолчанию —36000
. Когда указанное время истечет, операцияANALYZE
будет принудительно завершена.vacuumTimeout
— максимальная длительность выполнения операцииVACUUM
, в секундах. Возможные значения: от7200
до86399
, по умолчанию —36000
. Когда указанное время истечет, операцияVACUUM
будет принудительно завершена.
Идентификатор кластера можно запросить со списком кластеров в каталоге.
-
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
-
Получите 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/greenplum/v1/cluster_service.proto \ -rpc-header "Authorization: Bearer $IAM_TOKEN" \ -d '{ "cluster_id": "<идентификатор_кластера>", "update_mask": { "paths": [ "config_spec.background_activities.analyze_and_vacuum.start", "config_spec.background_activities.analyze_and_vacuum.analyze_timeout", "config_spec.background_activities.analyze_and_vacuum.vacuumTimeout" ] }, "config_spec": { "background_activities": { "analyze_and_vacuum": { "start": { "hours": "<час_начала_операции>", "minutes": "<минута_начала_операции>" }, "analyze_timeout": "<длительность_выполнения_операции_ANALYZE>", "vacuum_timeout": "<длительность_выполнения_операции_VACUUM>" } } } }' \ mdb.api.cloud.yandex.net:443 \ yandex.cloud.mdb.greenplum.v1.ClusterService.Update
Где:
-
update_mask
— перечень изменяемых параметров в виде массива строкpaths[]
. -
config_spec.background_activities.analyze_and_vacuum
— настройки управления фоновыми процессами:start.hours
— час начала операцииVACUUM
по UTC. Возможные значения: от0
до23
, по умолчанию —19
.start.minutes
— минута начала операцииVACUUM
по UTC. Возможные значения: от0
до59
, по умолчанию —0
.analyze_timeout
— максимальная длительность выполнения операцииANALYZE
, в секундах. Возможные значения: от7200
до86399
, по умолчанию —36000
. Когда указанное время истечет, операцияANALYZE
будет принудительно завершена.vacuum_timeout
— максимальная длительность выполнения операцииVACUUM
, в секундах. Возможные значения: от7200
до86399
, по умолчанию —36000
. Когда указанное время истечет, операцияVACUUM
будет принудительно завершена.
Идентификатор кластера можно запросить со списком кластеров в каталоге.
-
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
Изменить настройки Greenplum®
Вы можете изменить настройки СУБД для хостов вашего кластера.
- Перейдите на страницу каталога и выберите сервис Managed Service for Greenplum.
- Выберите кластер и нажмите кнопку Редактировать на панели сверху.
- Измените настройки Greenplum®, нажав кнопку Настроить в блоке Настройки СУБД.
- Нажмите кнопку Сохранить.
- Нажмите кнопку Сохранить.
Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.
По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name
или --folder-id
.
Чтобы изменить настройки СУБД Greenplum®:
-
Посмотрите полный список настроек, установленных для кластера:
yc managed-greenplum cluster get <имя_или_идентификатор_кластера>
-
Посмотрите описание команды CLI для изменения конфигурации кластера:
yc managed-greenplum cluster update-config --help
-
Установите нужные значения параметров:
Все поддерживаемые параметры перечислены в формате запроса для метода update, в поле
greenplumConfig_<версия_Greenplum>
. Чтобы указать имя параметра в вызове CLI, преобразуйте его имя из видаlowerCamelCase
вsnake_case
, например, параметрmaxConnections
из запроса к API преобразуется вmax_connections
для команды CLI:yc managed-greenplum cluster update-config <имя_или_идентификатор_кластера> \ --set <имя_параметра1>=<значение1>,<имя_параметра2>=<значение2>,...
Managed Service for Greenplum® запустит операцию по изменению настроек кластера.
-
Откройте актуальный конфигурационный файл Terraform с планом инфраструктуры.
Как создать такой файл, см. в разделе Создание кластера.
Полный список доступных для изменения полей конфигурации кластера Managed Service for Greenplum® см. в документации провайдера Terraform
. -
Измените в описании кластера настройки Greenplum® в блоке
greenplum_config
:resource "yandex_mdb_greenplum_cluster" "<имя_кластера>" { ... greenplum_config = { max_connections = <максимальное_количество_соединений> gp_workfile_compression = <true_или_false> ... } }
-
Проверьте корректность настроек.
-
В командной строке перейдите в каталог, в котором расположены актуальные конфигурационные файлы Terraform с планом инфраструктуры.
-
Выполните команду:
terraform validate
Если в файлах конфигурации есть ошибки, Terraform на них укажет.
-
-
Подтвердите изменение ресурсов.
-
Выполните команду для просмотра планируемых изменений:
terraform plan
Если конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.
-
Если вас устраивают планируемые изменения, внесите их:
-
Выполните команду:
terraform apply
-
Подтвердите изменение ресурсов.
-
Дождитесь завершения операции.
-
Ограничения по времени
Провайдер Terraform ограничивает время на выполнение всех операций с кластером Managed Service for Greenplum® 120 минутами.
Операции, длящиеся дольше указанного времени, прерываются.
Как изменить эти ограничения?
Добавьте к описанию кластера блок
timeouts
, например:resource "yandex_mdb_greenplum_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-greenplum/v1/clusters/<идентификатор_кластера>' \ --data '{ "updateMask": "configSpec.greenplumConfig_<версия_Greenplum®>.<настройка_1>,...,configSpec.greenplumConfig_<версия_Greenplum®>.<настройка_N>", "configSpec": { "greenplumConfig_<версия_Greenplum®>": { "<настройка_1>": "<значение_1>", "<настройка_2>": "<значение_2>", ... "<настройка_N>": "<значение_N>" } } }'
Где:
-
updateMask
— перечень изменяемых параметров в одну строку через запятую.В данном случае перечислите все изменяемые настройки Greenplum®.
-
configSpec.greenplumConfig_<версия_Greenplum®>
— набор настроек Greenplum®. Укажите каждую настройку на отдельной строке через запятую.Список версий Greenplum®, доступных для параметра, см. в описании метода. Описание и возможные значения настроек см. в разделе Настройки СУБД уровня кластера.
Идентификатор кластера можно запросить со списком кластеров в каталоге.
-
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
-
Получите 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/greenplum/v1/cluster_service.proto \ -rpc-header "Authorization: Bearer $IAM_TOKEN" \ -d '{ "cluster_id": "<идентификатор_кластера>", "update_mask": { "paths": [ "config_spec.greenplum_config_<версия_Greenplum®>.<настройка_1>", "config_spec.greenplum_config_<версия_Greenplum®>.<настройка_2>", ... "config_spec.greenplum_config_<версия_Greenplum®>.<настройка_N>" ] }, "config_spec": { "greenplum_config_<версия_Greenplum®>": { "<настройка_1>": "<значение_1>", "<настройка_2>": "<значение_2>", ... "<настройка_N>": "<значение_N>" } } }' \ mdb.api.cloud.yandex.net:443 \ yandex.cloud.mdb.greenplum.v1.ClusterService.Update
Где:
-
update_mask
— перечень изменяемых параметров в виде массива строкpaths[]
.В данном случае перечислите все изменяемые настройки Greenplum®.
-
config_spec.greenplum_config_<версия_Greenplum®>
— набор настроек Greenplum®. Укажите каждую настройку на отдельной строке через запятую.Список версий Greenplum®, доступных для параметра, см. в описании метода. Описание и возможные значения настроек см. в разделе Настройки Greenplum®.
Идентификатор кластера можно запросить со списком кластеров в каталоге.
-
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
Изменить класс хостов
Вы можете изменить класс как хостов-мастеров, так и хостов-сегментов. При смене класса хостов:
- В кластере сменится первичный хост-мастер.
- Подключение по особому FQDN не гарантирует стабильность соединения с БД: пользовательские сессии могут быть прерваны.
Изменение класса хостов-сегментов влияет на максимальный объем памяти, выделенный на каждый серверный процесс Greenplum®.
Рекомендуется изменять класс хостов только во время отсутствия рабочей нагрузки на кластер.
- Перейдите на страницу каталога и выберите сервис Managed Service for Greenplum.
- Выберите кластер и нажмите кнопку
Редактировать на панели сверху. - В блоке Класс хоста выберите нужный класс для хостов-мастеров или хостов-сегментов Greenplum®.
- Нажмите кнопку Сохранить изменения.
Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.
По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name
или --folder-id
.
Чтобы изменить класс хостов для кластера:
-
Посмотрите описание команды CLI для изменения кластера:
yc managed-greenplum cluster update --help
-
Запросите список доступных классов (в колонке
ZONE IDS
указаны зоны доступности, в которых можно выбрать соответствующий класс):-
для хостов-мастеров:
yc managed-greenplum resource-preset list master
-
для хостов-сегментов:
yc managed-greenplum resource-preset list segment
+-------------+--------------------------------+--------------------------------+-------+----------+--------------------+---------------------+ | ID | ZONE IDS | DISK TYPES | CORES | MEMORY | HOST COUNT DIVIDER | MAX SEGMENT IN HOST | +-------------+--------------------------------+--------------------------------+-------+----------+--------------------+---------------------+ | i2.2xlarge | ru-central1-a, ru-central1-b | local-ssd, | 16 | 128.0 GB | 1 | 0 | | | | network-ssd-nonreplicated | | | | | | ... | +-------------+--------------------------------+--------------------------------+-------+----------+--------------------+---------------------+
-
-
Укажите нужные классы в команде изменения кластера:
yc managed-greenplum cluster update <имя_или_идентификатор_кластера> \ --master-config resource-id=<идентификатор_класса_хостов-мастеров> \ --segment-config resource-id=<идентификатор_класса_хостов-сегментов>
Managed Service for Greenplum® запустит операцию изменения класса хостов для кластера.
-
Откройте актуальный конфигурационный файл Terraform с планом инфраструктуры.
Как создать такой файл, см. в разделе Создание кластера.
Полный список доступных для изменения полей конфигурации кластера Managed Service for Greenplum® см. в документации провайдера Terraform
. -
Измените в описании кластера Managed Service for Greenplum® значение атрибута
resource_preset_id
в блокеmaster_subcluster.resources
илиsegment_subcluster.resources
:resource "yandex_mdb_greenplum_cluster" "<имя_кластера>" { ... master_subcluster { resources { resource_preset_id = "<класс_хоста>" ... } } segment_subcluster { resources { resource_preset_id = "<класс_хоста>" ... } } }
-
Проверьте корректность настроек.
-
В командной строке перейдите в каталог, в котором расположены актуальные конфигурационные файлы Terraform с планом инфраструктуры.
-
Выполните команду:
terraform validate
Если в файлах конфигурации есть ошибки, Terraform на них укажет.
-
-
Подтвердите изменение ресурсов.
-
Выполните команду для просмотра планируемых изменений:
terraform plan
Если конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.
-
Если вас устраивают планируемые изменения, внесите их:
-
Выполните команду:
terraform apply
-
Подтвердите изменение ресурсов.
-
Дождитесь завершения операции.
-
Ограничения по времени
Провайдер Terraform ограничивает время на выполнение всех операций с кластером Managed Service for Greenplum® 120 минутами.
Операции, длящиеся дольше указанного времени, прерываются.
Как изменить эти ограничения?
Добавьте к описанию кластера блок
timeouts
, например:resource "yandex_mdb_greenplum_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-greenplum/v1/clusters/<идентификатор_кластера>' \ --data '{ "updateMask": "masterConfig.resources.resourcePresetId,segmentConfig.resources.resourcePresetId", "masterConfig": { "resources": { "resourcePresetId": "<класс_хостов>" } }, "segmentConfig": { "resources": { "resourcePresetId": "<класс_хостов>" } } }'
Где:
-
updateMask
— перечень изменяемых параметров в одну строку через запятую. -
masterConfig.resources.resourcePresetId
,segmentConfig.resources.resourcePresetId
— новый класс хостов для хостов-мастеров и хостов-сегментов.
Идентификатор кластера можно запросить со списком кластеров в каталоге.
-
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
-
Получите 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/greenplum/v1/cluster_service.proto \ -rpc-header "Authorization: Bearer $IAM_TOKEN" \ -d '{ "cluster_id": "<идентификатор_кластера>", "update_mask": { "paths": [ "master_config.resources.resource_preset_id", "segment_config.resources.resource_preset_id" ] }, "master_config": { "resources": { "resource_preset_id": "<класс_хостов>" } }, "segment_config": { "resources": { "resource_preset_id": "<класс_хостов>" } } }' \ mdb.api.cloud.yandex.net:443 \ yandex.cloud.mdb.greenplum.v1.ClusterService.Update
Где:
-
update_mask
— перечень изменяемых параметров в виде массива строкpaths[]
. -
master_config.resources.resource_preset_id
,segment_config.resources.resource_preset_id
— новый класс хостов для хостов-мастеров и хостов-сегментов.
Идентификатор кластера можно запросить со списком кластеров в каталоге.
-
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
Изменить тип диска и увеличить размер хранилища
Проверьте, что в облаке достаточно квот для увеличения хранилища. Откройте страницу Квоты
Чтобы изменить тип диска и увеличить размер хранилища для кластера:
-
В консоли управления
перейдите в каталог с нужным кластером. -
Выберите сервис Managed Service for Greenplum.
-
Выберите нужный кластер.
-
В верхней части страницы нажмите кнопку Редактировать.
-
В блоке Хранилище:
- Выберите тип диска.
- Укажите нужный размер диска.
-
Нажмите кнопку Сохранить.
Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.
По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name
или --folder-id
.
Чтобы увеличить размер хранилища для кластера:
-
Посмотрите описание команды CLI для изменения кластера:
yc managed-greenplum cluster update --help
-
Укажите нужный размер хранилища для хостов-мастеров или хостов-сегментов в команде изменения кластера (размер хранилища должен быть не меньше, чем значение
disk_size
в свойствах кластера):yc managed-mysql cluster update <имя_или_идентификатор_кластера> \ --master-config disk-size <размер_хранилища_в_гигабайтах> \ --segment-config disk-size <размер_хранилища_в_гигабайтах>
-
Откройте актуальный конфигурационный файл Terraform с планом инфраструктуры.
Как создать такой файл, см. в разделе Создание кластера.
Полный список доступных для изменения полей конфигурации кластера Managed Service for Greenplum® см. в документации провайдера Terraform
. -
Измените в описании кластера Managed Service for Greenplum® значения атрибутов
disk_type_id
иdisk_size
в блокеmaster_subcluster.resources
илиsegment_subcluster.resources
:resource "yandex_mdb_greenplum_cluster" "<имя_кластера>" { ... master_subcluster { resources { disk_type_id = "<тип_диска>" disk_size = <размер_хранилища_в_гигабайтах> ... } } segment_subcluster { resources { disk_type_id = "<тип_диска>" disk_size = <размер_хранилища_в_гигабайтах> ... } } }
-
Проверьте корректность настроек.
-
В командной строке перейдите в каталог, в котором расположены актуальные конфигурационные файлы Terraform с планом инфраструктуры.
-
Выполните команду:
terraform validate
Если в файлах конфигурации есть ошибки, Terraform на них укажет.
-
-
Подтвердите изменение ресурсов.
-
Выполните команду для просмотра планируемых изменений:
terraform plan
Если конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.
-
Если вас устраивают планируемые изменения, внесите их:
-
Выполните команду:
terraform apply
-
Подтвердите изменение ресурсов.
-
Дождитесь завершения операции.
-
Ограничения по времени
Провайдер Terraform ограничивает время на выполнение всех операций с кластером Managed Service for Greenplum® 120 минутами.
Операции, длящиеся дольше указанного времени, прерываются.
Как изменить эти ограничения?
Добавьте к описанию кластера блок
timeouts
, например:resource "yandex_mdb_greenplum_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-greenplum/v1/clusters/<идентификатор_кластера>' \ --data '{ "updateMask": "masterConfig.resources.diskTypeId,masterConfig.resources.diskSize,segmentConfig.resources.diskTypeId,segmentConfig.resources.diskSize", "masterConfig": { "resources": { "diskTypeId": "<тип_диска>", "diskSize": "<размер_хранилища_в_байтах>" } }, "segmentConfig": { "resources": { "diskTypeId": "<тип_диска>", "diskSize": "<размер_хранилища_в_байтах>" } } }'
Где:
-
updateMask
— перечень изменяемых параметров в одну строку через запятую. -
masterConfig.resources
,segmentConfig.resources
— параметры хранилища для хостов-мастеров и хостов-сегментов:diskTypeId
— тип диска.diskSize
— новый размер хранилища в байтах.
Идентификатор кластера можно запросить со списком кластеров в каталоге.
-
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
-
Получите 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/greenplum/v1/cluster_service.proto \ -rpc-header "Authorization: Bearer $IAM_TOKEN" \ -d '{ "cluster_id": "<идентификатор_кластера>", "update_mask": { "paths": [ "master_config.resources.disk_type_id", "master_config.resources.disk_size", "segment_config.resources.disk_type_id", "segment_config.resources.disk_size" ] }, "master_config": { "resources": { "disk_type_id": "<тип_диска>", "disk_size": "<размер_хранилища_в_байтах>" } }, "segment_config": { "resources": { "disk_type_id": "<тип_диска>", "disk_size": "<размер_хранилища_в_байтах>" } } }' \ mdb.api.cloud.yandex.net:443 \ yandex.cloud.mdb.greenplum.v1.ClusterService.Update
Где:
-
update_mask
— перечень изменяемых параметров в виде массива строкpaths[]
. -
master_config.resources
,segment_config.resources
— параметры хранилища для хостов-мастеров и хостов-сегментов:disk_type_id
— тип диска.disk_size
— новый размер хранилища в байтах.
Идентификатор кластера можно запросить со списком кластеров в каталоге.
-
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
Greenplum® и Greenplum Database® являются зарегистрированными товарными знаками или товарными знаками VMware, Inc в США и/или других странах.