Перейти к главному контенту

Потоки данных Amazon Kinesis

Начало работы с Потоками данных Amazon Kinesis

Начать работу

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

Потоки данных Amazon Kinesis можно интегрировать со многими сервисами AWS, включая: Данные Amazon Kinesis Firehose для преобразования данных в режиме, близком к реальному времени, и доставки потоковых данных в озеро данных AWS, например Amazon S3; Управляемый сервис Amazon для Apache Flink для управляемой обработки потоковых данных; AWS Lambda для обработки событий или записей; AWS PrivateLink для частных подключений; Amazon Cloudwatch для обработки метрик и журналов; а также AWS KMS для шифрования на стороне сервера.

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

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

Узнать о новых возможностях Потоков данных Amazon Kinesis

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

Видео

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

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

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

Открыть все

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

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

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

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

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

Запись – это единица данных, хранящихся в потоке Amazon Kinesis. Запись состоит из порядкового номера, ключа секции и BLOB‑объекта данных. 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 или Kinesis Data Firehose с помощью генератора данных Amazon Kinesis.

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

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

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

Используйте готовые приложения или разрабатывайте собственные

Открыть все

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

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

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

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

Amazon Kinesis Connector Library — это готовая библиотека, которая позволяет легко интегрировать 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 Data Streams с Apache Storm. Текущая версия Amazon Kinesis Storm Spout извлекает данные из потока Kinesis и выводит их в виде кортежей. Чтобы по максимуму использовать возможности сервиса Amazon Kinesis Data Streams, которые обеспечивают надежность, масштабируемость, захват потока, хранение и воспроизведение, необходимо добавить Spout в топологию Storm.

Управление потоками

Открыть все

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

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

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

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

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

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

Вы можете добавлять теги к потокам данных Amazon Kinesis и потребителям с расширенным распараллеливанием (EFO), чтобы упростить управление ресурсами и затратами. Тег – это пользовательская метка, которая выражается в виде пары «ключ‑значение» и упрощает организацию ресурсов AWS. Например, можно назначить теги потокам данных Amazon Kinesis и потребителям с расширенным распараллеливанием (EFO) по центрам затрат, что позволит разделить их на категории и отслеживать расходы Amazon Kinesis на основе центров затрат. Дополнительные сведения см. в разделе Маркировка ресурсов Amazon Kinesis Data Streams.

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

Открыть все

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

Избранные презентации

Открыть все

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

Смотреть запись сеанса | Скачать презентацию

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

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

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

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

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

Смотреть запись сеанса | Скачать презентацию

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

Смотреть запись сеанса | Скачать презентацию

Избранные решения

Решение для потоковой обработки данных AWS для Amazon Kinesis предоставляет шаблоны AWS CloudFormation, в которых данные проходят через источники, потоковое хранилище, потребителей и пункты назначения. Чтобы соответствовать разным примерам использования и потребностям бизнеса, решение предлагает четыре шаблона AWS CloudFormation. Настройки шаблонов позволяют применять лучшие рекомендации по защите данных и по мониторингу функциональности с помощью панелей и тревог.