Создание Greenplum®-кластера
Кластер Managed Service for Greenplum® состоит из хостов-мастеров, которые принимают запросы от клиента, и хостов-сегментов, которые обеспечивают обработку и хранение данных.
Доступные типы диска зависят от выбранного класса хостов.
Подробнее см. в разделе Взаимосвязь ресурсов сервиса.
Как создать кластер Managed Service for Greenplum®
-
В консоли управления выберите каталог, в котором нужно создать кластер баз данных.
-
Выберите сервис Managed Service for Greenplum®.
-
Нажмите кнопку Создать кластер.
-
Введите имя кластера. Оно должно быть уникальным в рамках каталога.
-
(опционально) Введите описание кластера.
-
Выберите окружение, в котором нужно создать кластер (после создания кластера окружение изменить невозможно):
PRODUCTION
— для стабильных версий ваших приложений.PRESTABLE
— для тестирования, в том числе самого сервиса Yandex Managed Service for Greenplum®. В Prestable-окружении раньше появляются новые функциональные возможности, улучшения и исправления ошибок. При этом не все обновления обеспечивают обратную совместимость.
-
Выберите версию Greenplum®.
-
(Опционально) Выберите группы выделенных хостов, на которых будет размещен кластер.
Внимание
Эту настройку нельзя изменить после создания кластера. Использование выделенных хостов существенно влияет на тарификацию кластера.
-
В блоке Сетевые настройки:
-
Выберите облачную сеть для размещения кластера.
-
В параметре Группы безопасности укажите группу безопасности, которая содержит правила, разрешающие любой исходящий и входящий трафик по любому протоколу с любых IP-адресов.
Внимание
Для корректной работы кластера Managed Service for Greenplum® необходимо, чтобы хотя бы в одной из его групп безопасности были правила, разрешающие любой входящий и исходящий трафик с любых IP-адресов.
-
Выберите зону доступности и подсеть для размещения кластера. Чтобы создать новую подсеть, нажмите кнопку Создать новую рядом с нужной зоной доступности.
-
Выберите опцию Публичный доступ, чтобы подключаться к кластеру из интернета.
-
-
Укажите настройки пользователя-администратора. Это специальный пользователь, который необходим для управления кластером и не может быть удален. Подробнее в разделе Пользователи и роли в Managed Service for Greenplum®.
-
Имя пользователя — может содержать латинские буквы, цифры, дефис и нижнее подчеркивание, но не может начинаться с дефиса. Длина от 1 до 32 символов.
Примечание
Имена
admin
,gpadmin
,mdb_admin
,mdb_replication
,monitor
,none
,postgres
,public
,repl
зарезервированы для собственных нужд Managed Service for Greenplum®. Создавать пользователей с этими именами нельзя. -
Пароль — длина от 8 до 128 символов.
-
-
При необходимости задайте дополнительные настройки кластера:
-
Начало резервного копирования (UTC) — время по UTC в 24-часовом формате, в которое начинается резервное копирование кластера. Если время не задано, резервное копирование начинается в 22:00 UTC.
-
Окно обслуживания — настройки времени технического обслуживания:
- Чтобы разрешить проведение технического обслуживания в любое время, выберите пункт произвольное (по умолчанию).
- Чтобы указать предпочтительное время начала обслуживания, выберите пункт по расписанию и укажите нужные день недели и час дня по UTC. Например, можно выбрать время, когда кластер наименее загружен.
Операции по техническому обслуживанию проводятся для включенных и выключенных кластеров. Они могут включать в себя: обновление СУБД, применение патчей и так далее.
-
Доступ из DataLens — опция разрешает анализировать данные из кластера в сервисе Yandex DataLens.
-
Доступ из Data Transfer — включите эту опцию, чтобы разрешить доступ к кластеру из сервиса Yandex Data Transfer в Serverless-режиме.
Это позволит через специальную сеть подключаться к Yandex Data Transfer, запущенному в Kubernetes. В результате будут быстрее выполняться, например, запуск и деактивация трансфера.
-
Защита от удаления — управляет защитой кластера от непреднамеренного удаления пользователем.
Включенная защита от удаления кластера не помешает подключиться вручную и удалить содержимое базы данных.
-
-
При необходимости задайте настройки СУБД уровня кластера.
-
Укажите параметры хостов-мастеров на вкладке Master. Рекомендуемую конфигурацию см. в разделе Расчет конфигурации кластера.
-
Класс хоста — определяет технические характеристики виртуальных машин, на которых будут развернуты хосты-мастеры кластера.
-
В блоке Хранилище:
-
Выберите тип диска.
От выбранного типа зависит, с каким шагом можно будет изменить размер хранилища:
- хранилище на нереплицируемых SSD-дисках — с шагом 93 ГБ;
- хранилище на локальных SSD-дисках:
- для платформы Intel Cascade Lake — с шагом 100 ГБ;
- для платформы Intel Ice Lake — с шагом 368 ГБ;
- хранилища на сетевых SSD- и HDD-дисках — с шагом 1 ГБ.
-
-
-
Укажите параметры хостов-сегментов на вкладке Segment. Рекомендуемую конфигурацию см. в разделе Расчет конфигурации кластера.
- Количество хостов-сегментов.
- Количество сегментов на хост. Максимальное значение этого параметра зависит от класса хостов.
- Класс хоста — определяет технические характеристики виртуальных машин, на которых будут развернуты хосты-сегменты кластера.
- В блоке Хранилище:
-
Выберите тип диска.
От выбранного типа зависит, с каким шагом можно будет изменить размер хранилища:
- хранилище на нереплицируемых SSD-дисках — с шагом 93 ГБ;
- хранилище на локальных SSD-дисках:
- для платформы Intel Cascade Lake — с шагом 100 ГБ;
- для платформы Intel Ice Lake — с шагом 368 ГБ;
- хранилища на сетевых SSD- и HDD-дисках — с шагом 1 ГБ.
-
-
Нажмите кнопку Создать.
Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.
По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name
или --folder-id
.
Чтобы создать кластер:
-
Проверьте, есть ли в каталоге подсети для хостов кластера:
yc vpc subnet list
Если ни одной подсети в каталоге нет, создайте нужные подсети в сервисе VPC.
-
Посмотрите описание команды CLI для создания кластера:
yc managed-greenplum cluster create --help
-
Укажите параметры кластера в команде создания (в примере приведены не все доступные параметры):
yc managed-greenplum cluster create <имя кластера> \ --greenplum-version=<версия Greenplum®: 6.19> \ --environment=<окружение: PRESTABLE или PRODUCTION> \ --network-name=<имя сети> \ --user-name=<имя пользователя> \ --user-password=<пароль пользователя> \ --master-config resource-id=<класс хоста>,` `disk-size=<объем хранилища, ГБ>,` `disk-type=<тип диска> \ --segment-config resource-id=<класс хоста>,` `disk-size=<объем хранилища, ГБ>,` `disk-type=<тип диска> \ --zone-id=<зона доступности> \ --subnet-id=<идентификатор подсети> \ --assign-public-ip=<доступ к хостам через публичный IP-адрес: true или false> \ --security-group-ids=<список идентификаторов групп безопасности> \ --deletion-protection=<защита от удаления кластера: true или false>
Примечание
Имя кластера должно быть уникальным в каталоге. Оно может содержать латинские буквы, цифры, дефис и нижнее подчеркивание. Максимальная длина имени 63 символа.
Где:
-
--greenplum-version
— версия Greenplum®. -
--environment
— окружение:PRODUCTION
— для стабильных версий ваших приложений.PRESTABLE
— для тестирования, в том числе самого сервиса Greenplum®. В Prestable-окружении раньше появляются новая функциональность, улучшения и исправления ошибок. При этом не все обновления обеспечивают обратную совместимость.
-
--network-name
— имя сети. -
--user-name
— имя пользователя. Может содержать латинские буквы, цифры, дефис и нижнее подчеркивание, но должно начинаться с буквы, цифры или нижнего подчеркивания. Длина от 1 до 32 символов. -
--user-password
— пароль. Длина от 8 до 128 символов. -
--master-config
и--segment-config
— конфигурация хостов-мастеров и хостов-сегментов:resource-id
— класс хоста.disk-size
— объем хранилища в гигабайтах.disk-type
— тип диска:network-hdd
;network-ssd
;local-ssd
;network-ssd-nonreplicated
.
-
--zone-id
— зона доступности. -
--subnet-id
— идентификатор подсети. Необходимо указывать, если в выбранной зоне доступности создано 2 и больше подсетей. -
--assign-public-ip
— флаг, который указывается, если хостам требуется публичный IP-адрес. -
--security-group-ids
— список идентификаторов групп безопасности. -
--deletion-protection
— защита от удаления кластера.Включенная защита от удаления кластера не помешает подключиться вручную и удалить содержимое базы данных.
-
-
Чтобы задать время начала резервного копирования, передайте нужное значение в формате
HH:MM:SS
в параметре--backup-window-start
:yc managed-greenplum cluster create <имя кластера> \ ... --backup-window-start=<время начала резервного копирования>
-
Чтобы создать кластер, размещенный на группах выделенных хостов, укажите через запятую их идентификаторы в параметре
--host-group-ids
:yc managed-greenplum cluster create <имя кластера> \ ... --host-group-ids=<идентификаторы групп выделенных хостов>
Внимание
Эту настройку нельзя изменить после создания кластера. Использование выделенных хостов существенно влияет на тарификацию кластера.
-
Чтобы настроить время технического обслуживания (в т. ч. для выключенных кластеров), передайте нужное значение в параметре
--maintenance-window
при создании кластера:yc managed-greenplum cluster create <имя кластера> \ ... --maintenance-window type=<тип технического обслуживания: anytime или weekly>,` `day=<день недели для типа weekly>,` `hour=<час дня для типа weekly>
Где:
type
— тип технического обслуживания:anytime
— в любое время.weekly
— по расписанию.
day
— день недели для типаweekly
в форматеDDD
. Например,MON
.hour
— час дня по UTC для типаweekly
в форматеHH
. Например,21
.
-
Чтобы разрешить доступ из Yandex DataLens или Yandex Data Transfer, передайте значение
true
в соответствующих параметрах при создании кластера:yc managed-greenplum cluster create <имя кластера> \ ... --datalens-access=<доступ из Yandex DataLens: true или false> \ --datatransfer-access=<доступ из Yandex Data Transfer: true или false>
Terraform позволяет быстро создать облачную инфраструктуру в Yandex Cloud и управлять ею с помощью файлов конфигураций. В файлах конфигураций хранится описание инфраструктуры на языке HCL (HashiCorp Configuration Language). Terraform и его провайдеры распространяются под лицензией Mozilla Public License.
Подробную информацию о ресурсах провайдера смотрите в документации на сайте Terraform или в зеркале.
При изменении файлов конфигураций Terraform автоматически определяет, какая часть вашей конфигурации уже развернута, что следует добавить или удалить.
Чтобы создать кластер:
-
В командной строке перейдите в каталог, в котором будут расположены конфигурационные файлы Terraform с планом инфраструктуры. Если такой директории нет — создайте ее.
-
Если у вас еще нет Terraform, установите его и создайте конфигурационный файл с настройками провайдера.
-
Создайте конфигурационный файл с описанием облачной сети и подсетей.
Кластер размещается в облачной сети. Если подходящая сеть у вас уже есть, описывать ее повторно не нужно.
Хосты кластера размещаются в подсетях выбранной облачной сети. Если подходящие подсети у вас уже есть, описывать их повторно не нужно.
Пример структуры конфигурационного файла, в котором описывается облачная сеть с одной подсетью:
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 = <получение публичного IP-адреса: true или false> deletion_protection = <защита от удаления кластера: true или false> version = "<версия Greenplum®>" master_host_count = <количество хостов-мастеров: 1 или 2> segment_host_count = <количество хостов-сегментов: от 2 до 32> 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 = ["<список идентификаторов групп безопасности>"] }
Включенная защита от удаления кластера не помешает подключиться вручную и удалить содержимое базы данных.
Более подробную информацию о ресурсах, которые вы можете создать с помощью Terraform, см. в документации провайдера.
-
Проверьте корректность файлов конфигурации Terraform:
-
В командной строке перейдите в каталог, в котором расположены актуальные конфигурационные файлы Terraform с планом инфраструктуры.
-
Выполните команду:
terraform validate
Если в файлах конфигурации есть ошибки, Terraform на них укажет.
-
-
Создайте кластер:
-
Выполните команду для просмотра планируемых изменений:
terraform plan
Если конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.
-
Если вас устраивают планируемые изменения, внесите их:
-
Выполните команду:
terraform apply
-
Подтвердите изменение ресурсов.
-
Дождитесь завершения операции.
-
В указанном каталоге будут созданы все требуемые ресурсы. Проверить появление ресурсов и их настройки можно в консоли управления.
-
Воспользуйтесь методом API create и передайте в запросе:
- Идентификатор каталога, в котором должен быть размещен кластер, в параметре
folderId
. - Имя кластера в параметре
name
. - Окружение кластера в параметре
environment
. - Версию Greenplum® в параметре
config.version
. - Имя пользователя в параметре
userName
. - Пароль пользователя в параметре
userPassword
. - Идентификатор сети в параметре
networkId
.- Идентификаторы групп безопасности в параметре
securityGroupIds
.
- Идентификаторы групп безопасности в параметре
- Конфигурацию хостов-мастеров в параметре
masterConfig
. - Конфигурацию хостов-сегментов в параметре
segmentConfig
.
При необходимости передайте дополнительные настройки кластера:
-
Настройки публичного доступа в параметре
assignPublicIp
. -
Настройки окна резервного копирования в параметре
config.backupWindowStart
. -
Настройки доступа из Yandex DataLens в параметре
config.access.dataLens
. -
Настройки доступа из Yandex Data Transfer в параметре
config.access.dataTransfer
. -
Настройки времени технического обслуживания (в т. ч. для выключенных кластеров) в параметре
maintenanceWindow
. -
Настройки СУБД в параметре
configSpec.greenplumConfig_<версия>
. -
Настройки защиты от удаления кластера в параметре
deletionProtection
.Включенная защита от удаления кластера не помешает подключиться вручную и удалить содержимое базы данных.
Примеры
Создание кластера
Создайте кластер Managed Service for Greenplum® с тестовыми характеристиками:
-
С именем
gp-cluster
. -
Версии
6.19
. -
В окружении
PRODUCTION
. -
В сети
default
. -
С пользователем
user1
. -
С паролем
user1user1
. -
С хостами-мастерами и хостами-сегментами:
- Класса
s2.medium
. - С хранилищем на локальных SSD-дисках (
local-ssd
) объемом 100 ГБ.
- Класса
-
В зоне доступности
ru-central1-a
, в подсетиb0rcctk2rvtr8efcch64
. -
С публичным доступом к хостам.
-
В группе безопасности
enp6saqnq4ie244g67sb
. -
С защитой от случайного удаления кластера.
Выполните следующую команду:
yc managed-greenplum cluster create \
--name=gp-cluster \
--sqlserver-version=6.19 \
--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=ru-central1-a \
--subnet-id=b0rcctk2rvtr8efcch64 \
--assign-public-ip=true \
--security-group-ids=enp6saqnq4ie244g67sb \
--deletion-protection=true
Greenplum® и Greenplum Database® являются зарегистрированными товарными знаками или товарными знаками VMware, Inc в США и/или других странах.