Передача данных из эндпоинта-источника Greenplum®
С помощью сервиса Yandex Data Transfer вы можете переносить данные из базы Greenplum® и реализовывать различные сценарии переноса, обработки и трансформации данных. Для реализации трансфера:
- Ознакомьтесь с возможными сценариями передачи данных.
- Подготовьте базу данных Greenplum® к трансферу.
- Настройте эндпоинт-источник в Yandex Data Transfer.
- Настройте один из поддерживаемых приемников данных.
- Создайте и запустите трансфер.
- Выполняйте необходимые действия по работе с базой и контролируйте трансфер.
- При возникновении проблем, воспользуйтесь готовыми решениями по их устранению.
Сценарии передачи данных из Greenplum®
-
Миграция — перенос данных из одного хранилища в другое. Часто это перенос базы из устаревших локальных баз в управляемые облачные.
-
Загрузка данных в витрины — процесс трансфера подготовленных данных в хранилища с целью последующей визуализации.
Подробное описание возможных сценариев передачи данных в Yandex Data Transfer см. в разделе Практические руководства.
Подготовка базы данных Greenplum®
Примечание
Данные, хранящиеся в MATERIALIZED VIEW
, не переносятся. Для переноса данных из MATERIALIZED VIEW
создайте обыкновенный VIEW
, ссылающийся на переносимый MATERIALIZED VIEW
.
-
Создайте пользователя, от имени которого трансфер подключится к источнику. Для этого выполните команду:
CREATE ROLE <имя_пользователя> LOGIN ENCRYPTED PASSWORD '<пароль>';
-
Настройте кластер-источник так, чтобы созданный пользователь мог подключаться ко всем хостам-мастерам кластера.
-
Если предполагается использовать параллельное копирование, настройте кластер-источник так, чтобы созданный пользователь мог подключаться ко всем хостам-сегментам кластера в режиме прямого доступа (utility mode). Для этого убедитесь, что для кластера включена настройка "Доступ из Data Transfer".
-
Выдайте созданному пользователю привилегию на выполнение операции
SELECT
над таблицами, которые переносит трансфер, и привилегиюUSAGE
на схемы, в которых находятся эти таблицы.Привилегии должны быть выданы на таблицы целиком, доступ только к части столбцов таблицы не поддерживается.
Таблицы, для которых не выданы необходимые привилегии, недоступны для Data Transfer. Эти таблицы обрабатываются так же, как если бы они отсутствовали.
В этом примере привилегии выдаются на все таблицы в выбранной схеме:
GRANT SELECT ON ALL TABLES IN SCHEMA <название_схемы> TO <имя_пользователя>; GRANT USAGE ON SCHEMA <название_схемы> TO <имя_пользователя>;
-
Если вы не планируете использовать для подключения к внешнему кластеру сервис Cloud Interconnect или VPN, разрешите подключения к такому кластеру из интернета с IP-адресов, используемых сервисом Data Transfer
.Подробнее о настройке сети для работы с внешними ресурсами см. в концепции.
-
Создайте пользователя, от имени которого трансфер подключится к источнику. Для этого выполните команду:
CREATE ROLE <имя_пользователя> LOGIN ENCRYPTED PASSWORD '<пароль>';
-
Настройте кластер-источник так, чтобы созданный пользователь мог подключаться ко всем хостам-мастерам кластера.
-
Если предполагается использовать параллельное копирование, настройте кластер-источник так, чтобы созданный пользователь мог подключаться ко всем хостам-сегментам кластера в режиме прямого доступа (utility mode).
-
Выдайте созданному пользователю привилегию на выполнение операции
SELECT
над таблицами, которые переносит трансфер, и привилегиюUSAGE
на схемы, в которых находятся эти таблицы.Привилегии должны быть выданы на таблицы целиком, доступ только к части столбцов таблицы не поддерживается.
Таблицы, для которых не выданы необходимые привилегии, недоступны для Data Transfer. Эти таблицы обрабатываются так же, как если бы они отсутствовали.
В этом примере привилегии выдаются на все таблицы базы данных:
GRANT SELECT ON ALL TABLES IN SCHEMA <название_схемы> TO <имя_пользователя>; GRANT USAGE ON SCHEMA <название_схемы> TO <имя_пользователя>;
Data Transfer взаимодействует с Greenplum® по-разному в зависимости от настроек трансфера и содержимого кластера-источника. Подробная информация доступна в разделе настройка эндпоинта-источника Greenplum®.
Настройка эндпоинта-источника Greenplum®
При создании или изменении эндпоинта вы можете задать:
- Настройки подключения к кластеру Yandex Managed Service for Greenplum® или пользовательской инсталляции, в т. ч. на базе виртуальных машин Yandex Compute Cloud. Эти параметры обязательные.
- Дополнительные параметры.
Кластер Managed Service for Greenplum®
Важно
Для создания или редактирования эндпоинта управляемой базы данных вам потребуется роль managed-greenplum.viewer
или примитивная роль viewer
, выданная на каталог кластера этой управляемой базы данных.
Подключение к БД с указанием идентификатора кластера в Yandex Cloud.
-
Кластер Managed Service for Greenplum — укажите идентификатор кластера, к которому необходимо подключиться.
-
Пользователь — укажите имя пользователя, под которым сервис Data Transfer будет подключаться к базе данных.
-
Пароль — укажите пароль пользователя для доступа к базе данных.
-
База данных — укажите имя базы данных в выбранном кластере.
-
Группы безопасности — выберите облачную сеть для размещения эндпоинта и группы безопасности для сетевого трафика.
Это позволит применить к ВМ и кластерам в выбранной сети указанные правила групп безопасности без изменения настроек этих ВМ и кластеров. Подробнее см. в разделе Сеть в Yandex Data Transfer.
Пользовательская инсталляция
Подключение к БД с явным указанием сетевых адресов и портов.
-
Хост координатора — укажите IP-адрес или FQDN первичного хоста-мастера, к которому необходимо подключиться.
-
Порт координатора — укажите номер порта, который Data Transfer будет использовать для подключения к первичному хосту-мастеру.
-
Хост зеркала координатора — укажите IP-адрес или FQDN резервного хоста-мастера, к которому необходимо подключиться (оставьте поле пустым, если в вашем кластере только один хост-мастер).
-
Порт зеркала координатора — укажите номер порта, который сервис Data Transfer будет использовать для подключения к резервному хосту-мастеру (оставьте поле пустым, если в вашем кластере только один хост-мастер).
-
Сегменты кластера Greenplum — укажите данные для подключения к хостам-сегментам. Если их не указать, то адреса хостов-сегментов будут получены автоматически из служебной таблицы хоста-мастера.
-
Сертификат CA — загрузите файл сертификата или добавьте его содержимое в текстовом виде, если требуется шифрование передаваемых данных, например, для соответствия требованиям PCI DSS
. -
Идентификатор подсети — выберите или создайте подсеть в нужной зоне доступности. Трансфер будет использовать эту подсеть для доступа к кластеру.
Если значение в этом поле задано для обоих эндпоинтов, то обе подсети должны быть размещены в одной зоне доступности.
-
База данных — укажите имя базы данных в выбранном кластере.
-
Пользователь — укажите имя пользователя, под которым сервис Data Transfer будет подключаться к базе данных.
-
Пароль — укажите пароль пользователя для доступа к базе данных.
-
Группы безопасности — выберите облачную сеть для размещения эндпоинта и группы безопасности для сетевого трафика.
Это позволит применить к ВМ и кластерам в выбранной сети указанные правила групп безопасности без изменения настроек этих ВМ и кластеров. Подробнее см. в разделе Сеть в Yandex Data Transfer.
Фильтр таблиц
-
Список включённых таблиц — будут передаваться данные только из таблиц этого списка.
Если таблица партиционирована, в этом поле можно указать как всю таблицу, так и отдельные ее партиции.
Также убедитесь, что для включаемых в список таблиц выданы необходимые привилегии пользователю, от имени которого будет осуществляться трансфер.
Добавление новых таблиц при редактировании эндпоинта, использующегося в трансферах типа Копирование и репликация или Репликация в статусе Реплицируется, не приведет к загрузке истории данных по этим таблицам. Чтобы добавить таблицу с ее историческими данными, используйте поле Список объектов для переноса в настройках трансфера.
-
Список исключённых таблиц — данные таблиц из этого списка передаваться не будут.
Если таблица партиционирована, то для исключения таблицы из этого списка необходимо перечислить все ее партиции.
Списки включают имя схемы
(описание содержания, структуры и ограничений целостности базы данных) и имя таблицы. Для обоих списков поддерживаются выражения вида:<имя_схемы>.<имя_таблицы>
— полное имя таблицы;<имя_схемы>.*
— все таблицы в указанной схеме;<имя_таблицы>
— таблица в схеме по умолчанию.
Имена включенных и исключенных таблиц должны соответствовать правилам именования идентификаторов в Greenplum®. Двойные кавычки внутри имени таблицы не поддерживаются. Внешние кавычки используются только как разделители и будут удалены при обработке путей.
-
Консистентность снапшота — при включении Data Transfer выполнит дополнительные действия с источником для обеспечения консистентности снапшота.
-
Схема служебных объектов — схема, которая будет использоваться для размещения служебных объектов трансфера.
Имя схемы должно соответствовать правилам именования идентификаторов в Greenplum®. Двойные кавычки в имени схемы не поддерживаются.
Особенности работы с источником Greenplum
Data Transfer поддерживает только Greenplum® версии 6. Greenplum® версий 4 и 5 не поддерживается.
Сервис выполняет операции с кластером Greenplum® в транзакциях с уровнем изоляцииREAD COMMITTED
.
Data Transfer поддерживает работу с включенным параллельным копированием для источника Greenplum®.
Во время работы с включенным параллельным копированием Data Transfer удерживает открытую транзакцию на хосте-мастере Greenplum®. При прерывании этой транзакции трансфер завершится с ошибкой.
При отключенном параллельном копировании трансфер переносит данные объектов Greenplum® TABLE
, VIEW
, FOREIGN TABLE
, и EXTERNAL TABLE
. Данные из этих объектов трактуются как данные из обыкновенных таблиц и обрабатываются приемником соответственно. При включенном параллельном копировании трансфер переносит только таблицы (объекты TABLE
), причем таблицы с политикой распределенияDISTRIBUTED REPLICATED
не переносятся.
Консистентность снапшота
При запуске трансфера с отключенным параллельным копированием (по умолчанию) сервис выполняет копирование, взаимодействуя только с хостом-мастером кластера Greenplum®. Доступ к копируемым таблицам осуществляется в режиме блокировкиACCESS SHARE
. Консистентность снапшота обеспечивается средствами Greenplum®.
При запуске трансфера с включенным параллельным копированием сервис выполняет копирование, взаимодействуя как с хостом-мастером, так и в режиме прямого доступа (utility mode) с хостами-сегментами кластера Greenplum®. Доступ к копируемым таблицам осуществляется с блокировкой таблицы в режиме ACCESS SHARE
или SHARE
, зависящем от настройки "Обеспечивать строгую консистентность снапшота".
Трансферу с включенным параллельным копированием для обеспечения консистентности снапшота требуется обеспечить неизменность данных в переносимых таблицах. При блокировке в режиме ACCESS SHARE
(по умолчанию) неизменность данных не обеспечивается сервисом и должна быть обеспечена извне. При блокировке в режиме SHARE
неизменность данных в исходных таблицах обеспечивается механизмами Greenplum®.
Greenplum® и Greenplum Database® являются зарегистрированными товарными знаками или товарными знаками VMware, Inc в США и/или других странах.
Настройка приемника данных
Настройте один из поддерживаемых приемников данных:
Полный список поддерживаемых источников и приемников в Yandex Data Transfer см. в разделе Доступные трансферы.
После настройки источника и приемника данных создайте и запустите трансфер.