Yandex Cloud
Поиск
Связаться с экспертомПопробовать бесплатно
  • Кейсы
  • Документация
  • Блог
  • Все сервисы
  • Статус работы сервисов
  • Marketplace
    • Популярные
    • Инфраструктура и сеть
    • Платформа данных
    • Искусственный интеллект
    • Безопасность
    • Инструменты DevOps
    • Бессерверные вычисления
    • Управление ресурсами
  • Все решения
    • По отраслям
    • По типу задач
    • Экономика платформы
    • Безопасность
    • Техническая поддержка
    • Каталог партнёров
    • Обучение и сертификация
    • Облако для стартапов
    • Облако для крупного бизнеса
    • Центр технологий для общества
    • Облако для интеграторов
    • Поддержка IT-бизнеса
    • Облако для фрилансеров
    • Обучение и сертификация
    • Блог
    • Документация
    • Контент-программа
    • Мероприятия и вебинары
    • Контакты, чаты и сообщества
    • Идеи
    • Калькулятор цен
    • Тарифы
    • Акции и free tier
  • Кейсы
  • Документация
  • Блог
Создавайте контент и получайте гранты!Готовы написать своё руководство? Участвуйте в контент-программе и получайте гранты на работу с облачными сервисами!
Подробнее о программе
Проект Яндекса
© 2026 ООО «Яндекс.Облако»
Yandex Managed Service for Apache Kafka®
  • Начало работы
    • Все руководства
    • Самостоятельное развертывание веб-интерфейса Apache Kafka®
    • Обновление кластера Managed Service for Apache Kafka® с ZooKeeper на KRaft
      • Поставка из PostgreSQL в Apache Kafka®
      • Поставка из Apache Kafka® в PostgreSQL
      • Поставка из YDB в Apache Kafka®
      • Поставка из Apache Kafka® в YDB
      • Поставка из Apache Kafka® в ClickHouse®
      • Поставка из Apache Kafka® в Data Streams
      • Поставка из Data Streams в Apache Kafka®
      • Поставка из Apache Kafka® в Greenplum®
      • Поставка из Apache Kafka® в Yandex StoreDoc
      • Поставка из MySQL® в Apache Kafka®
      • Поставка из Apache Kafka® в MySQL®
      • Поставка из Apache Kafka® в OpenSearch
    • Работа с топиками Apache Kafka® с помощью Yandex Data Processing
    • Отслеживание потери сообщений в топике Apache Kafka®
  • Управление доступом
  • Правила тарификации
  • Справочник Terraform
  • Метрики Yandex Monitoring
  • Аудитные логи Audit Trails
  • Публичные материалы
  • История изменений
  • Вопросы и ответы
  • Обучающие курсы

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

  • Необходимые платные ресурсы
  • Перед началом работы
  • Подготовьте тестовые данные
  • Подготовьте и активируйте трансфер
  • Проверьте работоспособность трансфера
  • Удалите созданные ресурсы
  1. Практические руководства
  2. Поставка данных с помощью Data Transfer
  3. Поставка из Apache Kafka® в Yandex StoreDoc

Поставка данных в Yandex StoreDoc с помощью Yandex Data Transfer

Статья создана
Yandex Cloud
Обновлена 19 июня 2026 г.
  • Необходимые платные ресурсы
  • Перед началом работы
  • Подготовьте тестовые данные
  • Подготовьте и активируйте трансфер
  • Проверьте работоспособность трансфера
  • Удалите созданные ресурсы

В кластер Yandex StoreDoc можно в реальном времени поставлять данные из топиков Apache Kafka®.

Чтобы запустить поставку данных:

  1. Подготовьте тестовые данные.
  2. Подготовьте и активируйте трансфер.
  3. Проверьте работоспособность трансфера.

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

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

  • Кластер Managed Service for Apache Kafka®: выделенные хостам вычислительные ресурсы, объем хранилища и резервных копий (тарифы Managed Service for Apache Kafka®).
  • Кластер Yandex StoreDoc: выделенные хостам вычислительные ресурсы, объем хранилища и резервных копий (тарифы Yandex StoreDoc).
  • Публичные IP-адреса, если для хостов кластеров включен публичный доступ (тарифы Virtual Private Cloud).

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

  1. Подготовьте инфраструктуру поставки данных:

    Вручную
    Terraform

    Примечание

    Публичный доступ к хостам кластера нужен, если вы планируете подключаться к кластеру через интернет. Этот вариант подключения более простой, и его рекомендуется использовать для прохождения руководства. К хостам без публичного доступа тоже можно подключиться, но только с виртуальных машин Yandex Cloud, расположенных в той же облачной сети, что и кластер.

    1. Создайте кластер-источник Managed Service for Apache Kafka® любой подходящей конфигурации. Для подключения к кластеру с локальной машины пользователя, а не из облачной сети Yandex Cloud, включите публичный доступ к кластеру при его создании.

    2. Создайте в кластере-источнике топик с именем sensors.

    3. Создайте в кластере-источнике пользователя с именем mkf-user и правами доступа ACCESS_ROLE_PRODUCER и ACCESS_ROLE_CONSUMER к созданному топику.

    4. Создайте кластер-приемник Yandex StoreDoc любой подходящей конфигурации со следующими настройками:

      • Имя базы данных — db1.

      • Имя пользователя — mmg-user.

      • В той же зоне доступности, что и кластер-источник.

      • Для подключения к кластеру с локальной машины пользователя, а не из облачной сети Yandex Cloud, включите публичный доступ к хостам кластера.

    5. Для подключения к кластерам с локальной машины пользователя настройте группы безопасности:

      • Managed Service for Apache Kafka®.
      • Yandex StoreDoc.
    1. Если у вас еще нет Terraform, установите его.

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

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

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

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

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

      • сеть;
      • подсеть;
      • группа безопасности и правила, необходимые для подключения к кластерам Managed Service for Apache Kafka® и Yandex StoreDoc;
      • кластер-источник Managed Service for Apache Kafka®;
      • топик Apache Kafka® с именем sensors;
      • пользователь Apache Kafka® mkf-user с правами доступа ACCESS_ROLE_PRODUCER, ACCESS_ROLE_CONSUMER к топику sensors;
      • кластер-приемник Yandex StoreDoc;
      • база данных Yandex StoreDoc db1;
      • пользователь Yandex StoreDoc mmg-user с правами доступа readWrite к базе данных db1;
      • эндпоинты для источника и приемника;
      • трансфер.
    6. Укажите в файле data-transfer-mkf-mmg.tf переменные:

      • source_kf_version — версия Apache Kafka® в кластере-источнике;
      • source_user_password — пароль пользователя mkf-user в кластере-источнике;
      • target_mg_version — версия Yandex StoreDoc в кластере-приемнике;
      • target_user_password — пароль пользователя mmg-user в кластере-приемнике;
      • transfer_enabled = 0 — отключает создание эндпоинтов и трансфера. Они будут созданы при подготовке трансфера.
    7. Проверьте корректность файлов конфигурации Terraform с помощью команды:

      terraform validate
      

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

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

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

        terraform plan
        

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

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

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

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

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

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

  2. Установите утилиты:

    • kafkacat — для чтения и записи данных в топики Apache Kafka®.

      sudo apt update && sudo apt install --yes kafkacat
      

      Убедитесь, что можете с ее помощью подключиться к кластеру-источнику Managed Service for Apache Kafka® через SSL.

    • jq — для потоковой обработки JSON-файлов.

      sudo apt update && sudo apt-get install --yes jq
      

Подготовьте тестовые данныеПодготовьте тестовые данные

Пусть в качестве сообщения в топик Apache Kafka® sensors кластера-источника поступают данные от сенсоров автомобиля в формате JSON.

Создайте локально файл sample.json с тестовыми данными:

sample.json
{
    "device_id": "iv9a94th6rzt********",
    "datetime": "2020-06-05 17:27:00",
    "latitude": 55.70329032,
    "longitude": 37.65472196,
    "altitude": 427.5,
    "speed": 0,
    "battery_voltage": 23.5,
    "cabin_temperature": 17,
    "fuel_level": null
}
{
    "device_id": "rhibbh3y08qm********",
    "datetime": "2020-06-06 09:49:54",
    "latitude": 55.71294467,
    "longitude": 37.66542005,
    "altitude": 429.13,
    "speed": 55.5,
    "battery_voltage": null,
    "cabin_temperature": 18,
    "fuel_level": 32
}
{
    "device_id": "iv9a94th6rzt********",
    "datetime": "2020-06-07 15:00:10",
    "latitude": 55.70985913,
    "longitude": 37.62141918,
    "altitude": 417.0,
    "speed": 15.7,
    "battery_voltage": 10.3,
    "cabin_temperature": 17,
    "fuel_level": null
}

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

Вручную
Terraform
  1. Создайте эндпоинт для источника Apache Kafka®:

    Параметры эндпоинта:

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

      • Тип подключения — Кластер Managed Service for Apache Kafka.

        • Кластер Managed Service for Apache Kafka — выберите кластер-источник из списка.

        • Аутентификация — SASL.

          • Имя пользователя — mkf-user.
          • Пароль — укажите пароль пользователя.
      • Полное имя топика — sensors.

    • Расширенные настройки → Правила конвертации:

      • Правила конвертации — json.
        • Схема данных — JSON-спецификация.

          Вставьте схему данных в формате JSON:

          json
          [
            {
              "name": "device_id",
              "type": "utf8",
              "key": true
            },
            {
              "name": "datetime",
              "type": "utf8"
            },
            {
              "name": "latitude",
              "type": "double"
            },
            {
              "name": "longitude",
              "type": "double"
            },
            {
              "name": "altitude",
              "type": "double"
            },
            {
              "name": "speed",
              "type": "double"
            },
            {
              "name": "battery_voltage",
              "type": "double"
            },
            {
              "name": "cabin_temperature",
              "type": "uint16"
            },
            {
              "name": "fuel_level",
              "type": "uint16"
            }
          ]
          
  2. Создайте эндпоинт для приемника MongoDB:

    Параметры эндпоинта:

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

      • Тип подключения — Кластер Yandex StoreDoc.

        • Кластер Yandex StoreDoc — выберите кластер-приемник из списка.
      • Источник аутентификации — db1.

      • Пользователь — mmg-user.

      • Пароль — укажите пароль пользователя.

    • База данных — db1.

  3. Создайте трансфер типа Репликация, использующий созданные эндпоинты.

  4. Активируйте трансфер и дождитесь его перехода в статус Реплицируется.

  1. Укажите в файле data-transfer-mkf-mmg.tf значение параметра transfer_enabled = 1.

  2. Проверьте корректность файлов конфигурации Terraform с помощью команды:

    terraform validate
    

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

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

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

      terraform plan
      

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

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

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

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

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

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

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

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

Убедитесь, что в кластер Yandex StoreDoc переносятся данные из топика кластера-источника Managed Service for Apache Kafka®:

  1. Отправьте данные из файла sample.json в топик sensors Managed Service for Apache Kafka® с помощью утилит jq и kafkacat:

    jq -rc . sample.json | kafkacat -P \
       -b <FQDN_хоста-брокера>:9091 \
       -t sensors \
       -k key \
       -X security.protocol=SASL_SSL \
       -X sasl.mechanisms=SCRAM-SHA-512 \
       -X sasl.username="mkf-user" \
       -X sasl.password="<пароль_пользователя_в_кластере-источнике>" \
       -X ssl.ca.location=/usr/local/share/ca-certificates/Yandex/YandexInternalRootCA.crt -Z
    

    Подробнее о настройке SSL-сертификата и работе с kafkacat смотрите в разделе Подключение к кластеру Apache Kafka® из приложений.

  2. Проверьте, что коллекция sensors кластера Yandex StoreDoc содержит отправленные данные:

    1. Подключитесь к кластеру Yandex StoreDoc.

    2. Получите содержимое коллекции sensors с помощью запроса:

      db.sensors.find()
      

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

Примечание

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

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

Вручную
Terraform
  1. Удалите трансфер.
  2. Удалите эндпоинты для источника и приемника.
  3. Удалите кластер Managed Service for Apache Kafka®.
  4. Удалите кластер Yandex StoreDoc.
  1. В терминале перейдите в директорию с планом инфраструктуры.

    Важно

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

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

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

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

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

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

Предыдущая
Поставка из Apache Kafka® в Greenplum®
Следующая
Поставка из MySQL® в Apache Kafka®
Создавайте контент и получайте гранты!Готовы написать своё руководство? Участвуйте в контент-программе и получайте гранты на работу с облачными сервисами!
Подробнее о программе
Проект Яндекса
© 2026 ООО «Яндекс.Облако»