Миграция данных Greenplum/MatrixDB

MatrixGate 4.3 вводит режим миграции, позволяющий осуществлять высокоскоростную передачу данных из других кластеров Greenplum 5, Greenplum 6 или MatrixDB в текущий кластер MatrixDB.

1. Принцип высокоскоростной миграции

Высокоскоростная миграция позволяет обходить мастер-узел. Данные читаются напрямую с сегментов исходного кластера, передаются через mxgate и отправляются непосредственно на сегменты целевого кластера. Это исключает мастер-узел как узкое место. Количество сегментов в исходном и целевом кластерах может различаться. transfer

2. Способы использования

2.1 Миграция всей таблицы

Миграция всей таблицы переносит все данные из исходной таблицы. Пример использования:

mxgate --source transfer \
         --src-host 172.31.41.7 \
         --src-port 5432 \
         --src-db postgres \
         --src-user ec2-user \
         --src-password abc \
         --src-schema public \
         --src-table trans_ao \
         --compress "gzip" \
         --port-base 9129 \
         --local-ip 172.31.33.128 \
         --db-database ttt \
         --target public.trans_ao \
         --format text \
         --time-format raw \
         --use-auto-increment=false

Параметры:

Параметр Описание
--source Точка входа функции; должно быть установлено в значение 'transfer'
--src-host IP-адрес мастер-узла исходного кластера
--src-port Номер порта мастер-узла исходного кластера
--src-user Имя пользователя для подключения к исходной базе данных (рекомендуется суперпользователь)
--src-password Пароль подключения
--src-schema Имя схемы исходной таблицы
--src-table Имя исходной таблицы
--compress Метод сжатия передаваемых данных с хостов сегментов источника:
Пустая строка "": без сжатия, передача в виде обычного текста
gzip: использование сжатия gzip; требует установки команды gzip на хостах сегментов источника
lz4: использование сжатия lz4; требует установки команды lz4 на хостах сегментов источника
Рекомендуемый порядок: lz4 > gzip > no compression
--port-base Диапазон портов, используемых при передаче, начиная с 9129
--local-ip IP-адрес, доступный для исходного кластера; должен быть доступен из источника
--db-database Имя целевой базы данных, в которой находится целевая таблица
--target Имя целевой таблицы в формате <schema>.<table>; если схема не указана, используется значение по умолчанию public
--format text или csv. Используйте csv только при наличии в данных сложных строк (например, символы новой строки, кавычки, разделители). В остальных случаях предпочтительнее text
--time-format В режиме передачи должно быть установлено значение raw
--use-auto-increment По умолчанию mxgate пропускает столбцы с автоинкрементом serial в целевой таблице. Используйте этот параметр, чтобы отключить это поведение

2.2 Экспорт в файл

Еще один вариант использования режима миграции — быстрый экспорт данных в файлы:

mxgate --source transfer \
         --src-host 172.31.41.7 \
         --src-port 5432 \
         --src-db postgres \
         --src-user ec2-user \
         --src-schema public \
         --src-table trans_ao_1 \
         --compress "lz4" \
         --port-base 9129 \
         --local-ip 172.31.33.128 \
         --save-to-dir /tmp/receive/ \
         --db-database ttt \
         --transform nil \
         --writer nil \
         --target trans_ao

Используйте параметр --save-to-dir для указания пути хранения файлов.

Примечание: Даже при экспорте в файлы необходимо указать --db-database и --target для определения целевой базы данных и таблицы, при этом целевая база данных и таблица должны существовать.

2.3 Фильтрованная миграция

Фильтрованная миграция позволяет указать SQL-запрос через параметр --src-sql для фильтрации данных, подлежащих синхронизации. Этот режим поддерживается как для миграции таблица-таблица, так и для миграции таблица-файл:

mxgate --source transfer \
         --src-host 172.31.41.7 \
         --src-port 5432 \
         --src-db postgres \
         --src-user ec2-user \
         --src-sql "select * from demo where c1 = 'xxxx'" \
         --compress "lz4" \
         --port-base 9129 \
         --local-ip 172.31.33.128 \
         --save-to-dir /tmp/receive/ \
         --db-database ttt \
         --transform nil \
         --writer nil \
         --target trans_ao

Для подробной информации о инструментах реляционной миграции см. mxbackup и mxrestore.