Yandex Cloud
  • Сервисы
  • Решения
  • Почему Yandex Cloud
  • Сообщество
  • Тарифы
  • Документация
  • Связаться с нами
Подключиться
Language / Region
Проект Яндекса
© 2023 ООО «Яндекс.Облако»
Yandex Managed Service for YDB
  • Начало работы
  • Пошаговые инструкции
  • Практические руководства
  • Концепции
  • Управление доступом
  • Правила тарификации
    • Обзор
    • Бессерверный режим
      • Правила тарификации для бессерверного режима
      • Стоимость запроса для YQL
      • Стоимость запроса для Document API
      • Стоимость запроса для специальных API
      • Стоимость операций с топиками
    • Режим с выделенными инстансами
  • Document API, совместимый с Amazon DynamoDB
  • Справочник API Yandex Cloud для Managed Service for YDB
  • Вопросы и ответы
  • Публичные материалы
  • Обучающие курсы
  1. Правила тарификации
  2. Бессерверный режим
  3. Стоимость операций с топиками

Правила оценки стоимости операций с топиками

Статья создана
Yandex Cloud
  • Режимы тарификации
  • Расчет потребления Request Units
    • TopicAPI
    • DataStreamsAPI

Режимы тарификации

Тарификация операций с данными в топиках YDB с использованием Request Units YDB применяется для топиков, использующих режим тарификации по фактическому использованию (On-demand). В этом режиме по умолчанию создаются топики через YDB CLI/SDK, а также при создании потока CDC.

Если топик создается как хранилище для потока данных Data Streams, он по умолчанию получает режим тарификации по выделенным ресурсам. Для находящихся в режиме по выделенным ресурсам топиков начисление Request Units YDB не производится, оплата делается на почасовой основе в рамках сервиса Yandex Data Streams.

Смена режима тарификации может быть произведена для любого топика явно вызовом команды YDB CLI ydb topic alter или метода SDK.

Расчет потребления Request Units

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

TopicAPI

TopicAPI используется при работе через YDB SDK и CLI, и предоставляет потоковые методы чтения и записи данных. Стоимость обращения к этим методам в Request Units (RU) вычисляется по следующим правилам:

  1. Каждый вызов метода чтения или записи, то есть открытие потока записи или чтения, стоит 1 RU.

  2. В рамках каждого открытого потокового метода передачи (сессии) накапливается объем переданных (записанных или считанных) данных. В момент превышения этим объемом границ блоков начисляется дополнительный 1 RU за каждый блок. При этом размеры блоков отличаются для чтения и записи:

    Направление Размер блока
    Чтение 8КБ
    Запись 4КБ

Пример расчета

  1. Вызван новый потоковый метод записи. В этот момент начисляется 1 RU.
  2. В рамках метода передан пакет данных для записи объемом 1 КБ. Так как граница блока записи 4 КБ не превышена, дополнительных начислений RU не производится.
  3. В рамках метода передан пакет данных для записи объемом 8 КБ. Общий объем переданных в рамках метода данных стал равен 9 КБ, что включает 2 блока по 4 КБ. Производится начисление 2 RU, по 1 RU за каждый блок.
  4. В рамках метода передан пакет данных для записи объемом 6 КБ. Общий объем переданных в рамках метода данных стал равен 15 КБ, что включает 3 блока данных по 4 КБ, что стоит 3 RU. Так как 2 RU уже ранее передавались, передается разница 3 RU - 2 RU = 1 RU.

Расчет для чтения производится аналогично, но с размером блока в 8 КБ.

DataStreamsAPI

DataStreamsAPI используется при обращении к топику через интерфейс потоков данных, совместимый с AWS Kinesis. На данном интерфейсе не поддерживаются потоковые методы чтения и записи, и передача каждого блока данных требует вызова отдельного унарного метода (запрос-ответ). Стоимость обращения к этим методам в Request Units (RU) вычисляется по следующим правилам:

  1. Каждый вызов метода чтения или записи для передачи или получения очередного блока данных стоит 1 RU.

  2. Рассчитывается объем блоков данных, переданных в запросе к методу записи, или полученных в ответе на вызов метода чтения. Размеры блоков отличаются для чтения и записи:

    Направление Размер блока
    Чтение 8КБ
    Запись 4КБ
  3. За каждый полный переданный блок данных начисляется по 1 RU.

Пример расчета

  1. Вызван метод KinesisAPI getRecords.
  2. В ответе получен пакет данных размером в 20 KB. Этот объем содержит два полных блока чтения размером 8 КБ.
  3. Стоимость вызова в RU = 1 RU за вызов + 2 RU за два полученных полных блока данных = 3 RU.

Расчет для записи производится аналогично, но с размером блока в 4 КБ.

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

Language / Region
Проект Яндекса
© 2023 ООО «Яндекс.Облако»
В этой статье:
  • Режимы тарификации
  • Расчет потребления Request Units
  • TopicAPI
  • DataStreamsAPI