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

Начало работы

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

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

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

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

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

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

Видео

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

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

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

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

Open all

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

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

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

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

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

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

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

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

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

Open all

Источники данных могут помещать данные в потоки данных HAQM Kinesis с помощью API-интерфейсов сервиса «Потоки данных HAQM Kinesis», библиотеки источников HAQM Kinesis (KPL) или агента HAQM Kinesis.

Генератор данных HAQM Kinesis позволяет помещать образцы данных в поток данных Kinesis или в Kinesis Data Firehose.

Сервис «Потоки данных HAQM Kinesis» предоставляет два API для помещения данных в поток HAQM Kinesis: PutRecord и PutRecords. API PutRecord позволяет одним вызовом добавить одну запись данных, а API PutRecords позволяет одним вызовом добавить несколько записей данных.

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

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

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

Open all

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

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

Управляемый сервис HAQM для Apache Flink позволяет легко выполнять запросы по данным из потока или создавать приложения для потоковой передачи с использованием Apache Flink. Благодаря этому вы сможете быстро получать полезную информацию и оперативно реагировать на потребности бизнеса и клиентов. Поток данных Kinesis можно использовать в качестве источника и места назначения для Управляемого сервиса HAQM для Apache Flink.

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

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

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

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

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

Open all

Частный доступ к API Kinesis Data Streams можно получить из облака HAQM 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.

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

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

Использование потока данных в качестве источника для сервиса Kinesis Data Firehose позволяет «на лету» преобразовывать данные и отправлять их в сервисы S3, Redshift, Elasticsearch и Splunk. Подключите Управляемый сервис HAQM для Apache Flink, чтобы обрабатывать потоковые данные в режиме реального времени, используя стандартный язык SQL. Вам не придется осваивать новые языки программирования или системы обработки данных.

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

Сервис «Потоки данных HAQM Kinesis» интегрирован с сервисом Управление идентификацией и доступом AWS (IAM), который позволяет безопасно управлять доступом пользователей к сервисам и ресурсам AWS. Например, можно создать политику, которая будет позволять только определенному пользователю или группе размещать данные в потоке HAQM Kinesis. Дополнительную информацию об управлении доступом и потоком данных HAQM Kinesis см. на страницеУправление доступом к ресурсам HAQM Kinesis с помощью IAM.

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

Чтобы упростить управление ресурсами и расходами, потоки HAQM Kinesis можно помечать с помощью тегов. Тег – это пользовательская метка, которая выражается в виде пары «ключ‑значение» и упрощает организацию ресурсов AWS. Например, можно назначить теги потокам данных HAQM Kinesis по центрам затрат, что позволит разделить их на категории и отслеживать расходы HAQM Kinesis на основе центров затрат. Дополнительную информацию по этой теме см. в разделе Использование тегов в Потоках данных HAQM Kinesis.

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

Open all

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

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

Open all

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

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