- Аналитика›
- Управляемый сервис Amazon для Apache Flink›
- Вопросы и ответы
Часто задаваемые вопросы об Управляемом сервисе Amazon для Apache Flink
Общие вопросы
Открыть всеУправляемый сервис Amazon для Apache Flink позволяет преобразовывать и анализировать потоковые данные в реальном времени с помощью Apache Flink. Apache Flink – это платформа и механизм с открытым исходным кодом для обработки потоков данных. Управляемый сервис Amazon для Apache Flink упрощает создание приложений Apache Flink, управление ими и интеграцию таких приложений с другими сервисами AWS.
Управляемый сервис Amazon для Apache Flink обеспечивает все необходимое для непрерывной работы приложений потоковой передачи и выполняет автоматическое масштабирование в зависимости от объема и скорости поступления входных данных. Управляемый сервис Amazon для Apache Flink избавляет от необходимости управлять серверами, минимальных выплат и расходов на настройку. Вы платите только за ресурсы, используемые приложениями потоковой передачи.
Управляемый сервис Amazon для Apache Flink можно использовать в различных ситуациях для непрерывной обработки данных и получения аналитической информации за считанные секунды или минуты, без ожидания длиной в несколько дней либо недель. Управляемый сервис Amazon для Apache Flink позволяет быстро создавать комплексные приложения потоковой обработки данных для анализа журналов или навигации по сайту, Интернета вещей (IoT), рекламных технологий, игр и многого другого. Четыре наиболее распространенных примера использования: извлечение, преобразование и загрузка потоковых данных (ETL), непрерывная генерация метрик, создание аналитических систем с быстрым откликом в режиме реального времени и интерактивная отправка запросов в потоки данных.
Извлечение, преобразование и загрузка (ETL) потоковых данных
Приложения извлечения, преобразования и загрузки (ETL) потоковых данных позволяют в режиме реального времени очищать, обогащать, систематизировать и преобразовывать необработанные данные перед их загрузкой в озеро данных или хранилище данных, сокращая или устраняя этапы пакетной ETL‑обработки. Эти приложения могут объединять небольшие записи в файлы большего размера перед их доставкой и выполнять сложные операции объединения потоков и таблиц. Например, можно создать приложение, которое непрерывно считывает данные датчиков Интернета вещей, хранящиеся в Amazon Managed Streaming для Apache Kafka (Amazon MSK), упорядочивает данные по типам датчиков, удаляет дубликаты данных, нормализует данные в соответствии с указанной схемой и затем доставляет данные в Amazon Simple Storage Service (Amazon S3).
Непрерывная генерация метрик
Приложения для непрерывной генерации метрик позволяют отслеживать и понимать тенденции изменения данных с течением времени. Такие приложения могут объединять потоковые данные в блоки критически важной информации и эффективно интегрировать ее с базами отчетных данных и сервисами мониторинга для обслуживания приложений и пользователей в режиме реального времени. Управляемый сервис Amazon для Apache Flink позволяет использовать код Apache Flink (на Java, Scala, Python или SQL) для непрерывной генерации аналитики временных рядов во временных окнах. Например, можно создать обновляемую в режиме реального времени турнирную таблицу для мобильной игры, вычисляя лучших игроков каждую минуту, а затем отправляя эти данные в Amazon DynamoDB. Или можно отслеживать входящий трафик веб‑сайта, подсчитывая количество уникальных посетителей сайта каждые пять минут и отправляя обработанные результаты в Amazon RedShift.
Аналитические системы с быстрым откликом, работающие в режиме реального времени
Аналитические приложения с быстрым откликом, работающие в режиме реального времени, отправляют оповещения и предупреждения в режиме реального времени, когда определенные показатели достигают заданных пороговых значений или (в более сложных случаях) когда приложение обнаруживает некие аномалии с помощью алгоритмов машинного обучения (ML). Такие приложения позволяют в режиме реального времени мгновенно реагировать на изменения в бизнесе, например прогнозировать отказ пользователя от мобильного приложения и выявлять системы, работа которых ухудшается. К примеру, приложение может вычислять доступность или коэффициент успешного использования предназначенного для клиентов интерфейса API с течением времени, а затем отправлять результаты в Amazon CloudWatch. Можно также создать другое приложение для поиска событий, отвечающих определенным критериям, а затем автоматически отправлять оповещения соответствующим клиентам с помощью Потоков данных Amazon Kinesis и Простого сервиса уведомлений Amazon (Amazon SNS).
Интерактивный анализ потоков данных
Интерактивный анализ позволяет транслировать исследование данных в режиме реального времени. С помощью специальных запросов или программ вы можете изучать потоки из Amazon MSK или Потоков данных Amazon Kinesis и визуализировать данные в этих потоках. Например, вы можете просмотреть в режиме реального времени поведение метрики, вычисляющей среднее значение за период времени, и отправить агрегированные данные в выбранное место назначения. Интерактивный анализ также облегчает последовательную разработку приложений по обработке потоковых данных. Составляемые вами запросы постоянно обновляются при поступлении новой информации. Управляемый сервис Amazon для Студии Apache Flink позволяет развертывать непрерывное выполнение запросов с включенным автоматическим масштабированием и резервным копированием состояния.
Начало работы
Открыть всеДа. С помощью соединителей Apache Flink DataStream приложения Управляемого сервиса Amazon для Apache Flink могут использовать реестр схем AWS Glue – бессерверную функцию AWS Glue. Вы можете интегрировать Apache Kafka, Amazon MSK и Потоки данных Amazon Kinesis в качестве приемника или источника с рабочими нагрузками Управляемого сервиса Amazon для Apache Flink. Ознакомьтесь с руководством для разработчиков AWS Glue Schema Registry, чтобы начать и узнать больше.
Основные понятия
Открыть всеПриложение — это объект Управляемого сервиса Amazon для Apache Flink, с которым вы работаете. Приложение Управляемого сервиса Amazon для Apache Flink непрерывно считывает и обрабатывает потоковые данные в реальном времени. Используя язык, поддерживаемый Apache Flink, можно создать код приложения для обработки входящих потоковых данных и получения результатов. Затем Управляемый сервис Amazon для Apache Flink записывает выходные данные в настроенные целевые объекты.
Каждое приложение состоит из трех основных компонентов.
- Входящие данные – источник потоковых данных для приложения. В конфигурации входящих данных сопоставляются источники потоковой передачи с потоками данных. Данные поступают из ваших источников данных в ваши потоки данных. Данные из этих потоков обрабатываются с помощью программного кода, а обработанные данные передаются в последующие потоки данных или в целевые объекты. Добавление входящих данных происходит в коде для приложений Apache Flink и блокнотов Студии, а также с помощью интерфейса API Управляемого сервиса Amazon для приложений Apache Flink.
- Код приложения – последовательность операторов Apache Flink, которые обрабатывают входящие данные и формируют исходящие. В простейшем виде код приложения может состоять из одного оператора Apache Flink, который считывает данные из потока, связанного с источником потоковой передачи, и записывает в другой поток, связанный с исходящими данными. Для блокнота Студии это может быть простой запрос SQL SELECT в Flink, результаты которого отобразятся в контексте внутри блокнота. Код Apache Flink можно писать на поддерживаемых языках для приложений Управляемого сервиса Amazon для Apache Flink или блокнотов Студии.
- После этого можно дополнительно настроить выходные данные приложения для их сохранения во внешнем целевом объекте. Добавление исходящих данных происходит в коде приложения для Управляемого сервиса Amazon для Apache Flink и блокнотов Студии.
Управление приложениями
Открыть всеAWS предоставляет различные инструменты, которые можно использовать для наблюдения за приложениями Управляемого сервиса Amazon для Apache Flink, включая доступ к Flink Dashboard для приложений Apache Flink. Некоторые из этих инструментов можно настроить так, чтобы они осуществляли наблюдение автоматически. Дополнительные сведения о наблюдении за приложениями приведены в следующих руководствах для разработчиков:
- Мониторинг управляемого сервиса Amazon для Apache Flink в Руководстве разработчика по управляемому сервису Amazon для Apache Flink.
- Мониторинг управляемого сервиса Amazon для Apache Flink в руководстве разработчика по управляемому сервису Amazon для Apache Flink Studio.
Управляемому сервису Amazon для Apache Flink требуются разрешения на чтение записей из потоковых источников данных, определенных для приложения. Кроме того, Управляемому сервису Amazon для Apache Flink необходимы разрешения на запись исходящих данных приложения в целевые объекты, указанные в настройках исходящих данных приложения. Эти разрешения предоставляются путем создания ролей Управления идентификацией и доступом AWS (IAM), которые может принять Управляемый сервис Amazon для Apache Flink. Разрешения, которые предоставлены для конкретной роли, определяют, что именно Управляемый сервис Amazon для Apache Flink может делать, когда он принимает эту роль. Дополнительные сведения приведены в следующих руководствах для разработчиков:
- Предоставление разрешений в руководстве разработчика по предоставлению разрешений в управляемом сервисе Amazon для Apache Flink.
- Предоставление разрешений в руководстве разработчика по предоставлению разрешений в управляемом сервисе Amazon для Apache Flink Studio.
Управляемый сервис Amazon для Apache Flink эластично масштабирует приложение, чтобы его ресурсы соответствовали скорости поступления данных потока‑источника и уровню сложности запросов для большинства сценариев. Управляемый сервис Amazon для Apache Flink выделяет ресурсы в виде KPU Amazon. Один KPU предоставляет 1 виртуальный ЦП и 4 ГБ памяти.
Для приложений Apache Flink и блокнотов Студии Управляемый сервис Amazon для Apache Flink выделяет 50 ГБ хранилища на каждый KPU работающего приложения. Это хранилище используется приложением для создания контрольных точек, при этом доступ к нему можно получить с помощью временного диска. Контрольная точка представляет собой актуальную резервную копию работающего приложения, с помощью которой выполняется немедленное восстановление в случае сбоя приложения. Контролировать параллельное выполнение задач приложения Управляемого сервиса Amazon для Apache Flink (таких как чтение из источника данных или выполнение оператора) также можно с помощью параметров Parallelism и ParallelismPerKPU в API. Параметр Parallelism определяет число одновременно работающих инстансов задачи. У всех работающих операторов, источников и получателей данных параметр Parallelism по умолчанию имеет значение «один». Параметр ParallelismPerKPU определяет число параллельных задач, которые могут быть запланированы для каждого KPU того или иного приложения; значение по умолчанию равно «один». Дополнительные сведения приведены в разделе «Масштабирование» руководства для разработчиков по Управляемому сервису Amazon для Apache Flink.
Сведения о передовых методах работы с Apache Flink см. в разделе «Передовые практики» руководства разработчика Amazon Managed Service для Apache Flink. В этом разделе приведены рекомендации по повышению отказоустойчивости и производительности, ведению журналов, написанию кода и многое другое.
Дополнительные сведения и рекомендации по Управляемому сервису Amazon для Студии Apache Flink приведены в разделе «Рекомендации» руководства разработчиков по Управляемому сервису Amazon для Студии Apache Flink. Помимо рекомендаций, в этом разделе рассматриваются примеры приложений SQL, Python и Scala, требования к развертыванию кода непрерывно работающего приложения потоковой обработки, производительность, ведение журнала и многое другое.
Да. Вы можете получить доступ к ресурсам за пределами облака Amazon VPC. О том, как настроить приложение для доступа к VPC, можно узнать в разделе Использование Amazon VPC руководства разработчика Amazon Managed Service для Apache Flink.
Приложения Управляемого сервиса Amazon для Apache Flink и блокноты Управляемого сервиса Amazon для Студии Apache Flink, настроенные на доступ к ресурсам в конкретном облаке VPC, по умолчанию не имеют доступа к Интернету. О том, как настроить доступ к Интернету для приложения, можно узнать в разделе «Доступ к Интернету и сервисам» Руководства разработчика Amazon Managed Service for Apache Flink.
Цены и оплата
Открыть всеПри использовании Управляемого сервиса Amazon для Apache Flink вы платите только за то, что используете. При использовании Управляемого сервиса Amazon для Apache Flink не требуется выделять ресурсы или вносить авансовые платежи.
Оплата начисляется на почасовой основе, исходя из числа Amazon KPU, использованных при работе приложения потоковой передачи. KPU представляет собой единицу ресурса потоковой обработки, которая включает 1 виртуальный ЦП и 4 ГБ оперативной памяти. Управляемый сервис Amazon для Apache Flink автоматически масштабирует количество KPU, необходимых приложению для обработки потоков данных, по мере изменения требований к памяти и вычислительной мощности в зависимости от сложности обработки и скорости обработки потоковых данных.
При оркестрации приложений Apache Flink и Apache Beam взимается дополнительная плата за единицу KPU на каждое приложение. При использовании приложений Apache Flink и Apache Beam также взимается плата за хранилище запущенного приложения и за надежные резервные копии приложения. Хранилище запущенного приложения используется для обработки данных с фиксацией состояния в Управляемом сервисе Amazon для Apache Flink и оплачивается с учетом количества ГБ в месяц. Создание постоянных резервных копий приложений (с оплатой по количеству использованных гигабайтов в месяц) предоставляется в качестве дополнительной возможности и позволяет выполнять восстановление на момент времени.
В Управляемом сервисе Amazon для Apache Flink в режиме разработки или в интерактивном режиме начисляется плата за один дополнительный KPU оркестрации приложений и один KPU интерактивной разработки. Также взимается плата за работу хранилища приложений. Плата за надежные резервные копии приложений не взимается.
Дополнительные сведения о ценах см. на странице цен на Amazon Managed Service для Apache Flink.
Для работающих приложений Apache Flink и Apache Beam в Управляемом сервисе Amazon для Apache Flink плата начисляется минимум за 2 KPU и 50 ГБ хранилища приложений.
Для блокнотов Управляемого сервиса Amazon для Студии Apache Flink плата начисляется минимум за 3 KPU и 50 ГБ хранилища приложений.
Создание приложений Apache Flink
Открыть всеApache Flink — это фреймворк и движок с открытым исходным кодом для потоковой и пакетной обработки данных. Эта платформа упрощает создание приложений потоковой передачи, поскольку предоставляет мощные операторы и решает основные проблемы потоковой передачи, такие как обработка дубликатов. Apache Flink обеспечивает распределение данных, обмен данными и отказоустойчивость для выполнения распределенных вычислений над потокам данных.
Сначала можно загрузить библиотеки с открытым исходным кодом, включая SDK AWS, Apache Flink и соединители для сервисов AWS. Инструкции по загрузке библиотек и созданию первого приложения приведены в Руководстве разработчика Amazon Managed Service for 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 для Apache Flink поддерживает все операторы Apache Flink, которые можно использовать для решения самых разных задач, включая сопоставление, KeyBy, агрегации, окна, соединения и многое другое. Например, оператор сопоставления позволяет выполнять произвольную обработку, беря один элемент из входящего потока данных и создавая другой элемент. Оператор KeyBy логически упорядочивает данные, используя заданный ключ, позволяющий обрабатывать одинаковые точки данных вместе. Агрегирование выполняет обработку по нескольким ключам, таким как сумма, мин. и макс. Оператор Window Join объединяет два потока данных по заданному ключу и интервалу.
Если этих операторов недостаточно для приложения, можно создать собственные операторы. Другие примеры можно найти в разделе «Операторы» руководства разработчиков по Управляемому сервису Amazon для Apache Flink. Полный список операторов Apache Flink можно найти в документации Apache Flink.
Можно настроить встроенные возможности интеграции, предоставляемые Apache Flink, с минимальными требованиями к коду или создать собственную интеграцию для подключения практически к любому источнику данных. Библиотеки с открытым исходным кодом на основе Apache Flink поддерживают потоковые источники и целевые объекты (получатели) для выполнения доставки данных. Это также подразумевает поддержку дополнения данных через асинхронные соединители ввода-вывода. Среди соединителей выделим приведенные ниже.
- Источники потоковых данных: Управляемая потоковая передача Amazon для Apache Kafka (Amazon MSK), Потоки данных Amazon Kinesis. Целевые объекты или получатели данных: Потоки данных Amazon Kinesis,
- Данные Amazon Kinesis Firehose, Amazon DynamoDB, Amazon Elasticsearch Service и Amazon S3 (посредством интеграции файловых получателей данных).
Да. Приложения Управляемого сервиса Amazon для Apache Flink можно использовать для репликации данных между Потоками данных Amazon Kinesis, Amazon MSK и другими системами. Пример, приведенный в нашей документации, показывает, как читать из одной темы Amazon MSK и писать в другую.
Добавить источник или целевой объект в свое приложение можно с помощью набора примитивов, позволяющих осуществлять чтение из файлов, каталогов, сокетов и прочих источников, к которым можно получить доступ через Интернет, а также запись в них. Apache Flink предоставляет эти примитивы для источников и приемников данных. Примитивы поставляются с конфигурациями, которые позволяют осуществлять непрерывное или однократное чтение и запись данных в асинхронном или синхронном режиме, а также многое другое. Например, можно настроить приложение для непрерывного чтения данных из Amazon S3, расширив существующую интеграцию с источником на основе файлов.
Приложения Управляемого сервиса Amazon для Apache Flink используют модель доставки «строго однократно», если приложение построено с использованием идемпотентных операторов, включая операторы источников и получателей данных. Это означает, что обработанные данные оказывают влияние на последующие результаты один и только один раз.
По умолчанию приложения Управляемого сервиса Amazon для Apache Flink использует семантику Apache Flink «строго однократно». Приложение поддерживает семантику обработки «строго однократно», если это приложение создано с использованием источников, операторов и получателей данных, использующих семантику Apache Flink «строго однократно».
Управляемый сервис Amazon для Apache Flink автоматически создает резервную копию состояния работающего приложения с помощью контрольных точек и снимков состояния. Контрольные точки сохраняют текущее состояние и позволяют приложениям Управляемого сервиса Amazon для Apache Flink восстанавливать его для обеспечения той же семантики, что и при бесперебойном выполнении. Контрольные точки используют хранилище работающего приложения. Контрольные точки для приложений Apache Flink предоставляются с помощью функции контрольных точек Apache Flink. Снимки состояния сохраняют точку восстановления приложений на определенный момент времени и используют надежные резервные копии приложений. Снимки состояния аналогичны точкам сохранения Flink.
Чтобы узнать больше о поддерживаемых версиях Apache Flink, посетите страницу примечаний к выпуску Amazon Managed Service для Apache Flink. На этой странице также указаны версии Apache Beam, Java, Scala, Python и SDK AWS, которые поддерживает Управляемый сервис Amazon для Apache Flink.
Да, Amazon Managed Service для Apache Flink поддерживает потоковые приложения, созданные с использованием Apache Beam. Вы можете создавать потоковые приложения Apache Beam на Java и запускать их на различных механизмах и сервисах, включая использование Apache Flink с помощью Управляемого сервиса Amazon для Apache Flink. Информацию о поддерживаемых версиях Apache Flink и Apache Beam можно найти в руководстве разработчика Amazon Managed Service для Apache Flink.
Создание приложений Управляемого сервиса Amazon для Студии Apache Flink в управляемом блокноте
Открыть всеВы можете начать с Управляемого сервиса Amazon для Студии Apache Flink, Потоков данных Amazon Kinesis или консолей Amazon MSK и за несколько шагов запустить бессерверный блокнот для мгновенного запроса потоков данных и выполнения интерактивной аналитики данных.
Интерактивная аналитика данных: в записной книжке можно писать код на языке SQL, Python или Scala для работы с потоковыми данными, а время ответа на запросы исчислялось секундами. Вы можете использовать встроенные визуализации для изучения данных, просмотра аналитических выводов о потоках в режиме реального времени непосредственно в своем блокноте, а также легко разрабатывать приложения для обработки потоков на базе Apache Flink.
Как только ваш код будет готов к запуску в виде рабочего приложения, вы можете за один шаг перейти к приложению потоковой обработки, обрабатывающему гигабайты данных в секунду без использования серверов.
Приложение для потоковой обработки: когда вы будете готовы продвигать свой код в рабочую среду, вы можете создать его, нажав «Развернуть как приложение для потоковой обработки» в интерфейсе ноутбука или выполнив одну команду в интерфейсе командной строки. Студия берет на себя управление всей инфраструктурой, необходимой для запуска приложения потоковой обработки в большом масштабе с автомасштабированием и включенным режимом надежного состояния, как и в приложении Управляемого сервиса Amazon для Apache Flink.
Можно выполнять следующие операции 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. Полный список запросов и примеры см. в документации Apache Flink Queries.
API таблицы Apache Flink поддерживает Python и Scala посредством языковой интеграции с использованием строк Python и выражений Scala. Поддерживаемые операции похожи на аналогичные операции SQL, включая выбор, порядок, группировку, объединение, фильтрацию и создание окон. Полный список операций и примеров приведен в нашем руководстве для разработчиков.
Чтобы узнать больше о поддерживаемых версиях Apache Flink, посетите страницу примечаний к выпуску Amazon Managed Service для Apache Flink. На этой странице также представлены версии Apache Zeppelin, Apache Beam, Java, Scala, Python и AWS SDK, поддерживаемые Управляемым сервисом Amazon для Apache Flink.
- Источники данных: Управляемая потоковая передача Amazon для Apache Kafka (Amazon MSK), Потоки данных Amazon Kinesis, Amazon S3
- Целевые объекты или получатели: Amazon MSK, Amazon Kinesis Data Streams и Amazon S3
Соглашение об уровне обслуживания
Открыть всеКомпенсация по соглашению об уровне обслуживания Управляемого сервиса Amazon для Apache Flink по условиям соглашения об уровне обслуживания в отношении Управляемого сервиса Amazon для Apache Flink предоставляется, если бесперебойная ежемесячная работа сервиса в рамках одного региона AWS в нескольких зонах доступности, в которых запущено задание, составила менее 99,9 % в течение любого оплачиваемого месяца. Полную информацию обо всех положениях и условиях соглашения об уровне обслуживания, а также о том, как подать заявку, см. на странице сведений об соглашении об уровне обслуживания Amazon Managed Service for Apache Flink.
Нашли то, что искали сегодня?
Скажите, как улучшить качество контента на наших страницах