适用于 Apache Flink 的托管服务的 Python 示例 - Managed Service for Apache Flink

Amazon Managed Service for Apache Flink 之前称为 Amazon Kinesis Data Analytics for Apache Flink。

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

适用于 Apache Flink 的托管服务的 Python 示例

以下示例演示如何创建用 Python 编写的应用程序。

注意

大多数示例都设计为既可以在本地运行,也可以在您选择的开发计算机上运行,也可以在适用于 Apache Flink 的亚马逊托管服务上运行。IDE它们演示了您可以用来传递应用程序参数的简单机制,以及如何正确设置依赖关系,以便在不做任何更改的情况下在两个环境中运行应用程序。

项目依赖关系

大多数 PyFlink 示例都需要一个或多个以JAR文件形式存在的依赖关系,例如 Flink 连接器。然后,在适用于 Apache Flink 的亚马逊托管服务上部署时,必须将这些依赖项与应用程序打包在一起。

以下示例已经包含了允许您在本地运行应用程序以进行开发和测试以及正确打包所需的依赖项的工具。这个工具需要使用 Java JDK11 和 Apache Maven。有关具体说明,请参阅每个示例中README包含的。

示例

此示例演示了使用SQL嵌入在 Pyton 代码中的 PyFlink 应用程序的基本结构。该项目还为任何包含连接器等JAR依赖关系的 PyFlink 应用程序提供了一个框架。本README节提供了有关如何在本地运行 Python 应用程序进行开发的详细指导。该示例还展示了如何在您的 PyFlink应用程序中包含单个JAR依赖项,即本示例中的 Kinesis SQL 连接器。

代码示例:GettingStarted

此示例说明如何以最通用的方式将 Python 依赖项添加到您的 PyFlink 应用程序中。此方法适用于简单的依赖关系(例如 Boto3)或包含 C 库的复杂依赖项,例如。 PyArrow

代码示例:PythonDependencies

此示例演示了 Python 应用程序中SQL嵌入的四种类型的窗口聚合。

  1. 基于处理时间的滑动窗口

  2. 基于事件时间的滑动窗口

  3. 基于处理时间的翻滚窗口

  4. 基于事件时间的翻滚窗口

代码示例:开窗

此示例演示如何使用SQL嵌入在 Python 应用程序中将输出作为JSON文件写入 Amazon S3。您必须为 S3 接收器启用检查点功能,才能将文件写入和旋转到 Amazon S3。

代码示例:S3Sink

此示例演示如何定义用户定义函数,如何在 Python 中实现该函数,以及如何在 Python 应用程序中运行的SQL代码中使用它。

代码示例:UDF

此示例演示如何使用向 Amazon Data Firehose 发送数据。SQL

代码示例:FirehoseSink