Создание кластера Greenplum®
Примечание
В регионе Казахстан доступна только зона доступности kz1-a.
Примечание
В регионе Казахстан доступны только платформы standard-v3 (Intel Ice Lake) и standard-v3-t4i (Intel Ice Lake with T4i). Другие типы платформ, кластеры GPU и выделенные хосты недоступны.
Кластер Greenplum® состоит из хостов-мастеров, которые принимают запросы от клиента, и хостов-сегментов, обеспечивающих обработку и хранение данных.
Подробнее см. в разделе Взаимосвязь ресурсов сервиса.
Создать кластер
Для создания кластера Greenplum® нужна роль vpc.user и роль managed-greenplum.editor или выше. О том, как назначить роль, см. документацию Identity and Access Management.
Чтобы создать кластер Greenplum®:
-
В консоли управления
выберите каталог, в котором нужно создать кластер баз данных. -
Выберите сервис Yandex MPP Analytics for PostgreSQL.
-
Нажмите кнопку Создать кластер.
-
Введите имя кластера. Оно должно быть уникальным в рамках каталога.
-
(Опционально) Введите описание кластера.
-
Выберите окружение, в котором нужно создать кластер (после создания кластера окружение изменить невозможно):
PRODUCTION— для стабильных версий ваших приложений.PRESTABLE— для тестирования. Prestable-окружение аналогично Production-окружению и на него также распространяется SLA, но при этом на нем раньше появляются новые функциональные возможности, улучшения и исправления ошибок. В Prestable-окружении вы можете протестировать совместимость новых версий с вашим приложением.
-
Выберите версию Greenplum®.
-
(Опционально) Чтобы разместить хосты-мастеры или хосты-сегменты на выделенных хостах, выберите группы выделенных хостов. Можно назначить группы на один из видов хостов Greenplum® либо сразу на оба.
Группа выделенных хостов должна быть предварительно создана в сервисе Yandex Compute Cloud.
Эту настройку нельзя изменить после создания кластера.
При использовании выделенных хостов стоимость использования кластера складывается из цены за вычислительные ресурсы Yandex Compute Cloud и наценки Yandex MPP Analytics for PostgreSQL.
-
В блоке Сетевые настройки выберите:
-
Облачную сеть для размещения кластера.
-
Группы безопасности для сетевого трафика кластера. Может потребоваться дополнительная настройка групп безопасности для того, чтобы можно было подключаться к кластеру.
-
Зону доступности и подсеть для размещения кластера. Чтобы создать новую подсеть, нажмите Создать подсеть в списке подсетей.
Важно
Выбранную для размещения кластера зону доступности нельзя будет изменить.
Для кластеров, хосты которых располагаются в зоне доступности
kz1-d, недоступно хранилище на локальных SSD-дисках при использовании платформы Intel Cascade Lake. -
Опцию Публичный доступ, чтобы подключаться к кластеру из интернета.
-
-
(Опционально) Включите опцию Гибридное хранилище.
Она включает гибридное хранилище. Гибридное хранилище нельзя отключить после сохранения настроек кластера.
Когда гибридное хранилище включено, с помощью расширения Yezzey можно переместить часть таблиц AO и AOCO из хранилища кластера в холодное хранилище и наоборот.
Холодное хранилище удобно, если данные таблиц нужно хранить долго, а работать с ними планируется редко. Так хранение будет дешевле.
Примечание
Функциональность находится на стадии Preview и не тарифицируется.
-
Укажите реквизиты пользователя-администратора. Это специальный пользователь, который необходим для управления кластером и не может быть удален. Подробнее см. в разделе Пользователи и роли.
-
Имя пользователя — может содержать латинские буквы, цифры, дефис и подчеркивание, но не может начинаться с дефиса. Длина от 1 до 32 символов.
Примечание
Имена
admin,gpadmin, mdb_admin,mdb_replication,monitor,none,postgres,public,replзарезервированы для собственных нужд Yandex MPP Analytics for PostgreSQL. Создавать пользователей с этими именами нельзя. -
Пароль — длина от 8 до 128 символов.
-
-
При необходимости задайте дополнительные настройки кластера:
-
Начало резервного копирования (UTC) — промежуток времени, в течение которого начинается резервное копирование кластера. Время указывается по UTC в 24-часовом формате. По умолчанию —
22:00 - 23:00UTC. -
Окно обслуживания — настройки времени технического обслуживания:
- Чтобы разрешить проведение технического обслуживания в любое время, выберите пункт произвольное (по умолчанию).
- Чтобы указать предпочтительное время начала обслуживания, выберите пункт по расписанию и укажите нужные день недели и час дня по UTC. Например, можно выбрать время, когда кластер наименее загружен.
Операции по техническому обслуживанию проводятся для включенных и выключенных кластеров. Они могут включать в себя: обновление СУБД, применение патчей и так далее.
-
Сервисный аккаунт — выберите существующий сервисный аккаунт для доступа к сервисам Yandex Cloud или создайте новый.
-
Запись логов — опция включает логирование операций в кластере. За хранение логов взимается плата в соответствии с тарифами Yandex Cloud Logging. Для записи логов назначьте выбранному сервисному аккаунту роль
logging.writer.Если вы включили опцию, настройте параметры логирования:
-
Укажите место записи логов:
- Каталог — логи будут записываться в лог-группу по умолчанию выбранного каталога.
- Группа — логи будут записываться в новую или выбранную из списка лог-группу.
-
Выберите, какие логи записывать:
- Логи командного центра — опция включает запись логов командного центра.
- Логи Greenplum — опция включает запись логов Greenplum®. Уровень логирования можно задать с помощью параметра Log min messages в блоке Настройки СУБД.
-
-
Защита от удаления — управляет защитой кластера от непреднамеренного удаления.
Включенная защита кластера от удаления не помешает подключиться к нему вручную и удалить данные.
-
-
(Опционально) Задайте режим работы и параметры менеджера подключений в блоке Менеджер подключений:
- Режим —
SESSION(сессионный) илиTRANSACTION(транзакционный, по умолчанию). - Размер — количество клиентских соединений. По умолчанию —
0(не ограничено). - Тайм-аут ожидания клиента — время неактивности клиентского соединения в секундах, после которого соединение разрывается. По умолчанию —
28800.
- Режим —
-
(Опционально) В блоке Управление фоновыми процессами измените параметры регламентных операций технического обслуживания:
- Время старта (UTC) — время, в которое начнется выполнение операции
VACUUM. По умолчанию —19:00 UTC. После завершения операцииVACUUMзапустится операцияANALYZE. - Таймаут VACUUM — максимальная длительность выполнения операции
VACUUM, в секундах. Возможные значения: от7200до86399, по умолчанию —36000. Когда указанное время истечет, операцияVACUUMбудет принудительно завершена. - Таймаут ANALYZE — максимальная длительность выполнения операции
ANALYZE, в секундах. Возможные значения: от7200до86399, по умолчанию —36000. Когда указанное время истечет, операцияANALYZEбудет принудительно завершена.
Суммарная длительность операций
VACUUMиANALYZEне может превышать 24 часа. - Время старта (UTC) — время, в которое начнется выполнение операции
-
Укажите параметры хостов-мастеров на вкладке Master. Рекомендуемую конфигурацию см. в разделе Расчет конфигурации кластера.
-
Класс хоста — определяет технические характеристики виртуальных машин, на которых будут развернуты хосты-мастеры кластера.
-
В блоке Хранилище выберите тип диска и укажите его размер. Доступные типы диска зависят от выбранного класса хостов.
Важно
- Тип диска нельзя изменить после создания кластера.
- Размер хранилища нельзя уменьшить.
- Во время изменения размера хранилища хосты кластера будут недоступны.
-
-
Укажите параметры хостов-сегментов на вкладке Segment. Рекомендуемую конфигурацию см. в разделе Расчет конфигурации кластера.
-
Количество хостов-сегментов.
-
Количество сегментов на хост. Максимальное значение этого параметра зависит от класса хостов.
Класс хостов-сегментов и количество сегментов на хост влияют на максимальный объем памяти, выделенный на каждый серверный процесс Greenplum®. Если выбран класс хостов с небольшим объемом оперативной памяти и указано большое число сегментов, то может возникнуть ошибка.
-
Класс хоста — определяет технические характеристики виртуальных машин, на которых будут развернуты хосты-сегменты кластера.
-
В блоке Хранилище выберите тип диска и укажите его размер. Доступные типы диска зависят от выбранного класса хостов.
Важно
- Тип диска нельзя изменить после создания кластера.
- Размер хранилища нельзя уменьшить.
- Во время изменения размера хранилища хосты кластера будут недоступны.
- Выберите размер хранилища.
-
-
При необходимости задайте настройки СУБД уровня кластера.
-
Нажмите кнопку Создать.
Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.
По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.
Чтобы создать кластер Greenplum®:
-
Проверьте, есть ли в каталоге подсети для хостов кластера:
yc vpc subnet listЕсли ни одной подсети в каталоге нет, создайте нужные подсети в сервисе VPC.
-
Посмотрите описание команды CLI для создания кластера:
yc managed-greenplum cluster create --help -
Укажите параметры кластера в команде создания (в примере приведены не все доступные параметры):
yc managed-greenplum cluster create <имя_кластера> \ --greenplum-version=<версия_Greenplum> \ --environment=<окружение> \ --network-name=<имя_сети> \ --user-name=<имя_пользователя> \ --user-password=<пароль_пользователя> \ --master-config resource-id=<класс_хоста>,` `disk-size=<объем_хранилища_ГБ>,` `disk-type=<network-hdd|network-ssd|network-ssd-nonreplicated|local-ssd> \ --segment-config resource-id=<класс_хоста>,` `disk-size=<объем_хранилища_ГБ>,` `disk-type=<network-ssd-nonreplicated|local-ssd> \ --zone-id=<зона_доступности> \ --subnet-id=<идентификатор_подсети> \ --assign-public-ip=<разрешить_публичный_доступ_к_хостам_кластера> \ --security-group-ids=<список_идентификаторов_групп_безопасности> \ --deletion-protectionПримечание
Имя кластера должно быть уникальным в каталоге. Оно может содержать латинские буквы, цифры, дефис и подчеркивание. Максимальная длина имени 63 символа.
Где:
-
--greenplum-version— версия Greenplum®: 6.22 или 6.25. -
--environment— окружение:PRODUCTION— для стабильных версий ваших приложений.PRESTABLE— для тестирования. Prestable-окружение аналогично Production-окружению и на него также распространяется SLA, но при этом на нем раньше появляются новые функциональные возможности, улучшения и исправления ошибок. В Prestable-окружении вы можете протестировать совместимость новых версий с вашим приложением.
-
--network-name— имя сети. -
--user-name— имя пользователя. Может содержать латинские буквы, цифры, дефис и подчеркивание, но должно начинаться с буквы, цифры или подчеркивания. Длина от 1 до 32 символов. -
--user-password— пароль. Длина от 8 до 128 символов. -
--master-configи--segment-config— конфигурация хостов-мастеров и хостов-сегментов:-
resource-id— класс хоста.Класс хостов-сегментов и количество сегментов на хост влияют на максимальный объем памяти, выделенный на каждый серверный процесс Greenplum®. Если выбран класс хостов с небольшим объемом оперативной памяти и указано большое число сегментов, то может возникнуть ошибка.
-
disk-size— объем хранилища в гигабайтах. -
disk-type— тип диска:network-hdd(только для хостов-мастеров);network-ssd(только для хостов-мастеров);local-ssd;network-ssd-nonreplicated.
-
-
--zone-id— зона доступности. -
--subnet-id— идентификатор подсети. Необходимо указывать, если в выбранной зоне доступности создано 2 и больше подсетей. -
--assign-public-ip— флаг, который указывается, если для хостов нужен публичный доступ:trueилиfalse. -
--security-group-ids— список идентификаторов групп безопасности. -
--deletion-protection— защита кластера от непреднамеренного удаления:trueилиfalse.Включенная защита кластера от удаления не помешает подключиться к нему вручную и удалить данные.
-
-
Чтобы задать время начала резервного копирования, передайте нужное значение в формате
HH:MM:SSв параметре--backup-window-start:yc managed-greenplum cluster create <имя_кластера> \ ... --backup-window-start=<время_начала_резервного_копирования> -
(Опционально) Чтобы создать кластер, размещенный на группах выделенных хостов, укажите через запятую их идентификаторы в параметрах
--master-host-group-idsи--segment-host-group-ids:yc managed-greenplum cluster create <имя_кластера> \ ... --master-host-group-ids=<идентификаторы_групп_выделенных_хостов_для_хостов-мастеров> \ --segment-host-group-ids=<идентификаторы_групп_выделенных_хостов_для_хостов-сегментов>Вы можете назначить группы на один из видов хостов Greenplum® либо сразу на оба.
Группа выделенных хостов должна быть предварительно создана в сервисе Yandex Compute Cloud.
Эту настройку нельзя изменить после создания кластера.
При использовании выделенных хостов стоимость использования кластера складывается из цены за вычислительные ресурсы Yandex Compute Cloud и наценки Yandex MPP Analytics for PostgreSQL.
-
Чтобы настроить время технического обслуживания (в т. ч. для выключенных кластеров), передайте нужное значение в параметре
--maintenance-windowпри создании кластера:yc managed-greenplum cluster create <имя_кластера> \ ... --maintenance-window type=<тип_технического_обслуживания>,` `day=<день_недели>,` `hour=<час_дня> \Где
type— тип технического обслуживания:anytime(по умолчанию) — в любое время.weekly— по расписанию. Для этого значения дополнительно укажите:day— день недели:MON,TUE,WED,THU,FRI,SATилиSUN.hour— час дня по UTC: от1до24.
-
Чтобы включить передачу логов в сервис Yandex Cloud Logging, укажите параметры при создании кластера:
yc managed-greenplum cluster create <имя_кластера> \ ... --service-account <идентификатор_сервисного_аккаунта> \ --log-enabled \ --log-command-center-enabled \ --log-greenplum-enabled \ --log-pooler-enabled \ --log-folder-id <идентификатор_каталога>Где:
-
--service-account— идентификатор сервисного аккаунта. -
--log-enabled— включает механизм передачи логов. Обязателен для работы других флагов, отвечающих за передачу конкретных логов, например,--log-greenplum-enabled. -
--log-command-center-enabled— передача логов командного центра. -
--log-greenplum-enabled— передача логов Greenplum®. -
--log-pooler-enabled— передача логов менеджера подключений. -
--log-folder-id— идентификатор каталога, лог-группу которого нужно использовать. -
--log-group-id— идентификатор лог-группы, в которую будут записываться логи.Укажите только одну из настроек:
--log-folder-idлибо--log-group-id.
-
Terraform
Terraform распространяется под лицензией Business Source License
Подробную информацию о ресурсах провайдера смотрите в документации на сайте Terraform
Чтобы создать кластер Greenplum®:
-
В командной строке перейдите в каталог, в котором будут расположены конфигурационные файлы Terraform с планом инфраструктуры. Если такой директории нет — создайте ее.
-
Если у вас еще нет Terraform, установите его и настройте провайдер Yandex Cloud.
-
Создайте конфигурационный файл с описанием облачной сети и подсетей.
Кластер размещается в облачной сети. Если подходящая сеть у вас уже есть, описывать ее повторно не нужно.
Хосты кластера размещаются в подсетях выбранной облачной сети. Если подходящие подсети у вас уже есть, описывать их повторно не нужно.
Пример структуры конфигурационного файла, в котором описывается облачная сеть с одной подсетью:
resource "yandex_vpc_network" "<имя_сети_в_Terraform>" { name = "<имя_сети>" } resource "yandex_vpc_subnet" "<имя_подсети_в_Terraform>" { name = "<имя_подсети>" zone = "<зона_доступности>" network_id = yandex_vpc_network.<имя_сети_в_Terraform>.id v4_cidr_blocks = ["<подсеть>"] } -
Создайте конфигурационный файл с описанием кластера и его хостов.
Пример структуры конфигурационного файла:
resource "yandex_mdb_greenplum_cluster" "<имя_кластера_в_Terraform>" { name = "<имя_кластера>" environment = "<окружение>" network_id = yandex_vpc_network.<имя_сети_в_Terraform>.id zone = "<зона_доступности>" subnet_id = yandex_vpc_subnet.<имя_подсети_в_Terraform>.id assign_public_ip = <разрешить_публичный_доступ_к_хостам_кластера> deletion_protection = <защитить_кластер_от_удаления> version = "<версия_Greenplum>" master_host_count = <количество_хостов_мастеров> segment_host_count = <количество_хостов_сегментов> segment_in_host = <количество_сегментов_на_хост> master_subcluster { resources { resource_preset_id = "<класс_хоста>" disk_size = <объем_хранилища_ГБ> disk_type_id = "<тип_диска>" } } segment_subcluster { resources { resource_preset_id = "<класс_хоста>" disk_size = <объем_хранилища_ГБ> disk_type_id = "<тип_диска>" } } user_name = "<имя_пользователя>" user_password = "<пароль>" security_group_ids = ["<список_идентификаторов_групп_безопасности>"] }Где:
-
assign_public_ip— публичный доступ к хостам кластера:trueилиfalse. -
deletion_protection— защита кластера от непреднамеренного удаления:trueилиfalse.Включенная защита кластера от удаления не помешает подключиться к нему вручную и удалить данные.
-
version— версия Greenplum®. -
master_host_count— количество хостов-мастеров: 2. -
segment_host_count— количество хостов-сегментов: от 2 до 32. -
segment_in_host— количество сегментов на хост. Максимальное значение этого параметра зависит от класса хостов.Класс хостов-сегментов и количество сегментов на хост влияют на максимальный объем памяти, выделенный на каждый серверный процесс Greenplum®. Если выбран класс хостов с небольшим объемом оперативной памяти и указано большое число сегментов, то может возникнуть ошибка.
Более подробную информацию о ресурсах, которые вы можете создать с помощью Terraform, см. в документации провайдера.
-
-
(Опционально) Чтобы разместить хосты-мастеры или хосты-сегменты на выделенных хостах, укажите группы выделенных хостов:
resource "yandex_mdb_greenplum_cluster" "<имя_кластера_в_Terraform>" { ... master_host_group_ids = [<идентификаторы_групп_выделенных_хостов_для_хостов-мастеров>] segment_host_group_ids = [<идентификаторы_групп_выделенных_хостов_для_хостов-сегментов>] ... }Вы можете назначить группы на один из двух видов хостов Greenplum® либо сразу на оба.
Группа выделенных хостов должна быть предварительно создана в сервисе Yandex Compute Cloud.
Эту настройку нельзя изменить после создания кластера.
При использовании выделенных хостов стоимость использования кластера складывается из цены за вычислительные ресурсы Yandex Compute Cloud и наценки Yandex MPP Analytics for PostgreSQL.
-
Чтобы включить передачу логов в сервис Yandex Cloud Logging, укажите параметры:
resource "yandex_mdb_greenplum_cluster" "<имя_кластера_в_Terraform>" { ... service_account_id="<идентификатор_сервисного_аккаунта>" logging { enabled = <включить_передачу_логов> command_center_enabled = <передавать_логи_Yandex_Command_Center> greenplum_enabled = <передавать_логи_Greenplum®> pooler_enabled = <передавать_логи_менеджера_подключений> folder_id = "<идентификатор_каталога>" } }Где:
-
service_account_id— идентификатор сервисного аккаунта. -
logging— настройки передачи логов:-
enabled— управляет механизмом передачи логов:trueилиfalse. Для работы параметров, отвечающих за передачу конкретных логов, передайте значениеtrue. -
command_center_enabled— передача логов командного центра:trueилиfalse. -
greenplum_enabled— передача логов Greenplum®:trueилиfalse. -
pooler_enabled— передача логов менеджера подключений:trueилиfalse. -
folder_id— идентификатор каталога, лог-группу которого нужно использовать. -
log_group_id— идентификатор лог-группы, в которую будут записываться логи.Укажите только одну из настроек:
folder_idлибоlog_group_id.
-
-
-
Проверьте корректность файлов конфигурации Terraform:
-
В командной строке перейдите в каталог, в котором расположены актуальные конфигурационные файлы Terraform с планом инфраструктуры.
-
Выполните команду:
terraform validateЕсли в файлах конфигурации есть ошибки, Terraform на них укажет.
-
-
Создайте кластер:
-
Выполните команду для просмотра планируемых изменений:
terraform planЕсли конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.
-
Если вас устраивают планируемые изменения, внесите их:
-
Выполните команду:
terraform apply -
Подтвердите изменение ресурсов.
-
Дождитесь завершения операции.
-
В указанном каталоге будут созданы все требуемые ресурсы. Проверить появление ресурсов и их настройки можно в консоли управления
. -
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>" -
Создайте файл
body.jsonи добавьте в него следующее содержимое:{ "folderId": "<идентификатор_каталога>", "name": "<имя_кластера>", "environment": "<окружение>", "config": { "version": "<версия_Greenplum®>", "zoneId": "<зона_доступности>", "subnetId": "<идентификатор_подсети>", "assignPublicIp": <разрешить_публичный_доступ_к_хостам_кластера> }, "masterConfig": { "resources": { "resourcePresetId": "<класс_хостов>", "diskSize": "<размер_хранилища_в_байтах>", "diskTypeId": "<тип_диска>" } }, "segmentConfig": { "resources": { "resourcePresetId": "<класс_хостов>", "diskSize": "<размер_хранилища_в_байтах>", "diskTypeId": "<тип_диска>" } }, "masterHostCount": "<количество_хостов-мастеров>", "segmentHostCount": "<количество_хостов-сегментов>", "segmentInHost": "<количество_сегментов_на_хост>", "userName": "<имя_пользователя>", "userPassword": "<пароль_пользователя>", "networkId": "<идентификатор_сети>", "securityGroupIds": [ "<идентификатор_группы_безопасности_1>", "<идентификатор_группы_безопасности_2>", ... "<идентификатор_группы_безопасности_N>" ], "deletionProtection": <защитить_кластер_от_удаления>, "configSpec": { "pool": { "mode": "<режим_работы>", "size": "<количество_клиентских_соединений>", "clientIdleTimeout": "<время_ожидания_клиента>" } }, "cloudStorage": { "enable": <использовать_гибридное_хранилище> }, "serviceAccountId": "<идентификатор_сервисного_аккаунта>", "logging": { "enabled": "<включить_передачу_логов>", "commandCenterEnabled": "<передавать_логи_Yandex_Command_Center>", "greenplumEnabled": "<передавать_логи_Greenplum®>", "poolerEnabled": "<передавать_логи_менеджера_подключений>", "folderId": "<идентификатор_каталога>" } }Где:
-
folderId— идентификатор каталога. Его можно запросить со списком каталогов в облаке. -
name— имя кластера. -
environment— окружение кластера:PRODUCTIONилиPRESTABLE. -
config— настройки кластера:-
version— версия Greenplum®. -
zoneId— зона доступности. -
subnetId— идентификатор подсети. -
assignPublicIp— публичный доступ к хостам кластера:trueилиfalse.
-
-
masterConfig.resources,segmentConfig.resources— конфигурация хостов-мастеров и хостов-сегментов кластера:resourcePresetId— класс хостов;diskSize— размер диска в байтах;diskTypeId— тип диска.
-
masterHostCount— количество хостов-мастеров:1или2. -
segmentHostCount— количество хостов-сегментов: от2до32. -
segmentInHost— количество сегментов на хост. Максимальное значение этого параметра зависит от класса хостов.Класс хостов-сегментов и количество сегментов на хост влияют на максимальный объем памяти, выделенный на каждый серверный процесс Greenplum®. Если выбран класс хостов с небольшим объемом оперативной памяти и указано большое число сегментов, то может возникнуть ошибка.
-
userName— имя пользователя. -
userPassword— пароль пользователя. -
networkId— идентификатор сети, в которой будет размещен кластер. -
securityGroupIds— идентификаторы групп безопасности. -
deletionProtection— защита кластера от непреднамеренного удаления:trueилиfalse.Включенная защита кластера от удаления не помешает подключиться к нему вручную и удалить данные.
-
configSpec.pool— настройки менеджера подключений:mode— режим работы:SESSIONилиTRANSACTION.size— количество клиентских соединений.clientIdleTimeout— время неактивности клиентского соединения в секундах, после которого соединение разрывается.
-
cloudStorage.enable— использование гибридного хранилища в кластерах с версией Greenplum® 6.25 и выше. Установите значениеtrue, чтобы включить в кластере расширение Yezzey от Yandex Cloud. Оно применяется, чтобы выгрузить таблицы AO и AOCO с дисков кластера Greenplum® в холодное хранилище Yandex Object Storage. Так данные хранятся в служебном бакете в сжатом и зашифрованном виде. Это более экономичный способ хранения.Гибридное хранилище нельзя отключить после сохранения настроек кластера.
Примечание
Функциональность находится на стадии Preview и не тарифицируется.
-
masterHostGroupIdsиsegmentHostGroupIds— (опционально) идентификаторы групп выделенных хостов для хостов-мастеров и хостов-сегментов.Группа выделенных хостов должна быть предварительно создана в сервисе Yandex Compute Cloud.
Эту настройку нельзя изменить после создания кластера.
При использовании выделенных хостов стоимость использования кластера складывается из цены за вычислительные ресурсы Yandex Compute Cloud и наценки Yandex MPP Analytics for PostgreSQL.
-
serviceAccountId— идентификатор сервисного аккаунта. -
logging— настройки передачи логов в сервис Yandex Cloud Logging:-
enabled— управляет механизмом передачи логов:trueилиfalse. Для работы параметров, отвечающих за передачу конкретных логов, передайте значениеtrue. -
commandCenterEnabled— передача логов командного центра:trueилиfalse. -
greenplumEnabled— передача логов Greenplum®:trueилиfalse. -
poolerEnabled— передача логов менеджера подключений:trueилиfalse. -
folderId— идентификатор каталога, лог-группу которого нужно использовать. -
logGroupId— идентификатор лог-группы, в которую будут записываться логи.Укажите только одну из настроек:
folderIdлибоlogGroupId.
-
-
-
Воспользуйтесь методом Cluster.Create и выполните запрос, например, с помощью cURL
:curl \ --request POST \ --header "Authorization: Bearer $IAM_TOKEN" \ --header "Content-Type: application/json" \ --url 'https://mdb.api.yandexcloud.kz/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и добавьте в него следующее содержимое:{ "folder_id": "<идентификатор_каталога>", "name": "<имя_кластера>", "environment": "<окружение>", "config": { "version": "<версия_Greenplum®>", "zone_id": "<зона_доступности>", "subnet_id": "<идентификатор_подсети>", "assign_public_ip": <разрешить_публичный_доступ_к_хостам_кластера> }, "master_config": { "resources": { "resource_preset_id": "<класс_хостов>", "disk_size": "<размер_хранилища_в_байтах>", "disk_type_id": "<тип_диска>" } }, "segment_config": { "resources": { "resource_preset_id": "<класс_хостов>", "disk_size": "<размер_хранилища_в_байтах>", "disk_type_id": "<тип_диска>" } }, "master_host_count": "<количество_хостов-мастеров>", "segment_host_count": "<количество_хостов-сегментов>", "segment_in_host": "<количество_сегментов_на_хост>", "user_name": "<имя_пользователя>", "user_password": "<пароль_пользователя>", "network_id": "<идентификатор_сети>", "security_group_ids": [ "<идентификатор_группы_безопасности_1>", "<идентификатор_группы_безопасности_2>", ... "<идентификатор_группы_безопасности_N>" ], "deletion_protection": <защитить_кластер_от_удаления> "config_spec": { "pool": { "mode": "<режим_работы>", "size": "<количество_клиентских_соединений>", "client_idle_timeout": "<время_ожидания_клиента>" } }, "cloud_storage": { "enable": <использовать_гибридное_хранилище> }, "service_account_id": "<идентификатор_сервисного_аккаунта>", "logging": { "enabled": "<включить_передачу_логов>", "command_center_enabled": "<передавать_логи_Yandex_Command_Center>", "greenplum_enabled": "<передавать_логи_Greenplum®>", "pooler_enabled": "<передавать_логи_менеджера_подключений>", "folder_id": "<идентификатор_каталога>" } }Где:
-
folder_id— идентификатор каталога. Его можно запросить со списком каталогов в облаке. -
name— имя кластера. -
environment— окружение кластера:PRODUCTIONилиPRESTABLE. -
config— настройки кластера:-
version— версия Greenplum®. -
zone_id— зона доступности. -
subnet_id— идентификатор подсети. -
assign_public_ip— публичный доступ к хостам кластера:trueилиfalse.
-
-
master_config.resources,segment_config.resources— конфигурация хостов-мастеров и хостов-сегментов кластера:resource_preset_id— класс хостов;disk_size— размер диска в байтах;disk_type_id— тип диска.
-
master_host_count— количество хостов-мастеров:1или2. -
segment_host_count— количество хостов-сегментов: от2до32. -
segment_in_host— количество сегментов на хост. Максимальное значение этого параметра зависит от класса хостов.Класс хостов-сегментов и количество сегментов на хост влияют на максимальный объем памяти, выделенный на каждый серверный процесс Greenplum®. Если выбран класс хостов с небольшим объемом оперативной памяти и указано большое число сегментов, то может возникнуть ошибка.
-
user_name— имя пользователя. -
user_password— пароль пользователя. -
network_id— идентификатор сети, в которой будет размещен кластер. -
security_group_ids— идентификаторы групп безопасности. -
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 с дисков кластера Greenplum® в холодное хранилище Yandex Object Storage. Так данные хранятся в служебном бакете в сжатом и зашифрованном виде. Это более экономичный способ хранения.Гибридное хранилище нельзя отключить после сохранения настроек кластера.
Примечание
Функциональность находится на стадии Preview и не тарифицируется.
-
master_host_group_idsиsegment_host_group_ids— (опционально) идентификаторы групп выделенных хостов для хостов-мастеров и хостов-сегментов.Группа выделенных хостов должна быть предварительно создана в сервисе Yandex Compute Cloud.
Эту настройку нельзя изменить после создания кластера.
При использовании выделенных хостов стоимость использования кластера складывается из цены за вычислительные ресурсы Yandex Compute Cloud и наценки Yandex MPP Analytics for PostgreSQL.
-
service_account_id— идентификатор сервисного аккаунта. -
logging— настройки передачи логов в сервис Yandex Cloud Logging:-
enabled— управляет механизмом передачи логов:trueилиfalse. Для работы параметров, отвечающих за передачу конкретных логов, передайте значениеtrue. -
command_center_enabled— передача логов командного центра:trueилиfalse. -
greenplum_enabled— передача логов Greenplum®:trueилиfalse. -
pooler_enabled— передача логов менеджера подключений:trueилиfalse. -
folder_id— идентификатор каталога, лог-группу которого нужно использовать. -
log_group_id— идентификатор лог-группы, в которую будут записываться логи.Укажите только одну из настроек:
folder_idлибоlog_group_id.
-
-
-
Воспользуйтесь вызовом ClusterService.Create и выполните запрос, например, с помощью 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.yandexcloud.kz:443 \ yandex.cloud.mdb.greenplum.v1.ClusterService.Create \ < body.json -
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
Создать копию кластера
Вы можете создать кластер Greenplum®, который будет обладать настройками созданного ранее кластера. Для этого конфигурация исходного кластера Greenplum® импортируется в Terraform. В результате вы можете либо создать идентичную копию, либо взять за основу импортированную конфигурацию и внести в нее изменения. Использовать импорт удобно, если исходный кластер Greenplum® обладает множеством настроек и нужно создать похожий на него кластер.
Чтобы создать копию кластера Greenplum®:
-
Если у вас еще нет Terraform, установите его.
-
Получите данные для аутентификации. Вы можете добавить их в переменные окружения или указать далее в файле с настройками провайдера.
-
Настройте и инициализируйте провайдер. Чтобы не создавать конфигурационный файл с настройками провайдера вручную, скачайте его
. -
Поместите конфигурационный файл в отдельную рабочую директорию и укажите значения параметров. Если данные для аутентификации не были добавлены в переменные окружения, укажите их в конфигурационном файле.
-
В той же рабочей директории разместите файл с расширением
.tfи содержимым:resource "yandex_mdb_greenplum_cluster" "old" { } -
Запишите идентификатор первоначального кластера Greenplum® в переменную окружения:
export GREENPLUM_CLUSTER_ID=<идентификатор_кластера>Идентификатор можно запросить вместе со списком кластеров в каталоге.
-
Импортируйте настройки первоначального кластера Greenplum® в конфигурацию Terraform:
terraform import yandex_mdb_greenplum_cluster.old ${GREENPLUM_CLUSTER_ID} -
Получите импортированную конфигурацию:
terraform show -
Скопируйте ее из терминала и вставьте в файл с расширением
.tf. -
Расположите файл в новой директории
imported-cluster. -
Измените скопированную конфигурацию так, чтобы из нее можно было создать новый кластер:
- Укажите новое имя кластера в строке
resourceи параметреname. - Удалите параметры
created_at,health,id,status,master_hostsиsegment_hosts. - Добавьте параметр
user_password. - Если в блоке
maintenance_windowуказано значение параметраtype = "ANYTIME", удалите параметрhour. - (Опционально) Внесите дополнительные изменения, если вам нужна не идентичная, а кастомизированная копия.
- Укажите новое имя кластера в строке
-
В директории
imported-clusterполучите данные для аутентификации. -
В этой же директории настройте и инициализируйте провайдер. Чтобы не создавать конфигурационный файл с настройками провайдера вручную, скачайте его
. -
Поместите конфигурационный файл в директорию
imported-clusterи укажите значения параметров. Если данные для аутентификации не были добавлены в переменные окружения, укажите их в конфигурационном файле. -
Проверьте корректность файлов конфигурации Terraform:
terraform validateЕсли в файлах конфигурации есть ошибки, Terraform на них укажет.
-
Создайте необходимую инфраструктуру:
-
Выполните команду для просмотра планируемых изменений:
terraform planЕсли конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.
-
Если вас устраивают планируемые изменения, внесите их:
-
Выполните команду:
terraform apply -
Подтвердите изменение ресурсов.
-
Дождитесь завершения операции.
-
В указанном каталоге будут созданы все требуемые ресурсы. Проверить появление ресурсов и их настройки можно в консоли управления
. -
Примеры
Создание кластера
Создайте кластер Greenplum® с тестовыми характеристиками:
-
С именем
gp-cluster. -
Версии
6.25. -
В окружении
PRODUCTION. -
В сети
default. -
С пользователем
user1. -
С паролем
user1user1. -
С хостами-мастерами и хостами-сегментами:
- Класса
s2.medium. - С хранилищем на локальных SSD-дисках (
local-ssd) объемом 100 ГБ.
- Класса
-
В зоне доступности
kz1-a, в подсетиb0rcctk2rvtr********. -
С публичным доступом к хостам.
-
В группе безопасности
enp6saqnq4ie********. -
С защитой от непреднамеренного удаления.
Выполните следующую команду:
yc managed-greenplum cluster create \
--name=gp-cluster \
--greenplum-version=6.25 \
--environment=PRODUCTION \
--network-name=default \
--user-name=user1 \
--user-password=user1user1 \
--master-config resource-id=s2.medium,`
`disk-size=100,`
`disk-type=local-ssd \
--segment-config resource-id=s2.medium,`
`disk-size=100,`
`disk-type=local-ssd \
--zone-id=kz1-a \
--subnet-id=b0rcctk2rvtr******** \
--assign-public-ip=true \
--security-group-ids=enp6saqnq4ie******** \
--deletion-protection
Greenplum® и Greenplum Database® являются зарегистрированными товарными знаками или товарными знаками Broadcom Inc в США и/или других странах.