

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 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。如需特定指示，請參閱每個範例中包含的 README。

**範例**

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

此範例示範使用內嵌在 Python 程式碼中的 SQL 的 PyFlink 應用程式的基本結構。此專案也為包含連接器等 JAR 相依性的任何 PyFlink 應用程式提供骨架。README 區段提供如何在本機執行 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，或包含 PyArrow 等 C 程式庫的複雜相依性。

程式碼範例：[PythonDependencies](https://github.com/aws-samples/amazon-managed-service-for-apache-flink-examples/tree/main/python/PythonDependencies)

## 使用視窗彙總 (DataStream API)
<a name="windowing-aggregations-python"></a>

此範例示範在 Python 應用程式中內嵌的 SQL 中的四種視窗化彙總類型。

1. 根據處理時間的滑動視窗

1. 根據事件時間的滑動視窗

1. 根據處理時間的輪轉時段

1. 根據事件時間的輪轉時段

程式碼範例：[視窗調整](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，將輸出寫入 Amazon S3 做為 JSON 檔案。您必須啟用 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)