Amazon Managed Service for Apache Flink 入门(Python) - Managed Service for Apache Flink
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

Amazon Managed Service for Apache Flink 入门(Python)

本节向您介绍使用 Python 和表 API 的 Managed Service for Apache Flink的基本概念。它介绍了可用于创建和测试应用程序的选项。它还提供了相应的说明以安装所需的工具,以完成本指南中的教程和创建第一个应用程序。

审核 Managed Service for Apache Flink 应用程序组件

注意

Amazon Managed Service for Apache Flink Studio 支持所有 Apache Flink API。根据您选择的 API,应用程序的结构略有不同。在 Python 中开发 Apache Flink 应用程序时,一种流行的方法是使用 Python 代码中嵌入的 SQL 来定义应用程序流程。这是我们在以下入门教程中遵循的方法。

为了处理数据,Managed Service for Apache Flink 应用程序使用 Python 脚本定义数据流程,该流程使用 Apache Flink 运行时系统处理输入和生成输出。

典型的 Managed Service for Apache Flink 应用程序包含以下组件:

  • 运行时系统属性:您可以使用运行时属性 配置应用程序,而无需重新编译应用程序代码。

  • 源:应用程序使用来自一个或多个的数据。源使用连接器从外部系统(例如 Kinesis 数据流或 Amazon MSK 主题)读取数据。您也可以使用特殊连接器从应用程序内部生成数据。使用 SQL 时,应用程序将源定义为源表

  • 转换:应用程序使用一个或多个可以筛选、丰富或聚合数据的转换来处理数据。使用 SQL 时,应用程序将转换定义为 SQL 查询。

  • 接收器:应用程序通过接收器将数据发送到外部源。接收器使用连接器将数据发送到外部系统,例如 Kinesis 数据流、Amazon MSK 主题、Amazon MSK 主题、Amazon S3 存储桶或关系数据库。也可以使用特殊的连接器,仅出于开发目的打印输出。使用 SQL 时,应用程序会将接收器定义为接收器表,您可以在其中插入结果。有关更多信息,请参阅 在 Managed Service for Apache Flink 中使用接收器写入数据

您的 Python 应用程序可能还需要外部依赖项,例如其他 Python 库或您的应用程序使用的任何 Flink 连接器。打包应用程序时,必须包含应用程序所需的所有依赖项。本教程演示如何包含连接器依赖项,以及如何打包应用程序以部署到 Amazon Managed Service for Apache Flink 上。

满足先决条件

要完成本教程,您必须满足以下条件:

  • Python 3.11,最好使用像 VirtualEnv(venv)CondaMiniconda 这样的独立环境。

  • 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)
  • Apache Maven - 如果您尚未安装 Apache Maven,请安装它。有关更多信息,请参阅安装 Apache Maven

    • 要测试您的 Apache Maven 安装,请使用以下命令:

      $ mvn -version
注意

尽管您应用程序是用 Python 编写的,但 Apache Flink 在 Java 虚拟机(JVM)中运行。它将大部分依赖项(例如 Kinesis 连接器)作为 JAR 文件分发。要管理这些依赖项并将应用程序打包为 ZIP 文件,请使用 Apache Maven。本教程介绍如何执行此操作。

警告

我们建议您使用 Python 3.11 进行本地开发。这与 Amazon Managed Service for Apache Flink 在 Flink 运行时 1.19 中使用的 Python 版本相同。

在 Python 3.12 上安装 Python Flink 库 1.19 可能会失败。

如果您的计算机上默认安装另一个 Python 版本,我们建议您使用 Python 3.11 创建独立环境,例如 VirtualEnv。

用于本地开发的 IDE

我们建议您使用诸如 PyCharmVisual Studio Code 之类的开发环境来开发和编译应用程序。

然后,完成 Amazon Managed Service for Apache Flink 入门(DataStream API) 的前两个步骤:

要开始使用,请参阅创建应用程序