Передача данных в эндпоинт-приемник Managed Service for YDB
С помощью сервиса Yandex Data Transfer вы можете переносить данные в базу Managed Service for YDB и реализовывать различные сценарии переноса, обработки и трансформации данных. Для реализации трансфера:
- Ознакомьтесь с возможными сценариями передачи данных.
- Настройте один из поддерживаемых источников данных.
- Подготовьте базу данных Managed Service for YDB к трансферу.
- Настройте эндпоинт-приемник в Yandex Data Transfer.
- Создайте и запустите трансфер.
- Выполняйте необходимые действия по работе с базой и контролируйте трансфер.
- При возникновении проблем, воспользуйтесь готовыми решениями по их устранению.
Сценарии передачи данных в Managed Service for YDB
-
Миграция — перенос данных из одного хранилища в другое. Часто это перенос базы из устаревших локальных баз в управляемые облачные.
-
Поставка данных — процесс доставки произвольных данных в целевые хранилища. Процесс поставки включает извлечение данных из очереди и их десериализацию с последующей трансформацией данных в формат целевого хранилища.
-
Загрузка данных в витрины — процесс трансфера подготовленных данных в хранилища с целью последующей визуализации.
Подробное описание возможных сценариев передачи данных в Yandex Data Transfer см. в разделе Практические руководства.
Настройка источника данных
Настройте один из поддерживаемых источников данных:
Полный список поддерживаемых источников и приемников в Yandex Data Transfer см. в разделе Доступные трансферы.
Подготовка базы данных приемника
- Создайте сервисный аккаунт с ролью
ydb.editor
. - Для базы данных в Dedicated-режиме создайте и настройте группу безопасности в сети, где находится БД.
Настройка эндпоинта-приемника Managed Service for YDB
При создании или изменении эндпоинта вы можете задать:
- Настройки подключения к базе данных Yandex Managed Service for YDB. Эти параметры обязательные.
- Дополнительные параметры.
Кластер Yandex Managed Service for YDB
Важно
Для создания или редактирования эндпоинта управляемой базы данных вам потребуется роль ydb.viewer
или примитивная роль viewer
, выданная на каталог кластера этой управляемой базы данных.
Подключение к БД с указанием идентификатора кластера в Yandex Cloud.
-
База данных — выберите из списка базу данных Managed Service for YDB.
-
Идентификатор сервисного аккаунта — выберите или создайте сервисный аккаунт с ролью
ydb.editor
, от имени которого сервис Data Transfer будет подключаться к базе. -
Группы безопасности — выберите облачную сеть для размещения эндпоинта и группы безопасности для сетевого трафика.
Это позволит применить к ВМ и кластерам в выбранной сети указанные правила групп безопасности без изменения настроек этих ВМ и кластеров. Подробнее см. в разделе Сеть в Yandex Data Transfer.
-
Политика очистки — выберите способ очистки данных в базе-приемнике перед переносом:
-
Drop
— полное удаление таблиц, участвующих в трансфере (вариант по умолчанию).Используйте эту опцию, чтобы при любой активации трансфера в базу-приемник всегда передавалась самая последняя версия схемы таблиц из источника.
-
Не очищать
— не очищать.Выберите эту опцию, если будет производиться только репликация без копирования данных.
-
- Тип эндпоинта —
ydb_target
.
-
name
— имя эндпоинта Managed Service for YDB. -
database
— путь к базе данных Managed Service for YDB, в которую переносятся данные.Вы можете посмотреть путь к БД в консоли управления
на странице с информацией о БД YDB.Пример пути к БД:
/ru-central1/b1gia87mbaom********/etnudu2n9ri3********
. -
cleanup_policy
— выберите способ очистки данных в базе-приемнике перед переносом:-
YDB_CLEANUP_POLICY_DROP
— полное удаление таблиц, участвующих в трансфере (вариант по умолчанию). Таблицы на приемнике будут удалены перед переносом новых таблиц.Используйте эту опцию, чтобы при любой активации трансфера в базу-приемник всегда передавалась самая последняя версия схемы таблиц из источника.
-
YDB_CLEANUP_POLICY_DISABLED
— не очищать.Выберите эту опцию, если будет производиться только репликация без копирования данных.
-
-
service_account_id
— сервисный аккаунт с рольюydb.editor
, от имени которого сервис Data Transfer будет подключаться к базе данных. -
security_groups
— группы безопасности для сетевого трафика.Правила групп безопасности применяются к трансферу. Они позволяют открыть сетевой доступ с ВМ трансфера к кластеру. Подробнее см. в разделе Сеть в Yandex Data Transfer.
Группы безопасности должны принадлежать той же сети, в которой размещен кластер.
Примечание
В Terraform сеть для групп безопасности задавать не нужно.
Пример структуры конфигурационного файла (приведены не все параметры):
resource "yandex_datatransfer_endpoint" "ydb-target" {
name = "<имя_эндпоинта_приемника>"
settings {
ydb_target {
database = "<путь_целевой_БД>"
cleanup_policy = "<политика_очистки_данных>"
service_account_id = "<идентификатор_сервисного_аккаунта>"
}
}
}
Подробнее см. в документации провайдера Terraform
Дополнительные настройки
-
Количество шардов — укажите нужное количество шардов
N
.Если настройка задана, в таблицы добавляется колонка
_shard_col
. Значения в ней вычисляются как остаток от деленияH/N
, гдеH
— результат хеш-функции от текущего времени, аN
— указанное настройкой количество шардов. -
Сжатие для группы колонок по умолчанию — задайте настройку
COMPRESSION
для группы колонок по умолчанию (FAMILY default). -
Поддиректория для размещения таблиц — укажите поддиректорию
для размещения таблиц. -
Ротация таблиц:
-
Единица измерения — час, день или месяц.
-
Размер таблицы — в выбранных единицах измерения.
По истечении временного интервала, равного выбранной единице измерения, будет удалена самая старая таблица базы и создана новая.
-
Количество таблиц — необходимое количество таблиц в базе-приемнике.
-
Разбивать по столбцу — по значениям какой колонки разбивать (партицировать) таблицу. Колонка должна иметь тип
время
.Подробнее о партицировании таблиц см. в документации Yandex Managed Service for YDB
.
Если используется эта настройка, в базе-приемнике создается указанное количество таблиц для данных за различные интервалы времени. Имя каждой таблицы выбирается автоматически по дате и времени начала интервала. В зависимости от значений в указанной колонке таблицы-источника, исходные строки распределяются по соответствующим таблицам базы-приемника.
-
-
Переименование таблиц — заполните, если необходимо переименовать таблицы базы-источника при переносе в базу-приемник.
-
Использовать OLAP-таблицы — выберите эту опцию, чтобы создавать колоночные таблицы (OLAP). По умолчанию используются строковые таблицы (OLTP).
-
path
— поддиректория для размещения таблиц. -
default_compression
— сжатие для группы колонок по умолчанию. -
is_table_column_oriented
— укажите значениеtrue
чтобы создавать колоночные таблицы (OLAP). По умолчанию используются строковые таблицы (OLTP).
После настройки источника и приемника данных создайте и запустите трансфер.
Решение проблем, возникающих при переносе данных
Известные проблемы, связанные с использованием эндпоинта Managed Service for YDB:
Прерывание трансфера с ошибкой
Трансфер типа Репликация или Копирование и репликация прерывается с ошибкой.
Текст ошибки:
/Ydb.PersQueue.V1.PersQueueService/AddReadRule failed: OVERLOADED
Трансфер прерывается из-за ограничения облачной квоты
Решение:
- Увеличьте в квотах Managed Service for YDB на облако с нужной базой данных значение характеристики Количество схемных операций в минуту и активируйте трансфер повторно.
См. полный список рекомендаций в разделе Решение проблем.