Миграция данных из Yandex Managed Service for PostgreSQL в Yandex Managed Service for OpenSearch с помощью Yandex Data Transfer
Вы можете перенести базу данных из Yandex Managed Service for PostgreSQL в Yandex Managed Service for OpenSearch с помощью сервиса Yandex Data Transfer. Для этого:
Если созданные ресурсы вам больше не нужны, удалите их.
Необходимые платные ресурсы
- Кластер Managed Service for PostgreSQL: выделенные хостам вычислительные ресурсы, объем хранилища и резервных копий (см. тарифы Managed Service for PostgreSQL).
- Кластер Managed Service for OpenSearch: использование вычислительных ресурсов и объем хранилища (см. тарифы Managed Service for OpenSearch).
- Публичные IP-адреса, если для хостов кластеров включен публичный доступ (см. тарифы Virtual Private Cloud).
Перед началом работы
Подготовьте инфраструктуру:
-
Создайте кластер-источник Managed Service for PostgreSQL любой подходящей конфигурации с хостами в публичном доступе и следующими настройками:
- Имя БД —
db1. - Имя пользователя —
pg-user. - Пароль —
<пароль_источника>.
- Имя БД —
-
Создайте кластер-приемник Managed Service for OpenSearch любой подходящей конфигурации с хостами в публичном доступе.
-
Получите SSL-сертификат для подключения к кластеру-приемнику Managed Service for OpenSearch.
-
Настройте группы безопасности для подключения к кластеру-источнику Managed Service for PostgreSQL и кластеру-приемнику Managed Service for OpenSearch.
-
Если у вас еще нет Terraform, установите его.
-
Получите данные для аутентификации. Вы можете добавить их в переменные окружения или указать далее в файле с настройками провайдера.
-
Настройте и инициализируйте провайдер. Чтобы не создавать конфигурационный файл с настройками провайдера вручную, скачайте его
. -
Поместите конфигурационный файл в отдельную рабочую директорию и укажите значения параметров. Если данные для аутентификации не были добавлены в переменные окружения, укажите их в конфигурационном файле.
-
Скачайте в ту же рабочую директорию файл конфигурации postgresql-to-opensearch.tf
.В этом файле описаны:
- сеть;
- подсеть;
- группа безопасности для подключения к кластерам;
- кластер-источник Managed Service for PostgreSQL;
- кластер-приемник Managed Service for OpenSearch;
- эндпоинт для источника;
- трансфер.
-
Укажите в файле
postgresql-to-opensearch.tfзначения переменных:-
folder_id— идентификатор каталога; -
pg_password— пароль пользователя PostgreSQL; -
mos_version— версия OpenSearch; -
mos_password— пароль пользователя OpenSearch; -
profile_name— имя вашего профиля в CLI.Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.
-
-
Проверьте корректность файлов конфигурации Terraform с помощью команды:
terraform validateЕсли в файлах конфигурации есть ошибки, Terraform на них укажет.
-
Создайте необходимую инфраструктуру:
-
Выполните команду для просмотра планируемых изменений:
terraform planЕсли конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.
-
Если вас устраивают планируемые изменения, внесите их:
-
Выполните команду:
terraform apply -
Подтвердите изменение ресурсов.
-
Дождитесь завершения операции.
-
В указанном каталоге будут созданы все требуемые ресурсы. Проверить появление ресурсов и их настройки можно в консоли управления
. -
Подготовьте трансфер
-
Подключитесь к кластеру Managed Service for PostgreSQL, создайте в базе данных
db1таблицуx_tabи заполните ее данными:CREATE TABLE x_tab ( id NUMERIC PRIMARY KEY, name CHAR(5) ); INSERT INTO x_tab (id, name) VALUES (40, 'User1'), (41, 'User2'), (42, 'User3'), (43, 'User4'), (44, 'User5'); -
Создайте эндпоинт для приемника со следующими настройками:
- Тип подключения —
Кластер Managed Service for OpenSearch. - Кластер Managed Service for OpenSearch — выберите кластер Managed Service for OpenSearch из списка.
- Пользователь —
admin. - Пароль —
<пароль_пользователя>.
- Тип подключения —
-
Создайте эндпоинт для источника и трансфер:
ВручнуюTerraform-
Создайте эндпоинт для источника типа
PostgreSQLи укажите в нем параметры подключения к кластеру:- Тип инсталляции —
Кластер Managed Service for PostgreSQL. - Кластер Managed Service for PostgreSQL —
<имя_кластера-источника_PostgreSQL>из выпадающего списка. - База данных —
db1. - Пользователь —
pg-user. - Пароль —
<пароль_пользователя>.
- Тип инсталляции —
-
Создайте трансфер типа Копирование, использующий созданные эндпоинты.
-
Укажите в файле
postgresql-to-opensearch.tfзначения переменных:target_endpoint_id— значение идентификатора эндпоинта для приемника;transfer_enabled– значение1для создания трансфера.
-
Проверьте корректность файлов конфигурации Terraform с помощью команды:
terraform validateЕсли в файлах конфигурации есть ошибки, Terraform на них укажет.
-
Создайте необходимую инфраструктуру:
-
Выполните команду для просмотра планируемых изменений:
terraform planЕсли конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.
-
Если вас устраивают планируемые изменения, внесите их:
-
Выполните команду:
terraform apply -
Подтвердите изменение ресурсов.
-
Дождитесь завершения операции.
-
Трансфер активируется автоматически после создания.
-
-
Проверьте работоспособность трансфера
-
Дождитесь перехода трансфера в статус Завершен.
-
Подключитесь к кластеру-приемнику с помощью OpenSearch Dashboards.
-
Выберите общий тенант
Global. -
Создайте новый шаблон индекса с именем
public.x_tab:- Откройте панель управления, нажав на значок
. - В разделе Management выберите Stack Management.
- Перейдите в раздел Index Patterns и нажмите кнопку Create index pattern.
- В поле Index pattern name укажите
public.x_tabи нажмите кнопку Next step. - Нажмите кнопку Create index pattern.
- Откройте панель управления, нажав на значок
-
Откройте панель управления, нажав на значок
. -
В разделе OpenSearch Dashboards выберите Discover.
-
В открывшемся дашборде должны появиться данные из базы данных Managed Service for PostgreSQL.
Удалите созданные ресурсы
Чтобы снизить потребление ресурсов, которые вам не нужны, удалите их:
-
Остальные ресурсы удалите в зависимости от способа их создания:
ВручнуюTerraform-
В терминале перейдите в директорию с планом инфраструктуры.
Важно
Убедитесь, что в директории нет Terraform-манифестов с ресурсами, которые вы хотите сохранить. Terraform удаляет все ресурсы, которые были созданы с помощью манифестов в текущей директории.
-
Удалите ресурсы:
-
Выполните команду:
terraform destroy -
Подтвердите удаление ресурсов и дождитесь завершения операции.
Все ресурсы, которые были описаны в Terraform-манифестах, будут удалены.
-
-