Передача данных из эндпоинта-источника 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, чтобы создать потребителя по умолчанию. -
Настройки параллельного копирования:
-
Использовать шардированный снапшот — включите, чтобы ускорить трансфер с помощью шардированного снапшота.
Во время стадии копирования таблицы делятся на партиции. Копирование будет выполняться быстрее, если количество воркеров, умноженное на количество потоков внутри воркера, будет пропорционально количеству партиций.
-
Имя папки для копий — укажите имя папки, где во время стадии копирования будут храниться копии переносимых таблиц. Папка создается в корневой директории базы-источника и по умолчанию называется
data-transfer. Копии таблиц в папке содержат только метаданные, поэтому занимают незначительный объем памяти. Когда стадия копирования завершится, папка будет удалена.
Для управления параллельным копированием у сервисного аккаунта, указанного в настройках эндпоинта, должна быть роль
ydb.editor.Чтобы добиться максимальной скорости при параллельном копировании:
-
В параметрах эндпоинта-источника включите опцию Использовать шардированный снапшот.
-
В параметрах трансфера, в блоке Настройки параллельного копирования, задайте число воркеров и потоков в каждом воркере так, чтобы общее число потоков было равно числу партиций. Например, чтобы быстрее скопировать таблицу, разбитую на 6 партиций, можно задать 3 воркера и 2 потока внутри каждого воркера.
-
- Тип эндпоинта —
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 на облако с нужной базой данных значение характеристики Количество схемных операций в минуту и активируйте трансфер повторно.
См. полный список рекомендаций в разделе Решение проблем.