Yandex Cloud
  • Сервисы
  • Решения
  • Почему Yandex Cloud
  • Сообщество
  • Тарифы
  • Документация
  • Связаться с нами
Подключиться
Language / Region
© 2022 ООО «Яндекс.Облако»
Yandex Data Streams
  • Начало работы
    • Подготовка окружения
    • Создание потока данных
    • Сбор и поставка данных
      • Fluentd
      • Logstash
      • AWS CLI
    • Сохранение данных в ClickHouse
    • Обработка потока изменений из Debezium
  • Пошаговые инструкции
    • Все инструкции
    • Управление потоками данных
    • Работа с AWS CLI
      • Создание потока данных
      • Получение информации о потоке
      • Отправка данных в поток
      • Чтение данных из потока
      • Удаление потока данных
    • Работа с AWS SDK
      • Подготовка окружения
      • Создание потока данных
      • Отправка данных в поток
      • Чтение данных из потока
      • Удаление потока данных
  • Концепции
    • Обзор
    • Термины и определения
    • Cегменты и ключи сегментов
    • Квоты и лимиты
    • Сравнение с Yandex Message Queue
  • Практические руководства
    • Ввод данных в системы хранения
    • Хранение журналов работы приложения
    • Передача данных в микросервисных архитектурах
  • Управление доступом
  • Правила тарификации
  • HTTP API, совместимый с Amazon Kinesis Data Streams
    • Обзор
    • Методы
      • CreateStream
      • DecreaseStreamRetentionPeriod
      • DeleteStream
      • DescribeStream
      • IncreaseStreamRetentionPeriod
      • GetRecords
      • GetShardIterator
      • ListStreams
      • PutRecord
      • PutRecords
      • UpdateShardCount
    • Общие ошибки
    • Примеры
  • Вопросы и ответы
  1. HTTP API, совместимый с Amazon Kinesis Data Streams
  2. Методы
  3. GetRecords

GetRecords

Статья создана
Yandex.Cloud
  • Запрос
    • Параметры запроса
  • Ответ
    • Параметры ответа
  • Ошибки

Получает сообщения из сегмента потока данных.

Значение ShardIterator определяет позицию в сегменте, с которой будет начато последовательное чтение сообщений. Если в сегменте нет новых сообщений, GetRecords возвращает пустой список. В этом случае повторите вызов GetRecords.

При циклическом чтении сообщений из потока нужно использовать GetShardIterator, чтобы получить итератор сегмента для использования в первом запросе GetRecords. Для последующих чтений можно использовать значение NextShardIterator, которое возвращается в ответе GetRecords. Если сегмент был закрыт, GetRecords возвращает null в значении NextShardIterator.

Размер данных, которые возвращаются GetRecords ограничен 2 МБ/с, метод можно вызывать не чаще, чем 5 раз в секунду. Если в результате вызова GetRecords возвращается большее количество данных, то последующие вызовы будут завершаться с ошибкой ProvisionedThroughputExceededException, пока пропускная способность не вернется к значению 2 МБ/с. Например, если в результате запроса вернулось 10 МБ/с, последующие запросы в течение 5 секунд будут завершаться с ошибкой.

Чтобы определить, успевает ли ваше приложение обрабатывать все поступающие в сегмент данные, можно использовать значение MillisBehindLatest в ответе.

Запрос

Запрос содержит данные в формате JSON.

{
  "Limit": number,
  "ShardIterator": "string"
}

Параметры запроса

Параметр Описание
Limit Максимальное количество возвращаемых записей.

Тип: Целое число.
Возможные значения 1 - 10000.
Обязательный: Нет.
ShardIterator Позиция в сегменте, с которой будет начато последовательное чтение сообщений. Значение итератора определяется порядковым номером сообщения в сегменте.

Тип: Строка.
Размер: 1-512 символов.
Обязательный: Да.

Ответ

В случае успеха возвращаются HTTP-ответ с кодом 200 и данные в формате JSON.

{
  "ChildShards": [{
    "HashKeyRange": {
      "EndingHashKey": "string",
      "StartingHashKey": "string"
    },
    "ParentShards": ["string"],
    "ShardId": "string"
  }],
  "MillisBehindLatest": number,
  "NextShardIterator": "string",
  "Records": [{
    "ApproximateArrivalTimestamp": number,
    "Data": blob,
    "EncryptionType": "string",
    "PartitionKey": "string",
    "SequenceNumber": "string"
  }]
}

Параметры ответа

Параметр Описание
ChildShards Список дочерних сегментов текущего сегмента. Возвращается при достижении конца текущего сегмента.
Тип: Массив.
Обязательный: Нет.
MillisBehindLatest Количество миллисекунд, на которое результаты, возвращаемые GetRecords, отстают от последних записанных данных в поток. Значение 0 означает, что возвращаются последние записанные данные без отставаний.Тип: Длинное целое число.
Минимальное значение: 0.
Обязательный: Нет.
NextShardIterator Итератор позиции в сегменте, с которой можно начать следующее последовательное чтение.
Если сегмент больше не существует, возвращается значение null.Тип: Строка.
Размер: 1-512 символов.
Обязательный: Да.
Records Сообщения, которые извлекаются из сегмента.
Тип: Массив.
Обязательный: Нет.

Ошибки

Параметр Описание Код HTTP
ExpiredIteratorException Время жизни указанного итератора истекло. 400
InvalidArgumentException Недопустимый аргумент. Дополнительные сведения смотрите в сообщении об ошибке. 400
ProvisionedThroughputExceededException Недостаточно пропускной способности для выполнения запроса. 400
ResourceNotFoundException Запрошенный ресурс не найден. 400

Могут возникать ошибки, общие для всех методов.

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

Language / Region
© 2022 ООО «Яндекс.Облако»
В этой статье:
  • Запрос
  • Параметры запроса
  • Ответ
  • Параметры ответа
  • Ошибки