Yandex Cloud
Поиск
Связаться с намиПодключиться
  • Истории успеха
  • Документация
  • Блог
  • Все сервисы
  • Статус работы сервисов
    • Популярные
    • Инфраструктура и сеть
    • Платформа данных
    • Контейнеры
    • Инструменты разработчика
    • Бессерверные вычисления
    • Безопасность
    • Мониторинг и управление ресурсами
    • ИИ для бизнеса
    • Бизнес-инструменты
  • Все решения
    • По отраслям
    • По типу задач
    • Экономика платформы
    • Безопасность
    • Техническая поддержка
    • Каталог партнёров
    • Обучение и сертификация
    • Облако для стартапов
    • Облако для крупного бизнеса
    • Центр технологий для общества
    • Облако для интеграторов
    • Поддержка IT-бизнеса
    • Облако для фрилансеров
    • Обучение и сертификация
    • Блог
    • Документация
    • Контент-программа
    • Мероприятия и вебинары
    • Контакты, чаты и сообщества
    • Идеи
    • Калькулятор цен
    • Тарифы
    • Промоакции и free tier
    • Правила тарификации
  • Истории успеха
  • Документация
  • Блог
Проект Яндекса
© 2025 ООО «Яндекс.Облако»
Yandex Managed Service for YDB
  • Начало работы
    • Обзор
    • Термины и определения
    • Режимы работы Serverless и Dedicated
    • Автоматическое масштабирование
    • Режимы работы OLTP или OLAP
    • Трансфер
    • Таблицы DynamoDB
    • Квоты и лимиты
  • Управление доступом
  • Метрики Monitoring
  • Аудитные логи Audit Trails
  • Вопросы и ответы
  • Публичные материалы
  • Обучающие курсы

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

  • Создание трансфера, читающего данные из другой базы данных Managed Service for YDB в Yandex Cloud
  • Подготовьте API-ключ для доступа к топику
  • Создайте секрет для доступа к топику в базе источнике
  • Создайте топик
  • Создайте таблицу
  • Создайте трансфер
  • Проверьте работу трансфера
  • Смотрите также
  1. Концепции
  2. Трансфер

Трансфер данных

Статья создана
Yandex Cloud
Обновлена 15 октября 2025 г.
  • Создание трансфера, читающего данные из другой базы данных Managed Service for YDB в Yandex Cloud
    • Подготовьте API-ключ для доступа к топику
    • Создайте секрет для доступа к топику в базе источнике
    • Создайте топик
    • Создайте таблицу
    • Создайте трансфер
    • Проверьте работу трансфера
  • Смотрите также

Трансфер в YDB — асинхронный механизм переноса данных из топика в таблицу. Создание экземпляра трансфера, его изменение и удаление осуществляется с использованием YQL. Трансфер запускается внутри базы данных и работает в фоновом режиме. Трансфер используется для решения задачи поставки данных из топика в таблицу.

В Managed Service for YDB трансфер доступен только в dedicated режиме работы базы данных. Пример создания трансфера, который переносит данные внутри одной базы данных описан в статье Трансфер — быстрый старт.

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

Для чтения топика из другой базы данных Managed Service for YDB в Yandex Cloud поддержана авторизация через Identity and Access Management.

Создание трансфера, читающего данные из другой базы данных Managed Service for YDB в Yandex CloudСоздание трансфера, читающего данные из другой базы данных Managed Service for YDB в Yandex Cloud

Подготовьте API-ключ для доступа к топикуПодготовьте API-ключ для доступа к топику

Примечание

Действия по подготовке API-ключа нужно выполнять в том облаке, где находится база данных с исходным топиком.

  1. Создать сервисный аккаунт, где находится топик.
  2. Назначить сервисному аккаунту роли:
    • Для чтения из потока данных: ydb.viewer.
    • Для автоматического добавления читателя, если применимо: ydb.admin.
  3. Создать API-ключ c областью действия yc.ydb.topics.manage.

Создайте секрет для доступа к топику в базе источникеСоздайте секрет для доступа к топику в базе источнике

В облаке, где будет создан трансфер, добавьте секрет:

CREATE OBJECT example_secret (TYPE SECRET) WITH value="ApiKey <your_api_key>";

Где:

  • <your_api_key> — API-ключ, созданный выше.

Создайте топикСоздайте топик

Создайте топик, из которого трансфер будет читать данные. Это можно сделать с помощью SQL-запроса:

CREATE TOPIC `transfer_recipe/source_topic`;

Топик transfer_recipe/source_topic позволяет передавать любые неструктурированные данные.

Создайте таблицуСоздайте таблицу

После создания топика следует создать таблицу, в которую будут поступать данные из топика source_topic. Это можно сделать с помощью SQL-запроса:

CREATE TABLE `transfer_recipe/target_table` (
  partition Uint32 NOT NULL,
  offset Uint64 NOT NULL,
  data String,
  PRIMARY KEY (partition, offset)
);

Таблица transfer_recipe/target_table имеет три столбца:

  • partition — идентификатор партиции топика, из которой получено сообщение;
  • offset — порядковый номер, идентифицирующий сообщение внутри партиции;
  • data — тело сообщения.

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

После создания топика и таблицы нужно добавить трансфер данных, который будет переносить сообщения из топика в таблицу. Это можно сделать с помощью SQL-запроса:

$transformation_lambda = ($msg) -> {
    return [
        <|
            partition: $msg._partition,
            offset: $msg._offset,
            data: $msg._data
        |>
    ];
};
CREATE TRANSFER `transfer_recipe/example_transfer`
  FROM `transfer_recipe/source_topic` TO `transfer_recipe/target_table`
  USING $transformation_lambda
WITH (
    CONNECTION_STRING = '<endpoint>',
    TOKEN_SECRET_NAME = 'example_secret'
)

Где:

  • <endpoint> — эндпоинт подключения к базе источнику, где находится топик. Имеет вид grpcs://lb.etn952fh3eo2jd2mrIhK.ydb.mdb.yandexcloud.net:2135/?database=/global/b1gvcqr959dbmi0e5c1B/etn77atb9o1epqUsCGoY. Эндпоинт отображается в консоли управления, на странице потока данных, на вкладке Обзор, в поле Эндпоинт.
  • example_secret — секрет, созданный выше.

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

Для проверки правильной работы трансфера можно записать в топик несколько сообщений.

Через некоторое время после того, как сообщения будут добавлены в топик source_topic, соответствующие записи появятся в таблице transfer_recipe/target_table. Чтобы убедиться в этом, выполните следующий SQL-запрос:

SELECT *
FROM `transfer_recipe/target_table`;

Смотрите такжеСмотрите также

  • Трансфер.
  • Трансфер — быстрый старт.
  • Трансфер — поставка access-логов NGINX в таблицу.
  • CREATE TRANSFER.
  • ALTER TRANSFER.
  • DROP TRANSFER.

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

Предыдущая
Режимы работы OLTP или OLAP
Следующая
Таблицы DynamoDB
Проект Яндекса
© 2025 ООО «Яндекс.Облако»