Начать работу с Amazon Kinesis Data Streams »

Узнать о новых возможностях Amazon Kinesis Data Streams »

Запросить поддержку в оценке или создании опытного образца »

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

Amazon Kinesis Data Streams интегрирован с рядом сервисов AWS, в том числе с Amazon Kinesis Data Firehose для преобразования и доставки потоковых данных в режиме, близком к реальному времени, в озеро данных AWS, например Amazon S3, Kinesis Data Analytics для управляемой обработки потока данных, AWS Lambda для обработки событий или записей, AWS PrivateLink для обеспечения частного подключения, Amazon CloudWatch для обработки метрик и журналов, а также AWS KMS для шифрования на стороне сервера.

На следующей архитектурной диаграмме сервис Amazon Kinesis Data Streams используется в качестве шлюза в системе обработки больших данных. Данные из различных источников помещаются в поток Amazon Kinesis, после чего могут использоваться различными приложениями Amazon Kinesis. В этом примере одно приложение (обозначено желтым) обрабатывает потоковые данные в режиме реального времени. Другое приложение (обозначено красным) выполняет простую агрегацию данных и отправляет обработанные данные в Amazon S3. Данные в S3 дополнительно обрабатываются и сохраняются в Amazon Redshift для расширенного анализа. Третье приложение (обозначено зеленым) передает исходные данные в Amazon S3, после чего они архивируются и отправляются в Amazon Glacier для долгосрочного хранения с низкими расходами. Примечательно, что вся эта непрерывная обработка данных выполняется одновременно и параллельно.

kinesis-architecture-crop

Основные понятия

Источник данных

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

Потребитель данных

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

Поток данных

Поток данных – это логическая группа сегментов. Ограничения на количество сегментов в потоке данных отсутствуют (запросите увеличение лимита, если требуется больше). Данные в потоке данных могут храниться в течение 24 часов или до 7 дней, если установлен расширенный срок хранения.

Сегмент

Сегмент – это основная единица передачи данных потока данных Amazon Kinesis.

  • Сегмент – это журнал только для добавления записи, а также единица потоковой передачи. Сегмент содержит последовательность записей, упорядоченных по времени получения.
  • Один сегмент может принимать до 1000 записей данных в секунду, или 1 МБ/с. Чтобы расширить возможность сбора данных, добавьте больше сегментов.
  • Можно добавлять сегменты в поток или удалять их из него динамически по мере изменения скорости передачи данных с помощью Консоли AWS, API UpdateShardCount, а также использовать автоматическое масштабирование с помощью AWS Lambda или с помощью сервисной программы автомасштабирования.
  • Когда потребители используют дополнительные копии данных, один сегмент обеспечивает прием данных со скоростью 1 МБ/с и передачу данных со скоростью 2 МБ/с для каждого зарегистрированного потребителя данных, использующего дополнительные копии данных.
  • Когда потребители не используют дополнительные копии данных, один сегмент обеспечивает прием данных со скоростью 1 МБ/с и передачу данных со скоростью 2 МБ/с, при этом исходящие данные совместно используются всеми потребителями, которые не используют дополнительные копии данных.
  • Необходимое количество сегментов указывается при создании потока; изменить это количество можно потом в любое время. Например, можно создать поток с двумя сегментами. Если существует 5 потребителей данных, использующих дополнительные копии данных, этот поток может обеспечить пропускную способность данных до 20 МБ/с (2 сегмента x 2 МБ/с x 5 потребителей данных). Когда потребители не используют дополнительные копии данных, этот поток данных будет обеспечивать передачу входящих данных со скоростью 2 МБ/с и передачу исходящих данных со скоростью 4 МБ/с. В любом случае этот поток позволяет выполнять до 2000 записей PUT в секунду, или принимать данные со скоростью 2 МБ/с, в зависимости от того, какой лимит будет достигнут первым.
  • В Amazon Kinesis Data Streams можно отслеживать метрики на уровне сегментов.

Запись данных

Запись – это единица данных, хранящихся в потоке Amazon Kinesis. Запись состоит из порядкового номера, ключа секции и BLOB-объекта данных. Блоб данных – это содержательная составляющая данных, которые ваш источник добавляет в поток. Максимальный размер BLOB-объекта данных(полезных данных, полученных после декодирования по схеме Base64) составляет 1 мегабайт (МБ).

Ключ секции

Ключ секции обычно является значимым идентификатором, например идентификатором пользователя или меткой времени. Он задается источником данных при размещении данных в потоке данных Amazon Kinesis и является полезным для потребителей, поскольку они могут использовать этот ключ секции для воспроизведения или создания истории, связанной с этим ключом секции. Ключ секции также используется для разделения и маршрутизации записей данных в различные сегменты потока. Предположим, что у вас есть поток данных Amazon Kinesis с двумя сегментами (сегмент 1 и сегмент 2). Можно настроить ваш источник данных на использование двух ключей секций (ключа A и ключа B), чтобы все записи данных с ключом A добавлялись в сегмент 1, а все записи данных с ключом B добавлялись в сегмент 2.

Порядковый номер

Порядковый номер – это уникальный идентификатор для каждой записи данных. Порядковый номер назначается сервисом Amazon Kinesis Data Streams в момент получения от источника данных вызова API PutRecord или PutRecords для добавления данных в поток данных Amazon Kinesis. Значения порядковых номеров для одного и того же ключа секции со временем обычно увеличиваются. Чем больше времени прошло между запросами PutRecord или PutRecords, тем большее значение будет у порядкового номера.

Использование Kinesis Data Streams

Зарегистрировавшись в Amazon Web Services, можно начать работу с Amazon Kinesis Data Streams. Для этого нужно выполнить следующие действия.

  • Создать поток Amazon Kinesis с помощью консоли управления Amazon Kinesis или API CreateStream Amazon Kinesis.
  • Настроить источники данных для непрерывной передачи данных в поток данных Amazon Kinesis.
  • Создать приложения Amazon Kinesis для чтения и обработки данных из потока данных Amazon Kinesis.

Размещение данных в потоки

Источники данных могут передавать данные в потоки данных Amazon Kinesis с помощью API Amazon Kinesis Data Streams, библиотеки источников Amazon Kinesis (KPL) или агента Amazon Kinesis.

Amazon Kinesis Data Generator

Разместите образцы данных в потоке данных Kinesis или Kinesis Data Firehose с помощью Amazon Kinesis Data Generator.

API Amazon Kinesis Data Streams

В Amazon Kinesis Data Streams имеется два API для размещения данных в потоке Amazon Kinesis: PutRecord и PutRecords. API PutRecord позволяет одним вызовом добавить одну запись данных, а API PutRecords позволяет одним вызовом добавить несколько записей данных.

Библиотека источников Amazon Kinesis (KPL)

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

Агент Amazon Kinesis

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

Запуск полностью управляемых приложений для обработки потоков или создание собственных

Запускайте полностью управляемые приложения для обработки потоков с помощью сервисов AWS или создавайте свои собственные.

Amazon Kinesis Data Firehose

Amazon Kinesis Data Firehose предоставляет простейший способ надежного преобразования и загрузки потоковых данных в хранилища и инструменты аналитики. Поток данных Kinesis можно использовать в качестве источника для Kinesis Data Firehose.

Amazon Kinesis Data Analytics

Amazon Kinesis Data Analytics позволяет выполнять запросы к данным потоковой передачи или создавать целые приложения потоковой передачи данных с использованием SQL. Благодаря этому можно быстро получать полезную информацию и оперативно реагировать на потребности бизнеса и клиентов. Поток данных Kinesis можно использовать в качестве источника и целевого объекта для приложения Kinesis Data Analytics.

AWS Lambda

Функции Lambda можно настроить на автоматическое считывание записей из потока данных Kinesis. AWS Lambda обычно используется для последовательной обработки записей потока (обработки на основе событий).

Клиентская библиотека Amazon Kinesis (KCL)

Клиентская библиотека Amazon Kinesis (KCL) – это встроенная библиотека, позволяющая просто создавать приложения Amazon Kinesis для считывания и обработки данных из потока Amazon Kinesis. Она берет на себя такие сложные задачи, как адаптация к изменениям объема потока, балансировка нагрузки потоковых данных, координация распределенных сервисов и отказоустойчивая обработка данных. KCL позволяет разработчику сосредоточить свое внимание на бизнес-логике при разработке приложений Amazon Kinesis.Начиная с KCL 2.0 можно использовать API потоковой передачи HTTP/2 с низкой задержкой и создание копий данных для извлечения данных из потока.

Связующая библиотека Amazon Kinesis

Связующая библиотека Amazon Kinesis – это встроенная библиотека, позволяющая легко интегрировать Amazon Kinesis с другими сервисами AWS и инструментами сторонних разработчиков. Для использования связующей библиотеки Amazon Kinesis требуется клиентская библиотека Amazon Kinesis (KCL). Текущая версия этой библиотеки обеспечивает подключение к Amazon DynamoDB, Amazon Redshift, Amazon S3 и Amazon Elasticsearch Service. Кроме того, библиотека содержит примеры подключений для каждого типа, а также файлы построения Apache Ant для запуска примеров.

Amazon Kinesis Storm Spout

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

Возможности управления

Частный доступ к API Kinesis Data Streams из Amazon VPC

Частный доступ к API Kinesis Data Streams можно получить из облака Amazon Virtual Private Cloud (VPC), создав адреса VPC. При использовании адресов VPC маршрутизация между VPC и Kinesis Data Streams осуществляется сетью AWS без помощи интернет-шлюза, шлюза NAT или VPN-подключения. Последнее поколение адресов VPC, применяемых Kinesis Data Streams, работает на основе AWS PrivateLink – технологии, которая обеспечивает частное соединение между сервисами AWS, используя в VPC эластичные сетевые интерфейсы (ENI) с частными IP-адресами. Дополнительную информацию о PrivateLink см. в документации AWS PrivateLink.

Копирование данных Kinesis Data Streams без снижения производительности

Дополнительные копии данных позволяют клиентам масштабировать число потребителей, параллельно считывающих данные из потока данных, сохраняя при этом необходимую производительность. Можно использовать дополнительные копии и API извлечения данных HTTP/2 для передачи данных в несколько приложений. Обычно на это требуется не более 70 миллисекунд после получения.

Шифрование данных Kinesis Data Streams

Данные, которые передаются в Kinesis Data Streams, можно шифровать, используя шифрование на стороне сервера или шифрование на стороне клиента. Шифрование на стороне сервера является полностью управляемой возможностью, автоматически шифрующей и дешифрующей данные по мере их передачи в поток данных и получения из него. Кроме того, можно шифровать данные на стороне клиента, перед тем как они будут переданы в поток данных. Подробнее см. в разделе Безопасность на странице вопросов и ответов по Kinesis Data Streams.

Интеграция Amazon Kinesis Data Firehose с Amazon Kinesis Data Analytics

Используйте поток данных в качестве источника для Kinesis Data Firehose, чтобы преобразовать данные на лету при их передаче в S3, Redshift, Elasticsearch и Splunk. Назначьте приложение Kinesis Data Analytics для обработки потоковых данных в реальном времени с помощью стандартного SQL без необходимости изучать новые языки программирования или системы обработки данных.

Интеграция с Amazon CloudWatch

Amazon Kinesis Data Streams интегрирован с Amazon CloudWatch, что позволяет просто собирать, просматривать и анализировать метрики CloudWatch для потоков данных Amazon Kinesis и для сегментов этих потоков. Дополнительную информацию о метриках Amazon Kinesis Data Streams см. на странице Мониторинг сервиса Amazon Kinesis с помощью Amazon CloudWatch.

Интеграция с AWS IAM

Amazon Kinesis Data Streams интегрирован с сервисом AWS Identity and Access Management (IAM), который позволяет безопасно управлять доступом пользователей к сервисам и ресурсам AWS. Например, можно создать политику, которая будет разрешать размещение данных в поток Amazon Kinesis только определенному пользователю или группе. Дополнительную информацию об управлении доступом и контроле потока данных Amazon Kinesis см. на странице Controlling Access to Amazon Kinesis Resources using IAM.

Интеграция с AWS CloudTrail

Amazon Kinesis Data Streams интегрирован с сервисом AWS CloudTrail, который записывает вызовы API AWS для всего аккаунта и предоставляет файлы журналов. Дополнительную информацию о регистрации вызовов API, а также список поддерживаемых API Amazon Kinesis см. на странице Регистрация вызовов API Amazon Kinesis с помощью AWS CloudTrail.

Поддержка тегов

Для упрощения управления ресурсами и расходами потоки данных Amazon Kinesis можно помечать с помощью тегов. Тег – это пользовательская метка в виде пары «ключ-значение», которая упрощает организацию ресурсов AWS. Например, можно назначать потокам данных теги на основе центров затрат, что позволит разделять их на категории и отслеживать расходы на Amazon Kinesis Data Streams по центрам затрат. Дополнительную информацию по этой теме см. на странице Tagging Your Amazon Kinesis Data Streams.

Учебные пособия

Analyze Stock Data with Amazon Kinesis Data Streams

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

Analyzing Streaming Data in Real Time with Amazon Kinesis (ABD301)

Amazon Kinesis упрощает сбор, обработку и анализ потоковых данных в режиме реального времени, что позволяет своевременно получать аналитические данные и быстро реагировать на новую информацию. В этом семинаре мы рассказываем о комплексном решении для работы с потоковыми данными, в котором Kinesis Streams используется для сбора данных, Kinesis Analytics – для обработки в режиме реального времени, а Kinesis Firehose – для стабильной работы. Мы подробно рассказываем, как писать SQL-запросы для использования потоковых данных, и обсуждаем рекомендации по оптимизации и мониторингу приложений Kinesis Analytics. В заключение мы объясним, как оценить стоимость всей системы.

Смотреть запись семинара | Загрузить презентацию

Семинар. Building Your First Big Data Application on AWS (ABD317)

Хотите быстро расширить знания о веб-сервисах AWS для больших данных и запустить первое приложение для больших данных в облаке? Мы объясняем, как упростить процесс обработки больших данных и представить его в виде конвейера данных, включающего сбор, хранение, обработку и визуализацию. Вы создадите приложение для больших данных с использованием управляемых сервисов AWS, включая Amazon Athena, Amazon Kinesis, Amazon DynamoDB и Amazon S3. В ходе семинара мы рассматриваем шаблоны проектирования архитектуры приложений для больших данных и даем практическое задание на дом, в ходе которого вы сможете самостоятельно изменять и настраивать приложение. Для того чтобы семинар имел максимальный эффект, следует подготовить свой ноутбук и ознакомиться с сервисами AWS.

Загрузить презентацию

Семинар. Don’t Wait Until Tomorrow: How to Use Streaming Data to Gain Real-time Insights into Your Business (ABD321)

В последние годы наблюдается бурный рост количества подключенных устройств и источников данных в режиме реального времени. Вследствие этого новые данные создаются непрерывно, а скорость их создания все время растет. Компании не могут себе позволить ждать несколько часов или дней, чтобы начать использовать эти данные. Организации должны немедленно использовать новые данные для получения наиболее ценной аналитической информации и возможности быстро на нее реагировать. Из этого семинара вы узнаете, как с выгодой использовать источники потоковых данных для анализа и реагирования в режиме, близком к реальному времени. Вам будут представлены некоторые требования для реального сценария использования потоковых данных. На их основе нужно будет создать решение, которое полностью удовлетворяет заданным требованиям, с использованием таких сервисов, как Amazon Kinesis, AWS Lambda и Amazon SNS.

Загрузить презентацию

How Amazon Flex Uses Real-time Analytics to Deliver Packages on Time (ABD217)

Всем организациям и клиентам, которые применяют инструменты пакетного анализа данных и изучают преимущества потоковой аналитики, крайне важно снизить время на получение полезной аналитической информации из данных. Ознакомьтесь с рекомендациями по расширению архитектуры от хранилищ и баз данных до решений, работающих в режиме реального времени. Узнайте, как использовать Amazon Kinesis для получения аналитической информации из данных в режиме реального времени и интегрировать ее с Amazon Aurora, Amazon RDS, Amazon Redshift и Amazon S3. Команда Amazon Flex объяснит, как они применяли потоковую аналитику в мобильном приложении Amazon Flex, которым пользуются экспедиторы компании Amazon для своевременной доставки миллионов посылок ежемесячно. Они расскажут об архитектуре, которая позволила перейти от системы пакетной обработки к системе, работающей в режиме реального времени, и решить проблемы миграции существующих пакетных данных в потоковые данные, а также о преимуществах аналитики в режиме реального времени.

Смотреть запись семинара | Загрузить презентацию

Приложения для потоковой передачи в режиме реального времени в AWS. Примеры использования и шаблоны (ABD203)

Компаниям необходимо использовать актуальные данные в режиме реального времени, чтобы принимать решения проще и быстрее. Это позволит получить преимущество на рынке и обеспечивать дифференцированные уровни обслуживания для клиентов. Из этого семинара вы узнаете о распространенных примерах использования и архитектурах решений для обработки потоковых данных. В первой части семинара мы проводим обзор потоковых данных и возможностей AWS по работе с ними. Затем мы рассказываем о некоторых примерах клиентов и их приложений для потоковой передачи в режиме реального времени. В заключение мы обсуждаем распространенные примеры архитектуры и шаблоны проектов для основных вариантов использования потоковых данных.

Смотреть запись семинара | Загрузить презентацию

Начать работу с Amazon Kinesis Data Streams

См. руководство для разработчиков
Готовы начать работу?
Регистрация
Есть вопросы?
Свяжитесь с нами