Миграция данных из Yandex Managed Service for MySQL® в Yandex MPP Analytics for PostgreSQL
Вы можете настроить перенос данных из базы Managed Service for MySQL® в базу Greenplum® в сервисе Yandex MPP Analytics for PostgreSQL с помощью Data Transfer. Для этого:
- Подготовьте тестовые данные.
- Создайте базу данных в кластере-приемнике.
- Подготовьте и активируйте трансфер.
- Проверьте работоспособность трансфера.
Если созданные ресурсы вам больше не нужны, удалите их.
Необходимые платные ресурсы
- Кластер Managed Service for MySQL®: выделенные хостам вычислительные ресурсы, объем хранилища и резервных копий (см. тарифы Managed Service for MySQL®).
- Кластер Greenplum®: выделенные хостам вычислительные ресурсы, объем хранилища и резервных копий (см. тарифы Yandex MPP Analytics for PostgreSQL).
- Публичные IP-адреса, если для хостов кластеров включен публичный доступ (см. тарифы Virtual Private Cloud).
- Каждый трансфер: использование вычислительных ресурсов и количество переданных строк данных (см. тарифы Data Transfer).
Перед началом работы
Подготовьте инфраструктуру:
-
Создайте кластер-источник Managed Service for MySQL® в любой зоне доступности, с хостами любой подходящей конфигурации в публичном доступе и следующими настройками:
- Имя БД —
mmy_db. - Имя пользователя —
mmy_user. - Пароль —
<пароль_источника>.
- Имя БД —
-
Выдайте административные привилегии
REPLICATION CLIENTиREPLICATION SLAVEпользователюmmy_user.Подробнее об административных привилегиях см. в описании настроек.
-
В той же зоне доступности создайте кластер-приемник Greenplum® любой подходящей конфигурации с хостами в публичном доступе и следующими настройками:
- Имя пользователя —
mgp_user. - Пароль —
<пароль_приемника>. - Доступ из Data Transfer — включен.
- Имя пользователя —
-
Убедитесь, что группы безопасности кластеров настроены правильно и допускают подключение к ним:
-
Если у вас еще нет Terraform, установите его.
-
Получите данные для аутентификации. Вы можете добавить их в переменные окружения или указать далее в файле с настройками провайдера.
-
Настройте и инициализируйте провайдер. Чтобы не создавать конфигурационный файл с настройками провайдера вручную, скачайте его
. -
Поместите конфигурационный файл в отдельную рабочую директорию и укажите значения параметров. Если данные для аутентификации не были добавлены в переменные окружения, укажите их в конфигурационном файле.
-
Скачайте в ту же рабочую директорию файл конфигурации mmy-to-mgp.tf
.В этом файле описаны:
- сети и подсети для размещения кластеров;
- группы безопасности для подключения к кластерам;
- кластер-источник Managed Service for MySQL®;
- кластер-приемник Greenplum® в сервисе Yandex MPP Analytics for PostgreSQL;
- эндпоинт для источника;
- трансфер.
-
Укажите в файле
mmy-to-mgp.tf:- Версии MySQL® и Greenplum®.
- Пароли пользователей MySQL® и Greenplum®.
-
Проверьте корректность файлов конфигурации Terraform с помощью команды:
terraform validateЕсли в файлах конфигурации есть ошибки, Terraform на них укажет.
-
Создайте необходимую инфраструктуру:
-
Выполните команду для просмотра планируемых изменений:
terraform planЕсли конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.
-
Если вас устраивают планируемые изменения, внесите их:
-
Выполните команду:
terraform apply -
Подтвердите изменение ресурсов.
-
Дождитесь завершения операции.
-
В указанном каталоге будут созданы все требуемые ресурсы. Проверить появление ресурсов и их настройки можно в консоли управления
. -
Подготовьте тестовые данные
-
Подключитесь к базе данных
mmy_dbв кластере-источнике Managed Service for MySQL®. -
Создайте простую таблицу
table1:CREATE TABLE table1 ( id int NOT NULL, name varchar (10), PRIMARY KEY (id) ); -
Наполните таблицу данными:
INSERT INTO table1 VALUES (1, 'Name1'), (2, 'Name2'), (3, 'Name3');
Создайте базу данных в кластере-приемнике
-
Подключитесь к служебной базе данных
postgresв кластере-приемнике Greenplum® от имени пользователяmgp_user. -
Создайте базу данных
mgp_db:CREATE DATABASE mgp_db;
Подготовьте и активируйте трансфер
-
Создайте эндпоинт-приемник типа
Greenplum®и укажите в нем параметры подключения к кластеру:- Тип подключения —
Кластер Managed Service for Greenplum. - Кластер Managed Service for Greenplum —
<имя_кластера_приемника_Greenplum®>из выпадающего списка. - База данных —
mgp_db. - Пользователь —
mgp_user. - Пароль —
<пароль_пользователя>.
- Тип подключения —
-
Создайте эндпоинт-источник и трансфер:
ВручнуюС помощью Terraform-
Создайте эндпоинт-источник типа
MySQL®и укажите в нем параметры подключения к кластеру:- Тип подключения —
Кластер Managed Service for MySQL. - Кластер Managed Service for MySQL —
<имя_кластера_источника_MySQL®>из выпадающего списка. - База данных —
mmy_db. - Пользователь —
mmy_user. - Пароль —
<пароль_пользователя>.
- Тип подключения —
-
Создайте трансфер типа Копирование и репликация, использующий созданные эндпоинты.
-
Активируйте трансфер и дождитесь его перехода в статус Реплицируется.
-
Укажите в файле
mmy-to-mgp.tfзначения параметров:target_endpoint_id— идентификатор эндпоинта для приемника.transfer_enabled— значение1для создания трансфера.
-
Проверьте корректность файлов конфигурации Terraform с помощью команды:
terraform validateЕсли в файлах конфигурации есть ошибки, Terraform на них укажет.
-
Создайте необходимую инфраструктуру:
-
Выполните команду для просмотра планируемых изменений:
terraform planЕсли конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.
-
Если вас устраивают планируемые изменения, внесите их:
-
Выполните команду:
terraform apply -
Подтвердите изменение ресурсов.
-
Дождитесь завершения операции.
-
-
-
Трансфер активируется автоматически. Дождитесь его перехода в статус Реплицируется.
-
Проверьте работоспособность трансфера
Чтобы убедиться в работоспособности трансфера, проверьте работу копирования и репликации.
Проверьте работу копирования
-
Подключитесь к базе данных
mgp_dbв кластере-приемнике Greenplum®. -
Выполните запрос:
SELECT * FROM mmy_db.table1;
Проверьте работу репликации
-
Подключитесь к базе данных
mmy_dbв кластере-источнике Managed Service for MySQL®. -
Добавьте данные в таблицу
table1:INSERT INTO table1 VALUES (4, 'Name4'); -
Убедитесь, что добавленная строка появилась в базе данных приемника:
-
Подключитесь к базе данных
mgp_dbв кластере-приемнике Greenplum®. -
Выполните запрос:
SELECT * FROM mmy_db.table1;
-
Удалите созданные ресурсы
Примечание
Перед тем как удалить созданные ресурсы, деактивируйте трансфер.
Некоторые ресурсы платные. Чтобы за них не списывалась плата, удалите ресурсы, которые вы больше не будете использовать:
-
В терминале перейдите в директорию с планом инфраструктуры.
Важно
Убедитесь, что в директории нет Terraform-манифестов с ресурсами, которые вы хотите сохранить. Terraform удаляет все ресурсы, которые были созданы с помощью манифестов в текущей директории.
-
Удалите ресурсы:
-
Выполните команду:
terraform destroy -
Подтвердите удаление ресурсов и дождитесь завершения операции.
Все ресурсы, которые были описаны в Terraform-манифестах, будут удалены.
-