适用于 Apache Flink 的亚马逊托管服务(亚马逊 MSF)以前被称为适用于 Apache Flink 的亚马逊 Kinesis Data Analytics。
本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
适用于 Apache Flink 的托管服务的 Python 示例
以下示例演示如何创建用 Python 编写的应用程序。
注意
大多数示例都设计为在本地运行,可以在您的开发计算机和您选择的 IDE 上运行,也可以在适用于 Apache Flink 的亚马逊托管服务上运行。它们演示了您可以用来传递应用程序参数的简单机制,以及如何正确设置依赖关系,以便在不做任何更改的情况下在两个环境中运行应用程序。
项目依赖关系
大多数 PyFlink 示例都需要一个或多个依赖项作为 JAR 文件,例如 Flink 连接器。然后,在适用于 Apache Flink 的亚马逊托管服务上部署时,必须将这些依赖项与应用程序打包在一起。
以下示例已经包含了允许您在本地运行应用程序以进行开发和测试以及正确打包所需的依赖项的工具。这个工具需要使用 Java JDK11 和 Apache Maven。有关具体说明,请参阅每个示例中包含的自述文件。
示例
此示例演示了使用嵌入在 Python 代码中的 SQL 的 PyFlink 应用程序的基本结构。该项目还为任何包含 JAR 依赖关系(例如连接器)的 PyFlink 应用程序提供了一个框架。自述文件部分提供了有关如何在本地运行 Python 应用程序进行开发的详细指导。该示例还展示了如何在您的 PyFlink应用程序中包含单个 JAR 依赖项,即本示例中的 Kinesis SQL 连接器。
代码示例:GettingStarted
此示例说明如何以最通用的方式将 Python 依赖项添加到您的 PyFlink 应用程序中。此方法适用于简单的依赖关系(例如 Boto3)或包含 C 库的复杂依赖项,例如。 PyArrow
代码示例:PythonDependencies
此示例演示了 Python 应用程序中嵌入的 SQL 中四种类型的窗口聚合。
-
基于处理时间的滑动窗口
-
基于事件时间的滑动窗口
-
基于处理时间的翻滚窗口
-
基于事件时间的翻滚窗口
代码示例:开窗
此示例说明如何使用 Python 应用程序中嵌入的 SQL 将输出作为 JSON 文件写入 Amazon S3。您必须为 S3 接收器启用检查点功能,才能将文件写入和旋转到 Amazon S3。
代码示例:S3Sink
此示例演示如何定义用户定义函数,如何在 Python 中实现该函数,以及如何在 Python 应用程序中运行的 SQL 代码中使用它。
代码示例:UDF
此示例演示如何使用 SQL 将数据发送到 Amazon Data Firehose。
代码示例:FirehoseSink