

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

# Managed Service for Apache Flink 的 Python 示例
<a name="examples-new-python"></a>

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

**注意**  
大多数示例都设计为在本地、开发计算机和您选择的 IDE 上运行，以及在 Amazon Managed Service for Apache Flink 上运行。它们演示可用于传递应用程序参数的简单机制，以及如何正确设置依赖项，以便在不做任何更改的情况下在两个环境中运行应用程序。

**项目依赖项**

大多数 PyFlink 示例都需要一个或多个依赖项作为 JAR 文件，例如 Flink 连接器。然后，在 Amazon Managed Service for Apache Flink 上部署时，必须将这些依赖项与应用程序打包在一起。

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

**示例**

## 开始使用 PyFlink
<a name="getting-started-pyflink"></a>

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

代码示例：[GettingStarted](https://github.com/dzikosc/amazon-managed-service-for-apache-flink-examples/tree/main/python/GettingStarted)

## 添加 Python 依赖项
<a name="add-python-dependencies"></a>

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

代码示例：[PythonDependencies](https://github.com/aws-samples/amazon-managed-service-for-apache-flink-examples/tree/main/python/PythonDependencies)

## 使用窗口聚合 (API) DataStream
<a name="windowing-aggregations-python"></a>

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

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

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

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

1. 基于事件时间的滚动窗口

代码示例：[Windowing](https://github.com/aws-samples/amazon-managed-service-for-apache-flink-examples/tree/main/python/Windowing)

## 使用 S3 接收器
<a name="s3-sink-python"></a>

此示例说明如何使用 Python 应用程序中所嵌入 SQL 将输出作为 JSON 文件写入 Amazon S3。必须为 S3 接收器启用检查点功能，才能向 Amazon S3 写入和轮换文件。

代码示例：[S3Sink](https://github.com/aws-samples/amazon-managed-service-for-apache-flink-examples/tree/main/python/S3Sink)

## 使用用户定义的函数（UDF）
<a name="UDF-python"></a>

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

代码示例：[UDF](https://github.com/aws-samples/amazon-managed-service-for-apache-flink-examples/tree/main/python/UDF)

## 使用 Amazon Data Firehose 接收器
<a name="Firehose-sink-python"></a>

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

代码示例：[FirehoseSink](https://github.com/aws-samples/amazon-managed-service-for-apache-flink-examples/tree/main/python/FirehoseSink)