Общие
Интерактивный анализ позволяет проводить исследование потоковых данных в режиме реального времени. С помощью специальных запросов или программ вы можете изучать потоки из Amazon MSK или Amazon Kinesis Data Streams и визуализировать данные в этих потоках. Например, вы можете просмотреть в режиме реального времени поведение метрики, вычисляющей среднее значение за период времени, и отправить агрегированные данные в выбранное место назначения. Интерактивный анализ также помогает последовательной разработке приложений по обработке потоковых данных. Составляемые вами запросы постоянно обновляются при поступлении новой информации. С помощью Kinesis Data Analytics Studio вы можете развертывать непрерывное выполнение запросов с включенным автоматическим масштабированием и резервным копированием состояния.
Использование Apache Beam для создания приложений Kinesis Data Analytics очень напоминает начало работы с Apache Flink. Выполните инструкции из приведенного выше вопроса и установите все компоненты, необходимые для того, чтобы приложения работали на Apache Beam, в соответствии с инструкциями из руководства для разработчиков. Обратите внимание, что Kinesis Data Analytics поддерживает SDK Java только при работе на Apache Beam.
Создайте новый блокнот Studio в консоли Amazon Kinesis Data Analytics. Сразу после запуска блокнота вы можете открыть его в Apache Zeppelin для мгновенного написания кода на SQL, Python или Scala. Вы можете интерактивно разрабатывать приложения с помощью интерфейса блокнота для Amazon Kinesis Data Streams, Amazon MSK и Amazon S3, используя встроенные интеграции и другие различные источники с пользовательскими коннекторами. Для выполнения специальных запросов к потокам данных и разработки приложения по обработке потоков можно использовать любого оператора, поддерживаемого Apache Flink в Flink SQL и Table API. После того, как вы будете готовы, можно всего за несколько кликов продвинуть свой код в непрерывно работающее приложение потоковой обработки данных с автоматическим масштабированием и надежным состоянием.
Да. С помощью коннекторов Apache Flink DataStream, Amazon Kinesis Data Analytics для приложений Apache Flink может использовать реестр схем AWS Glue – внесерверную функцию AWS Glue. Вы можете интегрировать Apache Kafka / Amazon MSK и Amazon Kinesis Data Streams в качестве приемника или источника с рабочими нагрузками Amazon Kinesis Data Analytics для Apache Flink. Чтобы начать работу и узнать больше, ознакомьтесь с пользовательской документацией для реестров схем.
Основные понятия
Управление приложениями
- раздел Monitoring Kinesis Data Analytics руководства разработчиков по Amazon Kinesis Data Analytics для Apache Flink.
- раздел Monitoring Kinesis Data Analytics руководства разработчиков по Amazon Kinesis Data Analytics для Studio.
- раздел Monitoring Kinesis Data Analytics руководства разработчиков по Amazon Kinesis Data Analytics для SQL.
- раздел Granting Permissions руководства разработчиков по Amazon Kinesis Data Analytics для Apache Flink.
- раздел Granting Permissions руководства разработчиков по Amazon Kinesis Data Analytics Studio.
- раздел Granting Permissions руководства разработчиков по Amazon Kinesis Data Analytics для SQL.
Цены и оплата
Оплата начисляется на почасовой основе, исходя из числа блоков обработки Amazon Kinesis (KPU), использованных при работе приложения потоковой передачи. KPU представляет собой единицу ресурса потоковой обработки, которая включает 1 виртуальный ЦПУ и 4 ГБ оперативной памяти. Amazon Kinesis Data Analytics автоматически масштабирует количество KPU, необходимых приложению для обработки потоков данных, по мере изменения требований к памяти и вычислительной мощности в зависимости от сложности обработки и скорости обработки потоковых данных.
При оркестрации приложений Apache Flink и Apache Beam взимается дополнительная плата за единицу KPU на каждое приложение. При использовании приложений Apache Flink и Apache Beam также взимается плата за хранилище запущенного приложения и за надежные резервные копии приложения. Хранилище запущенного приложения используется для обработки данных с фиксацией состояния в Amazon Kinesis Data Analytics и оплачивается с учетом количества ГБ-месяц. Создание постоянных резервных копий приложений (с оплатой по количеству использованных гигабайтов в месяц) предоставляется в качестве дополнительной возможности и позволяет выполнять восстановление на момент времени.
В Amazon Kinesis Data Analytics Studio в режиме разработки или в интерактивном режиме начисляется плата за один дополнительный процессор оркестровки приложений и один процессор интерактивной разработки. Также взимается плата за работу хранилища приложений. Плата за надежные резервные копии приложений не взимается.
Создание приложений Apache Flink
Создание кода для приложений, использующих Apache Flink
DataStream <GameEvent> rawEvents = env.addSource(
New KinesisStreamSource(“input_events”));
DataStream <UserPerLevel> gameStream =
rawEvents.map(event - > new UserPerLevel(event.gameMetadata.gameId,
event.gameMetadata.levelId,event.userId));
gameStream.keyBy(event -> event.gameId)
.keyBy(1)
.window(TumblingProcessingTimeWindows.of(Time.minutes(1)))
.apply(...) - > {...};
gameStream.addSink(new KinesisStreamSink("myGameStateStream"));
- Источники потоковых данных: Amazon Managed Streaming for Apache Kafka (Amazon MSK), Amazon Kinesis Data Streams Целевые объекты или получатели данных: Amazon Kinesis Data Streams,
- Amazon Kinesis Data Firehose, Amazon DynamoDB, Amazon Elasticsearch Service и Amazon S3 (посредством интеграции файловых получателей данных)
Apache Flink также включает другие коннекторы, в том числе для Apache Kafka, Apache Cassandra, Elasticsearch и других систем.
Да. Приложения Apache Flink сервиса Kinesis Data Analytics можно использовать для репликации данных между Amazon Kinesis Data Streams, Amazon MSK и другими системами. В примере, приведенном в документации, продемонстрировано, как читать данные из одной темы Amazon MSK и записывать в другую.
Создание приложений Amazon Kinesis Data Analytics Studio
Вопрос. Как разработать приложение Studio?
Вы можете начать с Amazon Kinesis Data Analytics Studio, Amazon Kinesis Data Streams или консолей Amazon MSK и несколькими щелчками мыши запустить бессерверный блокнот для мгновенного запроса потоков данных и выполнения интерактивной аналитики данных.
Интерактивная аналитика данных. Вы можете написать код в блокноте на SQL, Python или Scala, чтобы взаимодействовать с потоковыми данными и получать ответ на запрос в течение нескольких секунд. Вы можете использовать встроенные визуализации для изучения данных и просматривать аналитические выводы о потоках в режиме реального времени непосредственно в своем блокноте, а также легко разрабатывать приложения для обработки потоков на базе Apache Flink.
Как только ваш код будет готов к запуску в виде рабочего приложения, вы можете одним щелчком мыши перейти к приложению потоковой обработки, обрабатывающему гигабайты данных в секунду без использования серверов.
Приложение для потоковой обработки. Когда вы будете готовы продвигать собственный код в производство, вы можете создать код, нажав на кнопку. Нажмите кнопку Deploy as stream processing application («Развернуть как приложение обработки потока») в интерфейсе блокнота или выполнить одну команду в CLI. Сервис Studio возьмет на себя управление инфраструктурой, необходимой для запуска приложения обработки потока в масштабе, включит автоматическое масштабирование и надежное состояние, также как и в приложении Amazon Kinesis Data Analytics для Apache Flink.
Вопрос. Как выглядит код приложения?
Вы можете написать код в блокноте на предпочитаемом языке SQL, Python или Scala, используя API таблицы Apache Flink. API таблицы – это высокоуровневый абстрактный и реляционный API, который поддерживает сверхмножество возможностей SQL. Он предлагает знакомые операции, такие как выбор, фильтрация, объединение, группировка, агрегирование и т.д., а также специфические понятия для потока, такие как создание окна. Используйте %<интерпретатор>, чтобы указать язык, который будет использоваться в разделе блокнота, и легко переключайтесь между языками. Интерпретаторы – это плагины Apache Zeppelin, которые позволяют разработчикам указывать язык или механизм обработки данных для каждого раздела блокнота. Для улучшения функционала кода вы также можете создавать пользовательские функции и ссылаться на них.
Вопрос. Какие операции SQL поддерживаются?
Вы можете выполнять такие операции SQL, как сканирование и фильтрация (SELECT, WHERE), агрегирование (GROUP BY,GROUP BY WINDOW, HAVING), набор (UNION, UNIONALL, INTERSECT, IN, EXISTS), порядок (ORDER BY, LIMIT), объединение (INNER, OUTER, временное окно – BETWEEN, AND, объединение с временными таблицами – таблицами, которые отслеживают изменения во течение времени), Top N, дедупликация и распознавание шаблонов. Некоторые из этих запросов, например, GROUP BY, OUTER JOIN и Top N, – «обновление результатов» для потоковых данных, а значит результаты постоянно обновляются по мере обработки потоковых данных. Также поддерживаются другие операторы DDL, такие как CREATE, ALTER и DROP. Полный список запросов и образцов см. по ссылке https://ci.apache.org/projects/flink/flink-docs-release-1.11/dev/table/sql/queries.html.
Вопрос. Как поддерживаются Python и Scala?
API таблицы Apache Flink поддерживает Python и Scala посредством языковой интеграции с использованием строк Python и выражений Scala. Поддерживаемые операции похожи на аналогичные операции SQL, включая выбор, порядок, группировку, объединение, фильтрацию и создание окон. Полный список операций и примеры приведены в нашей документации.
Вопрос. Какие версии Apache Flink и Apache Zeppelin поддерживаются?
Узнать больше о поддерживаемых версиях Apache Flink можно на странице примечаний к выпуску Аналитики данных Amazon Kinesis. На этой странице также указаны версии Apache Zeppelin, Apache Beam, Java, Python и AWS SDK, которые поддерживает Аналитика данных Amazon Kinesis.
Вопрос. Какие типы интеграции поддерживаются по умолчанию в приложениях Kinesis Data Analytics Studio?
- Источники данных: Amazon Managed Streaming for Apache Kafka (Amazon MSK), Amazon Kinesis Data Streams, Amazon S3
- Целевые объекты или получатели: Amazon MSK, Amazon Kinesis Data Streams и Amazon S3
Вопрос. Поддерживается ли возможность настраиваемой интеграции?
Вы можете настроить иные интеграции с помощью нескольких дополнительных шагов и строк кода Apache Flink (Python, Scala или Java), чтобы указать соединения со всеми поддерживаемыми интеграциями Apache Flink, включая такие целевые объекты, как Amazon OpenSearch Service, Amazon ElastiCache for Redis, Amazon Aurora, Amazon Redshift, Amazon DynamoDB, Amazon Keyspaces и другие. Исполняемые файлы для пользовательских коннекторов можно прикрепить при создании или настройке приложения Studio.
Вопрос. Мне следует разрабатывать с помощью Kinesis Data Analytics Studio или Kinesis Data Analytics SQL?
Мы рекомендуем начать работу с Kinesis Data Analytics Studio, поскольку этот сервис предлагает более полный процесс обработки потоков с однократной обработкой. Kinesis Data Analytics Studio предлагает разработку приложений для потоковой обработки на выбранном вами языке (SQL, Python и Scala), масштабирует обработку до ГБ/с, поддерживает длительные вычисления в течение нескольких часов или даже дней, выполняет обновление кода за секунды, обрабатывает несколько входящих потоков одновременно и работает с различными типами потоков, включая Amazon Kinesis Data Streams и Amazon MSK.
Создание приложений Kinesis Data Analytics SQL
Для новых проектов рекомендуется использовать обновленную студию Kinesis Data Analytics вместо Kinesis Data Analytics для приложений SQL. Сервис Kinesis Data Analytics Studio сочетает простоту использования и широкие аналитические возможности, позволяя создавать сложные приложения для обработки потоков за считанные минуты.
Настройка входных данных для SQL‑приложений
Создание кода SQL‑приложений
- Всегда используйте оператор SELECT в контексте оператора INSERT. При выборе строки вставляйте результаты в другой поток внутри приложения.
- Используйте оператор INSERT в контексте «закачки» данных.
- «Закачка» данных используется, чтобы сделать непрерывными работу оператора INSERT и запись данных в поток внутри приложения.
CREATE OR REPLACE STREAM "DESTINATION_SQL_STREAM" (
ticker_symbol VARCHAR(4),
change DOUBLE,
price DOUBLE);
CREATE OR REPLACE PUMP "STREAM_PUMP" AS
INSERT INTO "DESTINATION_SQL_STREAM"
SELECT STREAM ticker_symbol, change, price
FROM "SOURCE_SQL_STREAM_001";
Настройка целевых объектов в SQL‑приложениях
Сравнение с другими решениями для обработки потоковых данных
Соглашение об уровне обслуживания
Вопрос: Что гарантирует соглашение об уровне обслуживания Amazon Kinesis Data Analytics?
Соглашение об уровне обслуживания (SLA) Amazon Kinesis Data Analytics гарантирует бесперебойную ежемесячную работу сервиса Amazon Kinesis Data Analytics на уровне не менее 99,9 %.
Вопрос. Как узнать, могу ли я претендовать на компенсацию по соглашению об уровне обслуживания (SLA)?
Компенсация по соглашению об уровне обслуживания Amazon Kinesis Data Analytics по условиям нашего соглашения об уровне обслуживания в отношении Amazon Kinesis Data Analytics предоставляется, если бесперебойная ежемесячная работа сервиса в рамках одного региона в нескольких зонах доступности, в которых запущено задание, составила менее 99,9 % в течение любого оплачиваемого месяца. С условиями и положениями соглашения об уровне обслуживания, а также подробностями оформления заявки на компенсацию можно ознакомиться на странице сведений о SLA в отношении Amazon Kinesis.
Начать работу с Amazon Kinesis Data Analytics

Из этого пошагового руководства вы узнаете, как использовать Amazon Kinesis Data Analytics для работы с SQL илиApache Flink.

Создайте свое первое приложение потоковой передачи в консоли Amazon Kinesis Data Analytics.