Yandex Cloud
Поиск
Связаться с намиПодключиться
  • Документация
  • Блог
  • Все сервисы
  • Статус работы сервисов
    • Популярные
    • Инфраструктура и сеть
    • Платформа данных
    • Контейнеры
    • Инструменты разработчика
    • Бессерверные вычисления
    • Безопасность
    • Мониторинг и управление ресурсами
    • Машинное обучение
    • Бизнес-инструменты
  • Все решения
    • По отраслям
    • По типу задач
    • Экономика платформы
    • Безопасность
    • Техническая поддержка
    • Каталог партнёров
    • Обучение и сертификация
    • Облако для стартапов
    • Облако для крупного бизнеса
    • Центр технологий для общества
    • Облако для интеграторов
    • Поддержка IT-бизнеса
    • Облако для фрилансеров
    • Обучение и сертификация
    • Блог
    • Документация
    • Контент-программа
    • Мероприятия и вебинары
    • Контакты, чаты и сообщества
    • Идеи
    • Истории успеха
    • Тарифы Yandex Cloud
    • Промоакции и free tier
    • Правила тарификации
  • Документация
  • Блог
Проект Яндекса
© 2025 ООО «Яндекс.Облако»
Yandex Data Transfer
  • Доступные трансферы
  • Начало работы
    • Все руководства
      • MySQL® в Apache Kafka®
      • MySQL® в YDS
      • PostgreSQL в Apache Kafka®
      • PostgreSQL в YDS
      • YDB в Apache Kafka®
      • YDB и поставка в YDS
  • Решение проблем
  • Управление доступом
  • Справочник Terraform
  • Метрики Monitoring
  • Аудитные логи Audit Trails
  • Публичные материалы
  • Обучающие курсы

В этой статье:

  • Необходимые платные ресурсы
  • Перед началом работы
  • Подготовьте базу данных источника Managed Service for YDB
  • Создайте поток данных приемника Data Streams
  • Подготовьте и активируйте трансфер
  • Проверьте работоспособность трансфера
  • Удалите созданные ресурсы
  1. Практические руководства
  2. Захват изменений данных и поставка в очередь
  3. YDB и поставка в YDS

Захват изменений данных из YDB и поставка в YDS

Статья создана
Yandex Cloud
Обновлена 17 марта 2025 г.
  • Необходимые платные ресурсы
  • Перед началом работы
  • Подготовьте базу данных источника Managed Service for YDB
  • Создайте поток данных приемника Data Streams
  • Подготовьте и активируйте трансфер
  • Проверьте работоспособность трансфера
  • Удалите созданные ресурсы

В поток Data Streams можно в реальном времени поставлять данные из базы данных Managed Service for YDB с помощью технологии Change Data Capture (CDC).

Примечание

В YDB CDC-режим поддерживается, начиная с версии 22.5 и выше.

Чтобы настроить CDC с использованием сервиса Data Transfer:

  1. Подготовьте базу данных источника Managed Service for YDB.
  2. Создайте поток данных приемника Data Streams.
  3. Подготовьте и активируйте трансфер.
  4. Проверьте работоспособность трансфера.

Если созданные ресурсы вам больше не нужны, удалите их.

Необходимые платные ресурсыНеобходимые платные ресурсы

В стоимость поддержки описываемого решения входят:

  • Плата за каждую базу данных Managed Service for YDB. Тарификация зависит от режима использования:

    • Для бессерверного режима — оплачиваются операции с данными и объем хранимых данных.
    • Для режима с выделенными инстансами — оплачивается использование вычислительных ресурсов, выделенных БД, и дискового пространства.

    Подробнее о тарифах Managed Service for YDB.

  • Плата за сервис Data Streams. Она зависит от режима тарификации:

    • По выделенным ресурсам — оплачивается количество единиц записываемых данных и ресурсы, выделенные для обслуживания потоков данных.
    • По фактическому использованию:
      • Если БД работает в бессерверном режиме, поток данных тарифицируется по правилам тарификации для бессерверного режима YDB.

      • Если БД работает в режиме с выделенными инстансами, поток данных отдельно не тарифицируется (оплачивается только БД, см. правила тарификации).

    Подробнее о тарифах Data Streams.

Перед началом работыПеред началом работы

Подготовьте инфраструктуру:

Вручную
Terraform
  1. Создайте базу данных источника Managed Service for YDB любой подходящей конфигурации.

  2. Если для источника вы выбрали режим БД Dedicated, создайте и настройте группу безопасности в сети, где находится БД.

  3. Создайте базу данных Managed Service for YDB любой подходящей конфигурации для потока данных приемника Data Streams.

  1. Если у вас еще нет Terraform, установите его.

  2. Получите данные для аутентификации. Вы можете добавить их в переменные окружения или указать далее в файле с настройками провайдера.

  3. Настройте и инициализируйте провайдер. Чтобы не создавать конфигурационный файл с настройками провайдера вручную, скачайте его.

  4. Поместите конфигурационный файл в отдельную рабочую директорию и укажите значения параметров. Если данные для аутентификации не были добавлены в переменные окружения, укажите их в конфигурационном файле.

  5. Скачайте в ту же рабочую директорию файл конфигурации data-transfer-ydb-yds.tf.

    В этом файле описаны:

    • сеть;
    • подсеть;
    • группа безопасности и правило, необходимое для подключения к базе данных Managed Service for YDB;
    • база данных источника Managed Service for YDB;
    • база данных Managed Service for YDB для потока данных приемника;
    • трансфер.
  6. Укажите в файле data-transfer-ydb-yds.tf переменные:

    • source_db_name — имя базы данных Managed Service for YDB источника;
    • target_db_name — имя базы данных Managed Service for YDB для потока данных приемника;
    • transfer_enabled — значение 0, чтобы не создавать трансфер до создания эндпоинтов.
  7. Проверьте корректность файлов конфигурации Terraform с помощью команды:

    terraform validate
    

    Если в файлах конфигурации есть ошибки, Terraform на них укажет.

  8. Создайте необходимую инфраструктуру:

    1. Выполните команду для просмотра планируемых изменений:

      terraform plan
      

      Если конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.

    2. Если вас устраивают планируемые изменения, внесите их:

      1. Выполните команду:

        terraform apply
        
      2. Подтвердите изменение ресурсов.

      3. Дождитесь завершения операции.

    В указанном каталоге будут созданы все требуемые ресурсы. Проверить появление ресурсов и их настройки можно в консоли управления.

Подготовьте базу данных источника Managed Service for YDBПодготовьте базу данных источника Managed Service for YDB

  1. Подготовьтесь к выполнению SQL-запросов в базе данных источника Managed Service for YDB:

    Консоль управления
    YDB CLI
    1. В консоли управления выберите каталог, в котором находится нужная база данных.
    2. В списке сервисов выберите Managed Service for YDB.
    3. Выберите базу из списка и перейдите на вкладку Навигация.
    4. Нажмите кнопку Новый SQL-запрос.
    1. Настройте подключение к базе данных Managed Service for YDB.

    2. Убедитесь, что можете выполнять запросы с помощью YDB CLI с выбранным режимом аутентификации. Например, для OAuth-токена:

      ydb \
        --endpoint <эндпоинт> \
        --database <имя_БД> \
        --yc-token-file <путь_к_OAuth-токену> \
        yql -s "SELECT 1;"
      

      Результат:

      ┌─────────┐
      | column0 |
      ├─────────┤
      | 1       |
      └─────────┘
      
  2. Создайте таблицу для тестовых данных:

    CREATE TABLE test
    (
        id Uint64,
        text Utf8,
        PRIMARY KEY (id)
    );
    

Создайте поток данных приемника Data StreamsСоздайте поток данных приемника Data Streams

Создайте поток данных приемника Data Streams.

Подготовьте и активируйте трансферПодготовьте и активируйте трансфер

  1. Создайте эндпоинт для источника YDB:

    • Настройки подключения:

      • База данных — выберите базу данных источника Managed Service for YDB из списка.
      • Идентификатор сервисного аккаунта — выберите или создайте сервисный аккаунт с ролью ydb.editor.
    • Список включенных путей:

      • Путь 1 — test.
  2. Создайте эндпоинт для приемника Yandex Data Streams:

    • Настройки подключения:

      • База данных — выберите базу данных Managed Service for YDB для потока данных приемника из списка.
      • Поток — укажите имя потока Data Streams.
      • Сервисный аккаунт — выберите или создайте сервисный аккаунт с ролью yds.editor.
    • Настройки сериализации — Auto.

  3. Создайте трансфер:

    Вручную
    Terraform
    1. Создайте трансфер типа Репликация, использующий созданные эндпоинты.
    2. Активируйте его.
    1. Укажите в файле data-transfer-ydb-yds.tf переменные:

      • source_endpoint_id — значение идентификатора эндпоинта для источника;
      • target_endpoint_id — значение идентификатора эндпоинта для приемника;
      • transfer_enabled – значение 1 для создания трансфера.
    2. Проверьте корректность файлов конфигурации Terraform с помощью команды:

      terraform validate
      

      Если в файлах конфигурации есть ошибки, Terraform на них укажет.

    3. Создайте необходимую инфраструктуру:

      1. Выполните команду для просмотра планируемых изменений:

        terraform plan
        

        Если конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.

      2. Если вас устраивают планируемые изменения, внесите их:

        1. Выполните команду:

          terraform apply
          
        2. Подтвердите изменение ресурсов.

        3. Дождитесь завершения операции.

      Трансфер активируется автоматически после создания.

Проверьте работоспособность трансфераПроверьте работоспособность трансфера

  1. Дождитесь перехода трансфера в статус Реплицируется.

  2. Вставьте тестовые данные в таблицу test в базе данных источника Managed Service for YDB:

    INSERT INTO test
    (
        id,
        text
    )
    VALUES
    (
        1,
        'text 1'
    ),
    (
        2,
        'text 2'
    ),
    (
        3,
        'text 3'
    );
    

Проверьте, что в поток данных Data Streams перенеслись данные из источника:

Консоль управления
AWS CLI
  1. В консоли управления выберите сервис Data Streams.
  2. Выберите поток-приемник из списка и перейдите в раздел  Просмотр данных.
  3. Убедитесь, что в сегменте shard-000000 появились сообщения, содержащие строки таблицы из источника. Чтобы рассмотреть сообщения подробнее, нажмите на значок .
  1. Установите AWS CLI.

  2. Настройте окружение для Data Streams.

  3. Прочитайте данные из потока с помощью:

    • AWS CLI.
    • AWS SDK.

Удалите созданные ресурсыУдалите созданные ресурсы

Примечание

Перед тем как удалить созданные ресурсы, деактивируйте трансфер.

Некоторые ресурсы платные. Чтобы за них не списывалась плата, удалите ресурсы, которые вы больше не будете использовать:

  1. Удалите трансфер.
  2. Удалите эндпоинты для источника и приемника.
  3. Если при создании эндпоинтов вы создавали сервисные аккаунты, удалите их.

Остальные ресурсы удалите в зависимости от способа их создания:

Вручную
Terraform
  1. Удалите базу данных источника Managed Service for YDB.
  2. Удалите базу данных Managed Service for YDB для потока данных приемника.
  1. В терминале перейдите в директорию с планом инфраструктуры.

    Важно

    Убедитесь, что в директории нет Terraform-манифестов с ресурсами, которые вы хотите сохранить. Terraform удаляет все ресурсы, которые были созданы с помощью манифестов в текущей директории.

  2. Удалите ресурсы:

    1. Выполните команду:

      terraform destroy
      
    2. Подтвердите удаление ресурсов и дождитесь завершения операции.

    Все ресурсы, которые были описаны в Terraform-манифестах, будут удалены.

Была ли статья полезна?

Предыдущая
YDB в Apache Kafka®
Следующая
Apache Kafka® в ClickHouse®
Проект Яндекса
© 2025 ООО «Яндекс.Облако»