開始使用適用於 Python 的阿帕奇 Flink 的 Amazon 託管服務 - Managed Service for Apache Flink

Amazon Managed Service for Apache Flink 之前稱為 Amazon Kinesis Data Analytics for Apache Flink。

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

開始使用適用於 Python 的阿帕奇 Flink 的 Amazon 託管服務

本節將為您介紹使用 Python 和資料表API的 Apache Flink 受管理服務的基本概念。它描述了建立和測試應用程式的可用選項。此外,它還提供了相關指示,以協助您安裝完成本指南教學課程以及建立您的第一個應用程式所需要的工具。

檢閱 Apache Flink 應用程式的受管理服務元件

注意

Amazon 阿帕奇 Flink 管理服務支持所有阿帕奇 F APIs link。視API您選擇的項目而定,應用程式的結構會稍有不同。在 Python 中開發 Apache Flink 應用程序時,一種流行的方法是使用SQL嵌入在 Python 代碼中定義應用程序流程。這是我們遵循下面的 Gettgin 開始教程的方法。

為了處理資料,Apache Flink 應用程式的受管理服務會使用 Python 指令碼來定義資料流程,以處理輸入並使用 Apache Flink 執行階段產生輸出。

Apache Flink 應用程序的典型託管服務具有以下組件:

  • 執行期屬性:您可以使用執行期屬性來設定應用程式,無需重新編譯應用程式的程式碼。

  • 來源:應用程序消耗來自一個或多個來源的數據。來源使用連接器從外部系統 (例如 Kinesis 資料串流或 Amazon MSK 主題) 讀取資料。您也可以使用特殊連接器從應用程式內產生資料。當您使用時SQL,應用程式會將來源定義為來源資料表

  • 轉換:應用程式會使用一或多個可篩選、豐富或彙總資料的轉換來處理資料。當您使用時SQL,應用程式會將轉換定義為SQL查詢。

  • 收器:應用程序通過接收器將數據發送到外部源。接收器使用連接器將資料傳送到外部系統,例如 Kinesis 資料串流、Amazon MSK 主題、Amazon S3 儲存貯體或關聯式資料庫。您也可以使用特殊的連接器來列印輸出,以供開發之用。使用時SQL,應用程式會將接收器定義為插入結果的接收器表格。如需詳細資訊,請參閱使用 Managed Service for Apache Flink 中的儲存槽寫入資料

您的 Python 應用程式也可能需要外部相依性,例如其他 Python 程式庫或應用程式使用的任何 Flink 連接器。當您封裝應用程式時,您必須包含應用程式所需的每個相依性。本教學課程示範如何包含連接器相依性,以及如何封裝應用程式,以便在 Apache Flink 的 Amazon 受管服務上進行部署。

符合先決條件

若要完成此自學課程,您必須具備下列項目:

  • Python 3.11,最好使用一個獨立的環境,如 VirtualEnv (venv)康達,或迷你圖標。

  • Git 客戶端-如果您還沒有安裝 Git 客戶端。

  • Java 開發套件 (JDK) 版本 11-安裝 Java JDK 11 並將JAVA_HOME環境變數設定為指向您的安裝位置。如果您沒有 JDK 11,則可以使用Amazon Corretto或我們選擇JDK的任何標準。

    • 若要確認您已JDK正確安裝,請執行下列命令。如果您使用的是 Amazon Corretto 11 以JDK外的輸出將是不同的。確保該版本是 11.x。

      $ java --version openjdk 11.0.23 2024-04-16 LTS OpenJDK Runtime Environment Corretto-11.0.23.9.1 (build 11.0.23+9-LTS) OpenJDK 64-Bit Server VM Corretto-11.0.23.9.1 (build 11.0.23+9-LTS, mixed mode)
  • 阿帕奇 Maven 的-安裝阿帕奇 Maven 的,如果你還沒有這樣做了。如需詳細資訊,請參閱安裝阿帕奇 Maven

    • 若要測試您的 Apache Maven 安裝,請使用下列指令:

      $ mvn -version
注意

雖然你的應用程序是用 Python 編寫的,阿帕奇 Flink 運行在 Java 虛擬機(JVM)。它會將大部分的相依性 (例如 Kinesis 連接器) 以檔案形JAR式分配。若要管理這些相依性,並將應用程式封裝在ZIP檔案中,請使用 Apache Maven。本教程介紹瞭如何做到這一點。

警告

我們建議您使用 Python 3.11 進行本機開發。這與 Amazon 管理服務用於阿帕奇 Flink 與 Flink 運行時 1.19 使用的 Python 版本相同。

在 Python 3.12 上安裝元件庫 1.19 可能會失敗。

如果您的計算機上默認安裝了另一個 Python 版本,我們建議您創建一個獨立的環境,例如 VirtualEnv 使用 Python 3.11。

IDE用於本地發展

我們建議您使用開發環境,例如PyCharmVisual Studio 程式碼來開發和編譯您的應用程式。

然後,完成以下步驟的前兩個步驟開始使用 Amazon Managed Service for Apache Flink (DataStream API)

若要開始使用,請參閱建立應用程式