1. 程式人生 > >Вопросы и ответы по Amazon Kinesis Data Streams

Вопросы и ответы по Amazon Kinesis Data Streams

Вопрос: Что такое приложение Amazon Kinesis?

Приложение Amazon Kinesis – это потребитель данных, который считывает и обрабатывает данные из потока Amazon Kinesis. Такие приложения можно создавать с помощью Amazon Kinesis Data AnalyticsAPI Amazon Kinesis или с помощью клиентской библиотеки Amazon Kinesis (KCL)

.

Вопрос: Что такое клиентская библиотека Amazon Kinesis (KCL)?

Клиентская библиотека Amazon Kinesis (KCL) для Java | Python | Ruby | Node.js | .NET – это встроенная библиотека, которая позволяет легко создавать приложения Amazon Kinesis для считывания и обработки данных из потока Amazon Kinesis.

KCL берет на себя такие сложные задачи, как адаптация к изменениям объема потока, балансировка нагрузки потоковых данных, координация распределенных сервисов и отказоустойчивая обработка данных. Благодаря этому разработчик может сосредоточить внимание на бизнес-логике создаваемого приложения. Библиотека KCL версии 2.x поддерживает как API HTTP/1 GetRecords, так и HTTP/2 SubscribeToShard с возможностью использования дополнительных копий для извлечения данных из потока. Напротив, KCL версии 1.x не поддерживает API SubscribeToShard и возможность использования дополнительных копий данных.

Вопрос: Как обновить KCL с 1.x до 2.x, чтобы можно было использовать SubscribeToShard и дополнительные копии данных?

Ознакомьтесь с документацией пользователя Kinesis Data Streams, чтобы узнать, как обновить KCL 1.x до версии 2.x.

Вопрос: Что представляет собой API SubscribeToShard?

API SubscribeToShard – это API высокопроизводительной потоковой передачи, который обеспечивает доставку данных из сегментов к потребителям с помощью постоянного подключения, не требующего циклических запросов со стороны клиента. API SubscribeToShard использует протокол HTTP/2 для доставки данных зарегистрированным потребителям каждый раз, когда новые данные поступают в сегмент, что происходит обычно в течение 70 мс. По сравнению с использованием API GetRecords это ускоряет доставку данных на 65 %. Никакого снижения производительности доставки, даже если несколько зарегистрированных потребителей считывают данные из одного и того же сегмента.

Вопрос: Можно ли использовать SubscribeToShard без создания дополнительных копий данных?

Нет. Для работы SubscribeToShard требуется использование дополнительных копий данных. Также необходимо зарегистрировать потребителя в сервисе Kinesis Data Streams, прежде чем использовать SubscribeToShard.

Вопрос: Как долго поддерживается постоянное соединение SubscribeToShard?

Постоянное соединение может поддерживаться до 5 минут.

Вопрос: Поддерживает ли библиотека Kinesis Client Library (KCL) использование SubscribeToShard?

Да, библиотека KCL версии 2.x использует SubscribeToShard и возможность создания дополнительных копий для извлечения данных из потока Kinesis с высокой производительностью.

Вопрос: Нужно ли платить за использование SubscribeToShard?

Нет, дополнительная плата за использование SubscribeToShard не взимается. Однако SubscribeToShard нужно использовать с дополнительными копиями данных, за которые начисляется почасовая плата для каждой комбинации потребитель-сегмент и плата за каждый гигабайт данных, доставленный с использованием дополнительных копий данных.

Вопрос: Нужно ли создавать дополнительные копии данных для использования SubscribeToShard?

Да, для использования SubscribeToShard необходимо зарегистрировать потребителей, при этом создание дополнительных копий данных активируется после регистрации. По умолчанию, если данные запрашиваются с помощью SubscribeToShard, потребитель автоматически использует создание дополнительных копий данных.

Вопрос: Что такое связующая библиотека Amazon Kinesis?

Связующая библиотека Amazon Kinesis – это встроенная библиотека, которая позволяет легко интегрировать Amazon Kinesis Data Streams с другими сервисами AWS и инструментами сторонних разработчиков. Для использования связующей библиотеки Amazon Kinesis требуется клиентская библиотека Amazon Kinesis (KCL) для Java | Python | Ruby | Node.js | .NET. Текущая версия этой библиотеки обеспечивает подключение к Amazon DynamoDB, Amazon RedShift, Amazon S3 и Elasticsearch. Кроме того, библиотека содержит примеры подключений для каждого типа, а также файлы компоновки Apache Ant для запуска примеров.

Вопрос: Что такое Amazon Kinesis Storm Spout?

Amazon Kinesis Storm Spout – это встроенная библиотека, позволяющая легко интегрировать Amazon Kinesis Data Streams с Apache Storm. Текущая версия Amazon Kinesis Storm Spout извлекает данные из потока Amazon Kinesis и выводит их в виде кортежей. Чтобы использовать Amazon Kinesis Data Streams в качестве надежного и масштабируемого сервиса захвата потока, его хранения и воспроизведения, необходимо добавить Spout в топологию Storm.

Вопрос: Для каких языков программирования доступны клиентская библиотека Amazon Kinesis (KCL), связующая библиотека Amazon Kinesis и библиотека Amazon Kinesis Storm Spout?

Клиентская библиотека Amazon Kinesis в настоящее время доступна для Java, Python, Ruby, Node.js и .NET. Связующая библиотека Amazon Kinesis и Amazon Kinesis Storm Spout в настоящее время доступны только для Java, но планируется добавить поддержку других языков программирования.

Вопрос: Необходимо ли для создания приложений Amazon Kinesis использовать клиентскую библиотеку Amazon Kinesis (KCL)?

Нет, с помощью API Amazon Kinesis также можно создавать приложения Amazon Kinesis. Тем не менее рекомендуется использовать клиентскую библиотеку Amazon Kinesis для Java | Python | Ruby | Node.js | .NET, поскольку она берет на себя выполнение трудоемких задач по распределенной обработке потоков, делая процесс разработки приложений более эффективным.

Вопрос: Как клиентская библиотека Amazon Kinesis взаимодействует с приложениями Amazon Kinesis?

Клиентская библиотека Amazon Kinesis (KCL) для Java | Python | Ruby | Node.js | .NET выступает как посредник между сервисом Amazon Kinesis Data Streams и приложением Amazon Kinesis. Она взаимодействует с приложением через интерфейс IRecordProcessor. Приложение выполняет этот интерфейс, и посредством методов последнего библиотека KCL обращается к коду приложения.

Вопрос: Что собой представляют исполнитель и обработчик записей, создаваемые клиентской библиотекой Amazon Kinesis?

Приложение Amazon Kinesis может состоять из множества экземпляров, а исполнитель – это модуль обработки, привязываемый к каждому из этих экземпляров. Обработчик записей – это модуль обработки, выполняющий обработку данных из сегмента потока Amazon Kinesis. Один исполнитель может быть привязан к одному или нескольким обработчикам записей. Один обработчик записей может быть привязан к одному сегменту и выполнять обработку записей из него.

Вначале приложение обращается к клиентской библиотеке Amazon Kinesis (KCL) для Java | Python | Ruby | Node.js | .NET для инстанцирования исполнителя. С помощью этого вызова библиотека KCL получает данные конфигурации для приложения, например имя потока данных и данные для доступа AWS. В этом вызове также передается ссылка на нужный API IRecordProcessorFactory. С помощью вызова этого API библиотека KCL создает новые обработчики записей в количестве, необходимом для обработки потоковых данных. С этими обработчиками KCL взаимодействует посредством интерфейса IRecordProcessor.

Вопрос: Каким образом клиентская библиотека Amazon Kinesis продолжает отслеживать записи данных во время обработки приложением Amazon Kinesis?

Клиентская библиотека Amazon Kinesis (KCL) для Java | Python | Ruby | Node.js | .NET автоматически создает таблицу Amazon DynamoDB для каждого приложения Amazon Kinesis, чтобы отслеживать и обрабатывать информацию о состоянии, такую как события изменения числа сегментов и контрольные точки порядковых номеров. Имя этой таблицы DynamoDB будет совпадать с именем приложения, поэтому убедитесь, что имя вашего приложения не конфликтует с именами существующих таблиц DynamoDB того же аккаунта в том же регионе.

Все исполнители, связанные с одним именем приложения, работают с одним и тем же потоком данных Amazon Kinesis. При запуске дополнительного инстанса с кодом того же приложения, но с другим именем библиотека KCL будет рассматривать его как отдельное приложение, которое также работает с этим потоком данных.

Обратите внимание на то, что использование таблиц Amazon DynamoDB не входит в стоимость пользования сервисом Amazon Kinesis Data Streams и оплачивается дополнительно.

Дополнительные сведения о том, как KCL контролирует состояние приложения, см. в разделе Контроль состояния приложения Amazon Kinesis.

Вопрос: Как автоматически масштабировать обрабатывающие ресурсы приложения Amazon Kinesis с помощью клиентской библиотеки Amazon Kinesis?

Вы можете создать множество экземпляров вашего приложения Amazon Kinesis, которые будут выполняться некоторым набором инстансов Amazon EC2, входящих в группу Auto Scaling. При возникновении потребности в дополнительных обрабатывающих ресурсах инстанс Amazon EC2, на котором работает экземпляр приложения, будет автоматически инстанцирован. Клиентская библиотека Amazon Kinesis (KCL) для Java | Python | Ruby | Node.js | .NET сгенерирует исполнитель для этого нового инстанса и автоматически переместит обработчики записей с существующих перегруженных инстансов на новый инстанс.

Вопрос: Почему вызов GetRecords возвращает пустой результат, хотя поток данных Amazon Kinesis содержит данные?

Причина может быть в отсутствии записей на позиции, указанной текущим итератором сегмента. Это может произойти даже в случае использования итератора типа TRIM_HORIZON. Поток данных Amazon Kinesis является непрерывным. Необходимо выполнять вызов API GetRecords в цикле, и при перемещении итератора сегмента на позицию, где находится запись, она будет возвращена.

Вопрос: Что представляет собой значение ApproximateArrivalTimestamp, возвращаемое в результате операции GetRecords?

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

Вопрос: Что произойдет, если при считывании данных приложением Amazon Kinesis из потока Amazon Kinesis будет превышен предел пропускной способности потока данных?

Пропускная способность потока данных Amazon Kinesis определяется числом сегментов в нем. Предел пропускной способности может быть превышен за счет скорости передачи данных либо числа запросов чтения. При превышении предела запрос чтения данных будет отклонен с выдачей исключения ProvisionedThroughputExceeded. Если причина заключается во временном повышении скорости передачи исходящих данных, то выполнение запроса будет успешно завершено после очередной попытки чтения приложением Amazon Kinesis. Если причина в устойчивом повышении скорости передачи исходящих данных, следует увеличить число сегментов в потоке данных, чтобы обеспечить достаточную пропускную способность для успешного выполнения всех запросов чтения данных. В обоих случаях можно воспользоваться метриками Amazon CloudWatch, чтобы узнать об изменении скорости передачи исходящих данных и о ситуациях исключений типа ProvisionedThroughputExceeded.

相關推薦

Вопросы и ответы по Amazon Kinesis Data Streams

Вопрос: Что такое приложение Amazon Kinesis? Приложение Amazon Kinesis – это потребитель данных, который считывает и обрабатывает данные

Вопросы и ответы по Amazon Redshift 

Вопрос: Что такое Amazon Redshift? Amazon Redshift – это полностью управляемое высокоскоростное хранилище данных, которое позволяе

Вопросы и ответы по Amazon GuardDuty 

Вопрос: Каковы главные преимущества Amazon GuardDuty? Amazon GuardDuty упрощает осуществление непрерывного мониторинга аккаунтов A

Вопросы и ответы по Amazon AppStream 2.0

Вопрос: Как можно создавать образы с собственными приложениями? Для создания образов с собственными приложениями можно использовать инст

Amazon Kinesis Data Streams Resources

This is a pre-built library that helps you easily integrate Amazon Kinesis Data Streams with other AWS services and third-party tools. Amazon Ki

Amazon Kinesis Data Streams getting started

Reducing the time to get actionable insights from data is important to all businesses and customers who employ batch data analytics tools are exp

Amazon Kinesis Data Streams FAQs

Q: What is an Amazon Kinesis Application? An Amazon Kinesis Application is a data consumer that reads and processes data from an Amazon

Building a Data Processing Pipeline with Amazon Kinesis Data Streams and Kubeless

If you’re already running Kubernetes, FaaS (Functions as a Service) platforms on Kubernetes can help you leverage your existing investment in EC2

Amazon Kinesis Data Streams News

Two years ago we introduced Amazon Kinesis, which we now call Amazon Kinesis Streams, to allow customers to build applications that collect,

Amazon Kinesis Data Streams Pricing

Let’s assume that our data producers put 100 records per second in aggregate, and each record is 35KB. In this case, the total data input rate is

Amazon Kinesis Data Streams:AWS

Amazon Kinesis Data Streams (KDS) は、大規模にスケーラブルで持続的なリアルタイムのデータストリーミングサービスです。KDS はウエブサイトクリックストリームやデータべースイベントストリームや金融取引、ソーシャルメディアフィード、ITロゴ、ロケーション追跡イベ

Questions fréquentes (FAQ) sur Amazon Kinesis Data Streams

Q : Qu'est-ce qu'une application Amazon Kinesis ? Une application Amazon Kinesis est un consommateur de données qui lit et traite des do

Вопросы и ответы по Elastic Load Balancing

Вопрос. Какие операционные системы поддерживает Application Load Balancer? Application Load Balancer под

Вопросы и ответы по AWS Config 

Вопрос: Каков принцип начисления платы за использование AWS Config и правил AWS Config Rules? При использовании AWS Config стоимос

Вопросы и ответы по AWS Cloud9 

Вопрос: Что такое AWS Cloud9? AWS Cloud9 – это облачная интегрированная среда разработки (IDE), которая позволяет создавать, запускать и

Вопросы и ответы по AWS Lambda

Вопрос: В каких случаях стоит использовать AWS Lambda вместо Amazon EC2? Amazon Web Services предлагает большое количество вычисл

Вопросы и ответы по AWS Artifact 

Администратору аккаунта AWS автоматически предоставляется разрешение загружать, принимать и расторгать соглашения для данного аккаунта. Если вы я

Вопросы и ответы по Alexa for Business

Как устройства Amazon Echo распознают слово для пробуждения? Устройства Amazon Echo распознают слово для пробуждения с помощью встроенно

Вопросы и ответы по AWS Migration Hub 

Вопрос: Как использовать AWS Migration Hub в процессе миграции приложений? После создания одной или нескольких групп приложений, с