Передача данных из эндпоинта-источника Managed Service for YDB
С помощью сервиса Yandex Data Transfer вы можете переносить данные из базы Managed Service for YDB и реализовывать различные сценарии переноса, обработки и трансформации данных. Для реализации трансфера:
- Ознакомьтесь с возможными сценариями передачи данных.
- Подготовьте базу данных Managed Service for YDB к трансферу.
- Настройте эндпоинт-источник в Yandex Data Transfer.
- Настройте один из поддерживаемых приемников данных.
- Создайте и запустите трансфер.
- Выполняйте необходимые действия по работе с базой и контролируйте трансфер.
- При возникновении проблем, воспользуйтесь готовыми решениями по их устранению.
Сценарии передачи данных из Managed Service for YDB
-
Захват изменений данных — это процесс отслеживания изменений в базе данных и поставка этих изменений потребителям. Применяется для приложений, которые чувствительны к изменению данных в реальном времени.
-
Загрузка данных в витрины — процесс трансфера подготовленных данных в хранилища с целью последующей визуализации.
-
Загрузка данных в масштабируемое хранилище Object Storage позволяет удешевить хранение и облегчает обмен данных с контрагентами.
Подробное описание возможных сценариев передачи данных в Yandex Data Transfer см. в разделе Практические руководства.
Подготовка базы данных источника
Если вы выбрали режим базы данных Dedicated, создайте и настройте группу безопасности в сети, где находится БД.
Настройка эндпоинта-источника Managed Service for YDB
При создании или изменении эндпоинта вы можете задать:
- Настройки подключения к базе данных Yandex Managed Service for YDB. Эти параметры обязательные.
- Список путей для переноса (таблицы, директории).
Важно
Для создания или редактирования эндпоинта управляемой базы данных вам потребуется роль ydb.viewer
или примитивная роль viewer
, выданная на каталог кластера этой управляемой базы данных.
-
База данных — выберите из списка базу данных Managed Service for YDB.
-
Идентификатор сервисного аккаунта — выберите или создайте сервисный аккаунт с ролью
ydb.editor
, от имени которого сервис Data Transfer будет подключаться к базе. -
Группы безопасности — выберите облачную сеть для размещения эндпоинта и группы безопасности для сетевого трафика.
Это позволит применить к ВМ и кластерам в выбранной сети указанные правила групп безопасности без изменения настроек этих ВМ и кластеров. Подробнее см. в разделе Сеть в Yandex Data Transfer.
-
Список включенных путей — добавьте пути к таблицам или директориям Managed Service for YDB, которые необходимо перенести.
Имена таблиц и директорий должны соответствовать правилам именования идентификаторов в YDB. Экранирование двойных кавычек не требуется. В пути в качестве разделителя используется символ
/
. Подробнее читайте в документации YDB .Добавление новых путей при редактировании эндпоинта, использующегося в трансферах типа Копирование и репликация в статусе Реплицируется, не приведет к загрузке истории данных таблиц. Чтобы добавить таблицу с ее историческими данными, используйте поле Список объектов для переноса в параметрах трансфера.
Для трансферов типа Копирование можно не указывать пути, в таком случае будут перенесены все таблицы.
Для трансферов типа Репликация или Копирование и репликация обязательно указывать пути, в том числе и при репликации всех таблиц.
-
Название предсозданного changefeed — укажите название потока изменений, если он уже создан. В противном случае оставьте это поле пустым.
-
Название предсозданного consumer — укажите потребителя данных (consumer), которого вы создали для потока изменений. По умолчанию используется потребитель с именем
__data_transfer_consumer
.Примечание
Если указан потребитель данных, то для подключения трансфера к YDB сервисному аккаунту, указанному в настройках эндпоинта, достаточно роли
ydb.viewer
. Если потребитель данных не указан, сервисному аккаунту требуется рольydb.editor
, чтобы создать потребителя по умолчанию.
- Тип эндпоинта —
ydb_source
.
-
name
— имя эндпоинта Managed Service for YDB. -
database
— путь к базе данных Managed Service for YDB.Вы можете посмотреть путь к БД в консоли управления
на странице с информацией о БД YDB.Пример пути к БД:
/ru-central1/b1gia87mbaom********/etnudu2n9ri3********
. -
service_account_id
— сервисный аккаунт с рольюydb.editor
, от имени которого сервис Data Transfer будет подключаться к базе данных. -
paths
- список путей к таблицам или директориям Managed Service for YDB, которые необходимо перенести.Имена таблиц и директорий должны соответствовать правилам именования идентификаторов в YDB. Экранирование двойных кавычек не требуется. В пути в качестве разделителя используется символ
/
. Подробнее читайте в документации YDB .Для трансферов типа Репликация или Копирование и репликация обязательно указывать пути, в том числе и при репликации всех таблиц. Для трансферов типа Копирование можно не указывать пути, в таком случае будут перенесены все таблицы.
Добавление новых путей при редактировании эндпоинта, использующегося в трансферах типа Копирование и репликация в статусе Реплицируется, не приведет к загрузке истории данных таблиц. Чтобы добавить таблицу с ее историческими данными, используйте поле Список объектов для переноса в параметрах трансфера.
-
security_groups
— группы безопасности для сетевого трафика.Правила групп безопасности применяются к трансферу. Они позволяют открыть сетевой доступ с ВМ трансфера к кластеру. Подробнее см. в разделе Сеть в Yandex Data Transfer.
Группы безопасности должны принадлежать той же сети, в которой размещен кластер.
Примечание
В Terraform сеть для групп безопасности задавать не нужно.
-
changefeed_custom_name
— укажите здесь название потока изменений, если он уже создан. В противном случае не указывайте этот параметр.
Пример структуры конфигурационного файла (приведены не все параметры):
resource "yandex_datatransfer_endpoint" "ydb-source" {
name = "<имя_эндпоинта>"
settings {
ydb_source {
database = "<имя_БД_YDB>"
service_account_id = "<идентификатор_сервисного_аккаунта>"
paths = ["<список_путей_к_переносимым_объектам_YDB>"]
changefeed_custom_name = "<имя_потока_изменений>"
}
}
}
Подробнее см. в документации провайдера Terraform
Настройка приемника данных
Настройте один из поддерживаемых приемников данных:
Полный список поддерживаемых источников и приемников в Yandex Data Transfer см. в разделе Доступные трансферы.
После настройки источника и приемника данных создайте и запустите трансфер.
Решение проблем, возникающих при переносе данных
Известные проблемы, связанные с использованием эндпоинта Managed Service for YDB:
Прерывание трансфера с ошибкой
Трансфер типа Репликация или Копирование и репликация прерывается с ошибкой.
Текст ошибки:
/Ydb.PersQueue.V1.PersQueueService/AddReadRule failed: OVERLOADED
Трансфер прерывается из-за ограничения облачной квоты
Решение:
- Увеличьте в квотах Managed Service for YDB на облако с нужной базой данных значение характеристики Количество схемных операций в минуту и активируйте трансфер повторно.
См. полный список рекомендаций в разделе Решение проблем.