Yandex Data Streams

Управляемая шина потоков данных Yandex Cloud на базе YDB Topics: приём и чтение событий в реальном времени, совместимость с протоколами Apache Kafka и AWS Kinesis Data Streams, оплата по потреблению.

РазработчикYandex Data Streams

Что такое Yandex Data Streams

Yandex Data Streams — это управляемый сервис потоковой передачи данных от Yandex Cloud, построенный на технологии YDB Topics. Если коротко: это «конвейер», по которому события из ваших приложений, баз данных или устройств непрерывно поступают в системы аналитики, хранилища или другие сервисы — в реальном времени, а не пачками раз в сутки.

Главная особенность — полная совместимость с двумя популярными протоколами: Apache Kafka и AWS Kinesis Data Streams. Это означает, что вы можете использовать привычные библиотеки и инструменты, не переписывая код, а сама инфраструктура полностью управляется Yandex Cloud — вам не нужно думать о серверах, репликации или масштабировании.

Ключевые возможности

  • Приём и чтение данных в реальном времени — события становятся доступны потребителям за миллисекунды.
  • Совместимость с Kafka API и Kinesis API — интеграция с экосистемой Apache Kafka, Spark, Flink, Logstash и других инструментов без модификаций.
  • Автомасштабирование — пропускная способность сегментов автоматически подстраивается под нагрузку.
  • Хранение данных до 24 часов — можно перечитывать события и обрабатывать их повторно.
  • Оплата по потреблению — платите только за фактический объём записанных и прочитанных данных.
  • Высокая надёжность — данные реплицируются в трёх зонах доступности Yandex Cloud.
  • Шифрование и IAM-интеграция — безопасность из коробки, управление доступом через стандартные роли Yandex Cloud.
  • Мониторинг и метрики — встроенные дашборды в Yandex Monitoring.

Кому подойдёт

Сервис идеален для команд, которые строят data-платформы на Yandex Cloud или мигрируют с self-hosted Kafka. Основные сценарии:

  • Аналитика в реальном времени — передача кликов, просмотров, транзакций в ClickHouse или Yandex DataLens для мгновенных дашбордов.
  • Микросервисная архитектура — обмен событиями между сервисами вместо синхронных HTTP-вызовов.
  • IoT и телеметрия — сбор показаний с датчиков и оборудования.
  • Борьба с мошенничеством — потоковая проверка транзакций на аномалии.
  • Логирование и аудит — централизованный сбор логов с последующей отправкой в SIEM-системы.
  • CDC (Change Data Capture) — захват изменений из баз данных и синхронизация с аналитическими хранилищами.

Плюсы и минусы

Плюсы:

  • Нулевой оверхед на администрирование — не нужно настраивать ZooKeeper, брокеры и следить за их здоровьем.
  • Знакомая экосистема — если вы уже работали с Kafka или Kinesis, порог входа минимален.
  • Прозрачная тарификация — платите за объём, а не за количество инстансов.
  • Нативная интеграция с другими сервисами Yandex Cloud.

Минусы:

  • Привязанность к облаку — для локальной разработки потребуется эмулятор или отдельный инстанс Kafka.
  • Ограничение хранения (24 часа) — не подойдёт для долгосрочного хранения событий.
  • Меньше настроек, чем у self-hosted Kafka — продвинутые тюнинги недоступны.

Частые вопросы

Можно ли использовать существующие Kafka-приложения без изменений?

Да, если вы используете официальные клиенты Apache Kafka версии 2.8 и выше. Достаточно указать endpoint Yandex Data Streams и настроить аутентификацию через IAM-токен или статический ключ доступа.

Сколько стоит использование сервиса?

Тарификация зависит от объёма записанных и прочитанных данных. Например, запись стоит около 1200 ₽ за 1 млн сегментов по 4 КБ, чтение — дешевле. Точные цены лучше смотреть в актуальном прайсе Yandex Cloud, так как они периодически меняются.

Чем Yandex Data Streams отличается от обычного YDB Topics?

Data Streams — это полностью управляемый сервис поверх YDB Topics. Вы получаете готовые API-совместимые эндпоинты, интеграцию с IAM, мониторинг и автоматическое масштабирование — без необходимости самостоятельно разворачивать и обслуживать YDB-кластер.

Что произойдёт, если превысить лимиты записи?

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

Часто задаваемые вопросы

Сколько стоит Yandex Data Streams?

Тарифных планов и абонентской платы у сервиса нет — оплата только по потреблению, в одном из двух режимов. В режиме по выделенным ресурсам платят почасовую ставку за лимит пропускной способности сегмента и время хранения (для сегмента до 128 КБ/с — от 0,079 до 0,2371 ₽/ч, до 1 МБ/с — от 0,39 до 1,1 ₽/ч) плюс 1,39 ₽ за 1 млн единиц записываемых данных. В режиме On-demand — 23,47524 ₽ за 1 млн Request Units и 0,03260449 ₽ за ГБ×час хранения. Цены указаны для региона Россия с НДС.

Можно ли пользоваться сервисом бесплатно?

Полностью бесплатного тарифа нет, но каждый месяц часть объёма не тарифицируется: 744 часа обслуживания потока со скоростью записи до 128 КБ/с и хранением 1 час, до 2 млн единиц записываемых данных, первый 1 млн Request Units и первые 720 ГБ×час хранения. 744 часа — это примерно календарный месяц, поэтому один небольшой поток может укладываться в бесплатный объём. Неизрасходованный остаток в конце месяца обнуляется.

Работают ли клиенты Apache Kafka и AWS Kinesis?

Да, сервис совместим сразу с двумя протоколами — Apache Kafka и AWS Kinesis Data Streams, для каждого в документации есть отдельный раздел (Kafka API и HTTP API, совместимый с Amazon Kinesis Data Streams). Это основной аргумент при миграции: существующие приложения и SDK подключаются без переписывания клиентского кода. Данные можно отправлять и по обычному HTTP.

Чем режим по выделенным ресурсам отличается от On-demand?

В режиме по выделенным ресурсам вы заранее фиксируете лимит пропускной способности сегмента и срок хранения сообщений и платите за них почасовую ставку плюс за фактически записанные единицы данных. В режиме по фактическому использованию платят за выполненные операции записи и чтения в Request Units и за реально занятое хранилище. Режим устанавливается для каждого потока данных отдельно, а по умолчанию поток создаётся в режиме выделенных ресурсов.

Как считается единица записываемых данных?

Одна единица — это 40 КБ, и при расчёте количество округляется вверх до целого. В примере из документации сообщение размером 50 КБ считается как две единицы: 50 разделить на 40 даёт 1,25, что округляется до 2. Это важно для потоков с частыми мелкими сообщениями — каждое сообщение тарифицируется минимум как одна полная единица независимо от реального размера.

На чём построен сервис и где хранятся данные?

Сервис работает на базе YDB Topics — механизма топиков распределённой СУБД YDB. Данные автоматически реплицируются между несколькими географически распределёнными зонами доступности. Тарифы и ресурсы Yandex Cloud публикуются по регионам, для региона Россия цены приведены в рублях; валюта расчётов зависит от юридического лица, с которым заключён договор. Оператор сервиса — ООО «Яндекс.Облако».

Подходит ли Data Streams для сбора логов?

Да, это один из типовых сценариев, описанных вендором. Интеграция с системами поставки типа fluentd и Logstash позволяет без написания кода отправлять журналы работы приложений в системы хранения Yandex Cloud — Object Storage, Managed Service for ClickHouse и Yandex Database. Обрабатывать входящие данные по пути можно в Yandex Cloud Functions.

Можно ли передать один поток нескольким получателям?

Да, для этого используется Yandex Data Transfer: один поток данных (топик) может быть передан в несколько приёмников, причём с различными политиками хранения. Управлять самими потоками можно централизованно — из консоли управления или через API.

Альтернативы Yandex Data Streams