开始使用适用于 Python 的 Apache Flink 的亚马逊托管服务 - Managed Service for Apache Flink

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

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

开始使用适用于 Python 的 Apache Flink 的亚马逊托管服务

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

查看适用于 Apache Flink 的托管服务应用程序的组件

注意

适用于 Apache Flink 的亚马逊托管服务支持所有 Apache Flink。APIs根据API您选择的不同,应用程序的结构略有不同。在 Python 中开发 Apache Flink 应用程序时,一种流行的方法是使用SQL嵌入在 Python 代码中定义应用程序流。这是我们在以下 Gettgin 入门教程中遵循的方法。

为了处理数据,适用于 Apache 的托管服务 Flink 应用程序使用 Python 脚本来定义使用 Apache Flink 运行时处理输入和生成输出的数据流。

适用于 Apache Flink 的典型托管服务应用程序包含以下组件:

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

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

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

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

您的 Python 应用程序可能还需要外部依赖项,例如其他 Python 库或您的应用程序使用的任何 Flink 连接器。打包应用程序时,必须包含应用程序所需的所有依赖项。本教程演示如何包含连接器依赖关系,以及如何打包应用程序以部署到适用于 Apache Flink 的亚马逊托管服务上。

满足先决条件

要完成本教程,您必须具备以下条件:

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

  • 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 进行本地开发。这与 Apache Flink 的亚马逊托管服务在 Flink 运行时 1.19 中使用的 Python 版本相同。

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

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

IDE用于地方发展

我们建议您使用开发环境(例如PyCharmVisual Studio Code)来开发和编译应用程序。

然后,完成以下步骤的前两个步骤开始使用适用于 Apache Flink 的亚马逊托管服务 () DataStream API

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