Передача данных в эндпоинт-приемник Managed Service for YDB
Важно
Этот документ не применим для пользователей Yandex Cloud в регионе Казахстан. См. полный перечень поддерживаемых эндпоинтов в Data Transfer.
С помощью сервиса 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). -
is_schema_migration_disabled— установите значениеtrue, чтобы не изменять схему данных на приемнике при изменении ее на источнике. По умолчанию при изменении схемы на источнике трансфер будет автоматически применять изменения схемы в приемнике: создавать новые таблицы, добавлять новые колонки, добавлять новые перечисляемые значения и перечисляемые типы. По умолчанию не применяются такие изменения, как удаление таблиц или колонок.
После настройки источника и приемника данных создайте и запустите трансфер.
Решение проблем, возникающих при переносе данных
Известные проблемы, связанные с использованием эндпоинта Managed Service for YDB:
Прерывание трансфера с ошибкой
Трансфер типа Репликация или Копирование и репликация прерывается с ошибкой.
Текст ошибки:
/Ydb.PersQueue.V1.PersQueueService/AddReadRule failed: OVERLOADED
Трансфер прерывается из-за ограничения облачной квоты
Решение:
- Увеличьте в квотах Managed Service for YDB на облако с нужной базой данных значение характеристики Количество схемных операций в минуту и активируйте трансфер повторно.
См. полный список рекомендаций в разделе Решение проблем.