Python 用 Amazon Managed Service for Apache Flink 入門 - Managed Service for Apache Flink

Amazon Managed Service for Apache Flink (Amazon MSF) は、以前は Amazon Kinesis Data Analytics for Apache Flink と呼ばれていました。

Python 用 Amazon Managed Service for Apache Flink 入門

このセクションでは、Python とテーブル API を使用した Apache Flink 向けマネージドサービスの基本概念を紹介します。アプリケーションの作成とテストに使用できるオプションについて説明します。また、このガイドのチュートリアルを完了し、初めてアプリケーションを作成するのに必要なツールのインストール方法についても説明します。

Managed Service for Apache Flink アプリケーションのコンポーネントを確認する

注記

Amazon Managed Service for Apache Flink はすべての Apache Flink API をサポートします。選択する API により、アプリケーションの構造が若干異なります。Python で Apache Flink アプリケーションを開発する一般的なアプローチの 1 つは、Python コードに埋め込まれた SQL を使用してアプリケーションフローを定義することです。これは、次の入門チュートリアルで従うアプローチです。

データを処理するため、Managed Service for Apache Flink アプリケーションでは、Apache Flink ランタイムを使用して入力を処理し、出力を生成するデータフローを定義する Python スクリプトが使用されます。

通常の Managed Service for Apache Flink アプリケーションには、次のコンポーネントがあります。

  • ランタイムプロパティ: ランタイムプロパティ を使用すると、アプリケーションコードを再コンパイルせずにアプリケーションを設定できます。

  • ソース: アプリケーションは 1 つ以上のソースからデータを消費します。ソースはコネクタを使用して、Kinesis データストリームや Amazon MSK トピックなどの外部システムからデータを読み込みます。特殊なコネクタを使用して、アプリケーション内からデータを生成することもできます。SQL を使用すると、アプリケーションによってソースがソーステーブルとして定義されます。

  • 変換: アプリケーションにより、データをフィルタリング、強化、集計できる 1 つ以上の変換を使用してデータが処理されます。SQL を使用すると、アプリケーションによって変換が SQL クエリとして定義されます。

  • シンク: アプリケーションにより、シンクを通じて外部ソースにデータが送信されます。シンクはコネクタを使用して、Kinesis データストリーム、Amazon MSK トピック、Amazon S3 バケット、リレーショナルデータベースなどの外部システムにデータを送信します。特別なコネクタを使用して、開発目的として出力データを出力することもできます。SQL を使用すると、アプリケーションは結果を挿入するシンクテーブルとして、シンクを定義します。詳細については、「Managed Service for Apache Flink でシンクを使用してデータを書き込む」を参照してください。

Python アプリケーションには、外部依存関係が必要な場合もあります (アプリケーションが使用する追加の Python ライブラリや Flink コネクタなど)。アプリケーションをパッケージ化するとき、アプリケーションに必要なすべての依存関係を含める必要があります。このチュートリアルでは、コネクタの依存関係を含める方法、ならびに Amazon Managed Service for Apache Flink にデプロイするためにアプリケーションをパッケージ化する方法について説明します。

前提条件を満たす

このチュートリアルを完了するには、以下が必要です。

  • Python 3.11VirtualEnv (venv)CondaMiniconda などのスタンドアロン環境を使用することが推奨されます。

  • Git クライアント - Git クライアントをまだインストールしていない場合、インストールします。

  • Java Development Kit (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 をまだインストールしていない場合、インストールします。詳細については、「Installing Apache Maven」を参照してください。

    • Apache Maven のインストールをテストするには、次のコマンドを実行します。

      $ mvn -version
注記

アプリケーションは Python で記述されますが、Apache Flink は Java 仮想マシン (JVM) で実行されます。Kinesis コネクタなど、ほとんどの依存関係が JAR ファイルとして配布されます。これらの依存関係を管理してアプリケーションを ZIP ファイルにパッケージ化するには、Apache Maven を使用します。このチュートリアルでは、この方法について説明します。

警告

ローカル開発には、Python 3.11 を使用することをお勧めします。Flink ランタイム 1.19 を使用した Amazon Managed Service for Apache Flink で使用される 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) の概要 の最初の 2 ステップを完了します。

開始するには、「アプリケーションの作成」を参照してください。