Поставка данных из очереди Data Streams в Managed Service for YDB с помощью Yandex Data Transfer
С помощью сервиса Data Transfer можно поставлять данные из потока Data Streams в базу данных Managed Service for YDB.
Чтобы перенести данные:
- Подготовьте поток данных Data Streams.
- Подготовьте и активируйте трансфер.
- Проверьте работоспособность трансфера.
Если созданные ресурсы вам больше не нужны, удалите их.
Перед началом работы
Подготовьте инфраструктуру поставки данных:
-
Создайте базу данных Managed Service for YDB любой подходящей конфигурации для потока Data Streams.
-
Создайте базу данных приемника Managed Service for YDB любой подходящей конфигурации.
-
Если у вас еще нет Terraform, установите его.
-
Получите данные для аутентификации. Вы можете добавить их в переменные окружения или указать далее в файле с настройками провайдера.
-
Настройте и инициализируйте провайдер. Чтобы не создавать конфигурационный файл с настройками провайдера вручную, скачайте его
. -
Поместите конфигурационный файл в отдельную рабочую директорию и укажите значения параметров. Если данные для аутентификации не были добавлены в переменные окружения, укажите их в конфигурационном файле.
-
Скачайте в ту же рабочую директорию файл конфигурации yds-to-ydb.tf
.В этом файле описаны:
- сеть;
- подсеть;
- группа безопасности и правила, необходимые для подключения к базе данных Managed Service for YDB.
- базы данных Managed Service for YDB;
- трансфер.
-
Укажите в файле
yds-to-ydb.tf
значения параметров:source_db_name
— имя базы данных Managed Service for YDB для потока Data Streams;target_db_name
— имя базы данных приемника Managed Service for YDB;transfer_enabled
— значение0
, чтобы не создавать трансфер до создания эндпоинтов вручную.
-
Проверьте корректность файлов конфигурации Terraform с помощью команды:
terraform validate
Если в файлах конфигурации есть ошибки, Terraform на них укажет.
-
Создайте необходимую инфраструктуру:
-
Выполните команду для просмотра планируемых изменений:
terraform plan
Если конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.
-
Если вас устраивают планируемые изменения, внесите их:
-
Выполните команду:
terraform apply
-
Подтвердите изменение ресурсов.
-
Дождитесь завершения операции.
-
В указанном каталоге будут созданы все требуемые ресурсы. Проверить появление ресурсов и их настройки можно в консоли управления
. -
Создайте поток данных Data Streams
Создайте поток данных Data Streams.
Подготовьте и активируйте трансфер
-
Создайте эндпоинт для источника Data Streams.
-
Тип базы данных —
Yandex Data Streams
. -
Параметры эндпоинта:
-
Настройки подключения:
- База данных — выберите из списка базу данных Managed Service for YDB для потока Data Streams.
- Поток — укажите имя потока Data Streams.
- Сервисный аккаунт — выберите или создайте сервисный аккаунт с ролью
yds.editor
.
-
Расширенные настройки:
-
Правила конвертации —
JSON
. -
Схема данных —
JSON-спецификация
.Заполните схему данных:
Схема данных
[ { "name": "device_id", "type": "string" }, { "name": "datetime", "type": "datetime" }, { "name": "latitude", "type": "double" }, { "name": "longitude", "type": "double" }, { "name": "altitude", "type": "double" }, { "name": "speed", "type": "double" }, { "name": "battery_voltage", "type": "any" }, { "name": "cabin_temperature", "type": "double" }, { "name": "fuel_level", "type": "any" } ]
-
-
-
-
Создайте эндпоинт для приемника:
-
Тип базы данных —
YDB
. -
Параметры эндпоинта:
-
Настройки подключения:
- База данных — выберите базу данных приемника Managed Service for YDB из списка.
- Идентификатор сервисного аккаунта — выберите или создайте сервисный аккаунт с ролью
ydb.editor
.
-
-
-
Создайте трансфер:
ВручнуюTerraform- Создайте трансфер типа Репликация, использующий созданные эндпоинты.
- Активируйте его.
-
Укажите в файле
yds-to-ydb.tf
значения переменных:source_endpoint_id
— идентификатор эндпоинта для источника;target_endpoint_id
— идентификатор эндпоинта для приемника;transfer_enabled
– значение1
для создания трансфера.
-
Проверьте корректность файлов конфигурации Terraform с помощью команды:
terraform validate
Если в файлах конфигурации есть ошибки, Terraform на них укажет.
-
Создайте необходимую инфраструктуру:
-
Выполните команду для просмотра планируемых изменений:
terraform plan
Если конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.
-
Если вас устраивают планируемые изменения, внесите их:
-
Выполните команду:
terraform apply
-
Подтвердите изменение ресурсов.
-
Дождитесь завершения операции.
-
Трансфер активируется автоматически.
-
Проверьте работоспособность трансфера
-
Дождитесь перехода трансфера в статус Реплицируется.
-
Отправьте в поток Data Streams тестовые данные:
{ "device_id":"iv9a94th6rzt********", "datetime":"2020-06-05T17:27:00", "latitude":"55.70329032", "longitude":"37.65472196", "altitude":"427.5", "speed":"0", "battery_voltage":"23.5", "cabin_temperature":"17", "fuel_level":null }
-
Убедитесь, что данные перенеслись в базу данных приемника:
Консоль управленияYDB CLI- В консоли управления
выберите каталог, в котором база данных. - В списке сервисов выберите Managed Service for YDB.
- Выберите базу из списка.
- Перейдите на вкладку Навигация.
- Проверьте, что в таблицу
<название_потока>
добавились тестовые данные.
-
Проверьте, что в таблицу
<название_потока>
добавились тестовые данные:ydb table query execute \ --query "SELECT * \ FROM <название_потока>"
- В консоли управления
Удалите созданные ресурсы
Примечание
Перед тем как удалить созданные ресурсы, деактивируйте трансфер.
Некоторые ресурсы платные. Чтобы за них не списывалась плата, удалите ресурсы, которые вы больше не будете использовать:
- Удалите трансфер.
- Удалите эндпоинты для источника и приемника.
- Если вы создавали сервисные аккаунты, удалите их.
Остальные ресурсы удалите в зависимости от способа их создания:
-
В терминале перейдите в директорию с планом инфраструктуры.
-
Выполните команду:
terraform destroy
-
Подтвердите удаление ресурсов.