Копирование данных из Managed Service for OpenSearch в Yandex MPP Analytics for PostgreSQL с помощью Yandex Data Transfer
С помощью сервиса Data Transfer вы можете перенести данные из кластера-источника Managed Service for OpenSearch в кластер-приемник Greenplum® в сервисе Yandex MPP Analytics for PostgreSQL.
Чтобы перенести данные:
- Подготовьте облако к работе.
- Подготовьте инфраструктуру.
- Подготовьте тестовые данные.
- Подготовьте и активируйте трансфер.
- Проверьте работоспособность трансфера.
Если созданные ресурсы вам больше не нужны, удалите их.
Подготовьте облако к работе
Зарегистрируйтесь в Yandex Cloud и создайте платежный аккаунт:
- Перейдите в консоль управления
, затем войдите в Yandex Cloud или зарегистрируйтесь. - На странице Yandex Cloud Billing
убедитесь, что у вас подключен платежный аккаунт, и он находится в статусеACTIVEилиTRIAL_ACTIVE. Если платежного аккаунта нет, создайте его и привяжите к нему облако.
Если у вас есть активный платежный аккаунт, вы можете создать или выбрать каталог, в котором будет работать ваша инфраструктура, на странице облака
Подробнее об облаках и каталогах.
Необходимые платные ресурсы
В стоимость поддержки инфраструктуры входят:
- Плата за вычислительные ресурсы и объем хранилища кластера Managed Service for OpenSearch (см. тарифы Managed Service for OpenSearch).
- Плата за вычислительные ресурсы, объем хранилища и резервных копий кластера Greenplum® (см. тарифы Yandex MPP Analytics for PostgreSQL).
Подготовьте инфраструктуру
- Создайте кластер-источник Managed Service for OpenSearch любой подходящей конфигурации с хостами в публичном доступе.
- В той же зоне доступности создайте кластер-приемник Greenplum® любой подходящей конфигурации. При создании кластера:
- Включите публичный доступ для хостов.
- Включите опцию Доступ из Data Transfer.
- Получите SSL-сертификат для подключения к кластеру Managed Service for OpenSearch.
- Убедитесь, что группы безопасности кластеров Managed Service for OpenSearch и Greenplum® разрешают подключение через интернет.
-
Если у вас еще нет Terraform, установите его.
-
Получите данные для аутентификации. Вы можете добавить их в переменные окружения или указать далее в файле с настройками провайдера.
-
Настройте и инициализируйте провайдер. Чтобы не создавать конфигурационный файл с настройками провайдера вручную, скачайте его
. -
Поместите конфигурационный файл в отдельную рабочую директорию и укажите значения параметров. Если данные для аутентификации не были добавлены в переменные окружения, укажите их в конфигурационном файле.
-
Скачайте в ту же рабочую директорию файл конфигурации opensearch-to-greenplum.tf
.В этом файле описаны:
- сеть;
- подсеть;
- группа безопасности и правила, необходимые для подключения к кластерам OpenSearch и Greenplum®;
- кластер-источник Managed Service for OpenSearch с пользователем
admin; - кластер-приемник Greenplum® в сервисе Yandex MPP Analytics for PostgreSQL;
- трансфер.
-
Укажите в файле
opensearch-to-greenplum.tfзначения параметров:-
mos_cluster_name— имя кластера Managed Service for OpenSearch; -
mos_version— версия OpenSearch; -
mos_admin_password— пароль пользователяadminв кластере Managed Service for OpenSearch; -
mgp_cluster_name— имя кластера Greenplum®; -
mgp_username— имя пользователя в кластере Greenplum®; -
mgp_user_password— пароль пользователя в кластере Greenplum®; -
transfer_name— имя трансфера Data Transfer; -
profile_name— имя вашего профиля в YC CLI.Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.
-
-
Проверьте корректность файлов конфигурации Terraform с помощью команды:
terraform validateЕсли в файлах конфигурации есть ошибки, Terraform на них укажет.
-
Создайте необходимую инфраструктуру:
-
Выполните команду для просмотра планируемых изменений:
terraform planЕсли конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.
-
Если вас устраивают планируемые изменения, внесите их:
-
Выполните команду:
terraform apply -
Подтвердите изменение ресурсов.
-
Дождитесь завершения операции.
-
В указанном каталоге будут созданы все требуемые ресурсы. Проверить появление ресурсов и их настройки можно в консоли управления
. -
Подготовьте тестовые данные
-
В кластере-источнике создайте тестовый индекс
peopleи задайте его схему:curl --cacert ~/.opensearch/root.crt \ --user <имя_пользователя_в_кластере-источнике>:<пароль_пользователя_в_кластере-источнике> \ --header 'Content-Type: application/json' \ --request PUT 'https://<адрес_хоста_OpenSearch_с_ролью_DATA>:9200/people' && \ curl --cacert ~/.opensearch/root.crt \ --user <имя_пользователя_в_кластере-источнике>:<пароль_пользователя_в_кластере-источнике> \ --header 'Content-Type: application/json' \ --request PUT 'https://<адрес_хоста_OpenSearch_с_ролью_DATA>:9200/people/_mapping?pretty' -d' { "properties": { "name": {"type": "text"}, "age": {"type": "integer"} } } ' -
Наполните тестовый индекс данными:
curl --cacert ~/.opensearch/root.crt \ --user <имя_пользователя_в_кластере-источнике>:<пароль_пользователя_в_кластере-источнике> \ --header 'Content-Type: application/json' \ --request POST 'https://<адрес_хоста_OpenSearch_с_ролью_DATA>:9200/people/_doc/?pretty' -d' { "name": "Alice", "age": "30" } ' && \ curl --cacert ~/.opensearch/root.crt \ --user <имя_пользователя_в_кластере-источнике>:<пароль_пользователя_в_кластере-источнике> \ --header 'Content-Type: application/json' \ --request POST 'https://<адрес_хоста_OpenSearch_с_ролью_DATA>:9200/people/_doc/?pretty' -d' { "name": "Robert", "age": "32" } ' -
Проверьте, что данные сохранились в тестовом индексе:
curl --cacert ~/.opensearch/root.crt \ --user <имя_пользователя_в_кластере-приемнике>:<пароль_пользователя_в_кластере-приемнике> \ --header 'Content-Type: application/json' \ --request GET 'https://<адрес_хоста_OpenSearch_с_ролью_DATA>:9200/people/_search?pretty'
Подготовьте и активируйте трансфер
-
Создайте эндпоинт-источник для созданного ранее кластера Managed Service for OpenSearch с настройками:
- Тип базы данных —
OpenSearch. - Настройки подключения:
- Тип подключения —
Кластер Managed Service for OpenSearch. - Кластер Managed Service for OpenSearch — выберите кластер Managed Service for OpenSearch из списка.
- Пользователь —
admin. - Пароль — пароль пользователя
admin.
- Тип подключения —
- Тип базы данных —
-
Создайте эндпоинт-приемник для созданного ранее кластера Greenplum® с настройками:
- Тип базы данных —
Greenplum. - Параметры эндпоинта:
- Тип подключения — выберите
Кластер Managed Service for Greenplum. - Кластер Managed Service for Greenplum — выберите кластер Greenplum® из списка.
- База данных —
postgres. - Пользователь — введите имя пользователя в кластере Greenplum®.
- Пароль — введите пароль пользователя в кластере Greenplum®.
- Тип подключения — выберите
- Тип базы данных —
-
Создайте трансфер:
ВручнуюTerraform- Создайте трансфер типа Копирование, использующий созданные эндпоинты.
- Активируйте трансфер.
-
Укажите в файле
opensearch-to-greenplum.tfзначения параметров:source_endpoint_id— идентификатор эндпоинта-источника;target_endpoint_id— идентификатор эндпоинта-приемника;transfer_enabled—1для создания трансфера.
-
Проверьте корректность файлов конфигурации Terraform с помощью команды:
terraform validateЕсли в файлах конфигурации есть ошибки, Terraform на них укажет.
-
Создайте необходимую инфраструктуру:
-
Выполните команду для просмотра планируемых изменений:
terraform planЕсли конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.
-
Если вас устраивают планируемые изменения, внесите их:
-
Выполните команду:
terraform apply -
Подтвердите изменение ресурсов.
-
Дождитесь завершения операции.
-
Трансфер активируется автоматически после создания.
-
Проверьте работоспособность трансфера
-
Дождитесь перехода трансфера в статус Завершен.
-
Убедитесь, что в Yandex MPP Analytics for PostgreSQL перенеслись данные из кластера-источника Managed Service for OpenSearch:
-
Получите SSL-сертификат для подключения к кластеру Greenplum®.
-
Установите зависимости:
sudo apt update && sudo apt install --yes postgresql-client -
Подключитесь к базе данных в кластере Greenplum®.
-
Проверьте, что БД содержит таблицу
peopleс тестовыми данными:SELECT * FROM people;
-
Удалите созданные ресурсы
Некоторые ресурсы платные. Чтобы за них не списывалась плата, удалите ресурсы, которые вы больше не будете использовать:
-
В терминале перейдите в директорию с планом инфраструктуры.
Важно
Убедитесь, что в директории нет Terraform-манифестов с ресурсами, которые вы хотите сохранить. Terraform удаляет все ресурсы, которые были созданы с помощью манифестов в текущей директории.
-
Удалите ресурсы:
-
Выполните команду:
terraform destroy -
Подтвердите удаление ресурсов и дождитесь завершения операции.
Все ресурсы, которые были описаны в Terraform-манифестах, будут удалены.
-