get-records
Описание
Получает записи данных из раздела потока данных Kinesis.
Примечание
При вызове этого API необходимо использовать параметрStreamARN или параметр StreamName, или оба. Рекомендуется использовать входной параметр StreamARN при вызове этого API.Укажите итератор раздела с помощью параметра ShardIterator. Итератор раздела определяет позицию в разделе, с которой следует начать последовательное чтение записей данных. Если в части раздела, на которую указывает итератор, нет записей, GetRecords возвращает пустой список. Для получения части раздела, содержащей записи, могут потребоваться несколько вызовов.
Вы можете масштабировать, предоставив несколько разделов на поток, учитывая ограничения сервиса (подробнее см. Amazon Kinesis Data Streams Limits в руководстве разработчика Amazon Kinesis Data Streams). Ваше приложение должно иметь по одному потоку на раздел, каждый из которых непрерывно считывает данные из своего потока. Чтобы непрерывно считывать данные из потока, вызывайте GetRecords в цикле. Используйте GetShardIterator для получения итератора раздела, который нужно указать в первом вызове GetRecords. GetRecords возвращает новый итератор раздела в NextShardIterator. Укажите возвращённый итератор раздела в NextShardIterator в последующих вызовах GetRecords. Если раздел закрыт, итератор раздела не может вернуть больше данных, и GetRecords возвращает null в NextShardIterator. Вы можете завершить цикл, когда раздел закрыт или когда итератор раздела достигнет записи с номером последовательности или другим атрибутом, который отмечает её как последнюю обрабатываемую запись.
Размер каждой записи данных может составлять до 1 МБ, а каждый раздел может считывать до 2 МБ в секунду. Вы можете гарантировать, что ваши вызовы не превышают максимальный поддерживаемый размер или пропускную способность, используя параметр Limit для указания максимального числа записей, которые GetRecords может вернуть. Учитывайте средний размер записи при определении этого ограничения. Максимальное количество записей, которые могут быть возвращены за один вызов, равно 10 000.
Размер данных, возвращаемых GetRecords, варьируется в зависимости от использования раздела. Рекомендуется, чтобы приложения-потребители получали записи с помощью команды GetRecords, используя ограничение 5 TPS, чтобы оставаться в актуальном состоянии. Реже получение записей может привести к отставанию приложений-потребителей. Максимальный размер данных, которые GetRecords может вернуть, составляет 10 МБ. Если вызов возвращает такое количество данных, последующие вызовы в течение следующих 5 секунд генерируют ProvisionedThroughputExceededException. Если на потоке недостаточно выделенной пропускной способности, последующие вызовы в течение следующих 1 секунды генерируют ProvisionedThroughputExceededException. GetRecords не возвращает данные при возникновении исключения. По этой причине мы рекомендуем ожидать 1 секунду между вызовами GetRecords. Однако возможно, что приложение получит исключения в течение более чем 1 секунды.
Для определения того, отстаёт ли приложение от обработки, можно использовать атрибут ответа MillisBehindLatest. Также можно отслеживать поток с помощью метрик CloudWatch и других механизмов (см. Мониторинг в руководстве разработчика Amazon Kinesis Data Streams).
Каждая запись Amazon Kinesis включает значение ApproximateArrivalTimestamp, которое устанавливается, когда поток успешно получает и сохраняет запись. Это обычно называется отметкой времени на стороне сервера, а отметка времени на стороне клиента устанавливается, когда поставщик данных создаёт или отправляет запись в поток (поставщик данных — это любой источник данных, помещающий записи данных в поток, например, с помощью PutRecords). Отметка времени имеет точность миллисекунды. Нет гарантий относительно точности отметки времени или того, что отметка времени всегда увеличивается. Например, записи в разделе или в потоке могут иметь отметки времени, которые не следуют по порядку.
Для этой операции установлено ограничение в пять транзакций в секунду на раздел.
См. также: Документация API AWS
Синтаксис
get-records
--shard-iterator <value>
[--limit <value>]
[--stream-arn <value>]
[--cli-input-json | --cli-input-yaml]
[--generate-cli-skeleton <value>]
[--debug]
[--endpoint-url <value>]
[--no-verify-ssl]
[--no-paginate]
[--output <value>]
[--query <value>]
[--profile <value>]
[--region <value>]
[--version <value>]
[--color <value>]
[--no-sign-request]
[--ca-bundle <value>]
[--cli-read-timeout <value>]
[--cli-connect-timeout <value>]
[--cli-binary-format <value>]
[--no-cli-pager]
[--cli-auto-prompt]
[--no-cli-auto-prompt]
Параметры
--shard-iterator (строка)
--limit (целое число)
InvalidArgumentException. Значение по умолчанию — 10 000.--stream-arn (строка)
--cli-input-json | --cli-input-yaml (строка) Считывает аргументы из предоставленной строки JSON. Строка JSON следует формату, указанному в --generate-cli-skeleton. Если на командной строке указаны другие аргументы, эти значения переопределят значения, предоставленные в JSON. Передать произвольные двоичные значения с помощью значения, предоставленного в JSON, невозможно, так как строка будет взята буквально. Это не может быть указано вместе с --cli-input-yaml.
--generate-cli-skeleton (строка) Выводит каркас JSON в стандартный вывод без отправки запроса API. Если указано без значения или со значением input, выводит пример входного JSON, который можно использовать в качестве аргумента для --cli-input-json. Аналогично, если указано yaml-input, будет напечатан пример входного YAML, который можно использовать с --cli-input-yaml. Если указано значение output, выполняется валидация входных данных команды и возвращается пример выходного JSON для этой команды. Сгенерированный каркас JSON не является стабильным между версиями AWS CLI, и нет гарантий обратной совместимости в сгенерированном каркасе JSON.
Глобальные параметры
--debug (логическое значение)
Включить отладку логирования.
--endpoint-url (строка)
Переопределить URL по умолчанию команды заданным URL.
--no-verify-ssl (логическое значение)
По умолчанию AWS CLI использует SSL при общении с сервисами AWS. Для каждого подключения SSL AWS CLI будет проверять сертификаты SSL. Этот параметр переопределяет стандартное поведение проверки сертификатов SSL.
--no-paginate (логическое значение)
Отключить автоматическую постраничную навигацию. Если автоматическая постраничная навигация отключена, AWS CLI выполнит только один вызов для первой страницы результатов.
--output (строка)
Стиль форматирования вывода команды.
- json
- текст
- таблица
- yaml
- yaml-поток
--query (строка)
Запрос JMESPath для фильтрации данных ответа.
--profile (строка)
Использовать определённый профиль из файла учетных данных.
--region (строка)
Регион для использования. Переопределяет настройки конфигурации/среды.
--version (строка)
Отобразить версию этого инструмента.
--color (строка)
Включить/выключить цветной вывод.
- включить
- выключить
- автоматически
--no-sign-request (логическое значение)
Не подписывать запросы. Учетные данные не будут загружены, если этот аргумент указан.
--ca-bundle (строка)
Набор сертификатов CA для проверки сертификатов SSL. Переопределяет настройки конфигурации/среды.
--cli-read-timeout (целое число)
Максимальное время чтения сокета в секундах. Если значение равно 0, чтение сокета будет выполняться блокирующим образом без таймаута. Значение по умолчанию — 60 секунд.
--cli-connect-timeout (целое число)
Максимальное время подключения сокета в секундах. Если значение равно 0, подключение сокета будет выполняться блокирующим образом без таймаута. Значение по умолчанию — 60 секунд.
--cli-binary-format (строка)
Стиль форматирования, используемый для двоичных блоков. По умолчанию используется формат base64. Формат base64 ожидает, что двоичные блоки будут предоставлены как строка, закодированная в base64. Формат raw-in-base64-out сохраняет совместимость с поведением AWS CLI V1, и двоичные значения должны передаваться буквально. При предоставлении содержимого файла, которое отображается на двоичный блок fileb:// всегда будет обрабатываться как двоичный и будет использовать содержимое файла непосредственно независимо от настройки cli-binary-format. При использовании file:// содержимое файла должно быть правильно отформатировано для настроенного cli-binary-format.
- base64
- raw-in-base64-out
--no-cli-pager (логическое значение)
Отключить пагинацию cli для вывода.
--cli-auto-prompt (логическое значение)
Автоматически запрашивать параметры ввода CLI.
--no-cli-auto-prompt (логическое значение)
Отключить автоматическое запроса параметров ввода CLI.
Примеры
Примечание
Для использования следующих примеров необходимо установить и настроить AWS CLI. Дополнительную информацию см. в руководстве по началу работы с AWS CLI в руководстве пользователя AWS CLI.
Если не указано иное, во всех примерах используются правила цитирования Unix-подобных систем. Эти примеры необходимо адаптировать к правилам цитирования вашей оболочки. См. использование кавычек со строками в руководстве пользователя AWS CLI.
Получение записей из раздела
Следующий пример get-records получает записи данных из раздела потока данных Kinesis, используя указанный итератор раздела.
aws kinesis get-records \
--shard-iterator AAAAAAAAAAF7/0mWD7IuHj1yGv/TKuNgx2ukD5xipCY4cy4gU96orWwZwcSXh3K9tAmGYeOZyLZrvzzeOFVf9iN99hUPw/w/b0YWYeehfNvnf1DYt5XpDJghLKr3DzgznkTmMymDP3R+3wRKeuEw6/kdxY2yKJH0veaiekaVc4N2VwK/GvaGP2Hh9Fg7N++q0Adg6fIDQPt4p8RpavDbk+A4sL9SWGE1
Вывод:
{
"Records": [],
"MillisBehindLatest": 80742000
}
Дополнительную информацию см. в разделе Разработка потребителей с использованием API Kinesis Data Streams с SDK AWS для Java в руководстве разработчика Amazon Kinesis Data Streams.
Вывод
Записи -> (список)
Данные записей, извлечённые из раздела.
(структура)
Единица данных потока данных Kinesis, которая состоит из порядкового номера, ключа раздела и блока данных.
SequenceNumber -> (строка)
ApproximateArrivalTimestamp -> (метка времени)
Data -> (блок данных)
PartitionKey -> (строка)
EncryptionType -> (строка)
Тип шифрования, используемый для записи. Этот параметр может принимать одно из следующих значений:
-
NONE: Не шифровать записи в потоке. -
KMS: Использовать шифрование на стороне сервера для записей в потоке с использованием управляемого клиентом ключа KMS Amazon Web Services.
NextShardIterator -> (строка)
null , раздел закрыт, и запрашиваемый итератор не возвращает больше данных.MillisBehindLatest -> (целое число)
ChildShards -> (список)
Список дочерних разделов текущего раздела, возвращаемый в ответе API GetRecords только при достижении конца текущего раздела.
(структура)
Параметр вывода API GetRecords. Существующий дочерний раздел текущего раздела.
ShardId -> (строка)
ParentShards -> (список)
Текущий раздел, являющийся родителем существующего дочернего раздела.
(строка)
HashKeyRange -> (структура)
Диапазон возможных значений ключа хеширования для раздела, представляющий собой набор упорядоченных смежных положительных целых чисел.
StartingHashKey -> (строка)
EndingHashKey -> (строка)
© Copyright 2025, Amazon Web Services. Created using Sphinx.