

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# Python 用 Amazon Managed Service for Apache Flink 入門
<a name="gs-python"></a>

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

**Topics**
+ [Managed Service for Apache Flink アプリケーションのコンポーネントを確認する](#gs-python-table-components)
+ [前提条件を満たす](#gs-python-prerequisites)
+ [Python アプリケーション用の Apache Flink の作成と実行](gs-python-createapp.md)
+ [AWS リソースをクリーンアップする](gs-python-cleanup.md)

## Managed Service for Apache Flink アプリケーションのコンポーネントを確認する
<a name="gs-python-table-components"></a>

**注記**  
Amazon Managed Service for Apache Flink はすべての [Apache Flink API](https://nightlies.apache.org/flink/flink-docs-release-1.19/docs/concepts/overview/#flinks-apis) をサポートします。選択する API により、アプリケーションの構造が若干異なります。Python で Apache Flink アプリケーションを開発する一般的なアプローチの 1 つは、Python コードに埋め込まれた SQL を使用してアプリケーションフローを定義することです。これは、次の入門チュートリアルで従うアプローチです。

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

通常の Managed Service for Apache Flink アプリケーションには、次のコンポーネントがあります。
+ **ランタイムプロパティ:** *ランタイムプロパティ* を使用すると、アプリケーションコードを再コンパイルせずにアプリケーションを設定できます。
+ **ソース:** アプリケーションは 1 つ以上の*ソース*からデータを消費します。ソースは[コネクタ](https://nightlies.apache.org/flink/flink-docs-release-1.19/docs/connectors/table/overview/)を使用して、Kinesis データストリームや Amazon MSK トピックなどの外部システムからデータを読み込みます。特殊なコネクタを使用して、アプリケーション内からデータを生成することもできます。SQL を使用すると、アプリケーションによってソースが*ソーステーブル*として定義されます。
+ **変換:** アプリケーションにより、データをフィルタリング、強化、集計できる 1 つ以上の*変換*を使用してデータが処理されます。SQL を使用すると、アプリケーションによって変換が SQL クエリとして定義されます。
+ **シンク:** アプリケーションにより、*シンク*を通じて外部ソースにデータが送信されます。シンクは[コネクタ](https://nightlies.apache.org/flink/flink-docs-release-1.19/docs/connectors/table/overview/)を使用して、Kinesis データストリーム、Amazon MSK トピック、Amazon S3 バケット、リレーショナルデータベースなどの外部システムにデータを送信します。特別なコネクタを使用して、開発目的として出力データを出力することもできます。SQL を使用すると、アプリケーションは結果を挿入する*シンクテーブル*として、シンクを定義します。詳細については、「[Managed Service for Apache Flink でシンクを使用してデータを書き込む](how-sinks.md)」を参照してください。

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

## 前提条件を満たす
<a name="gs-python-prerequisites"></a>

このチュートリアルを完了するには、以下が必要です。
+ **Python 3.11** は [VirtualEnv (venv)](https://docs.python.org/3.11/library/venv.html)、[Conda](https://docs.conda.io/en/latest/)、[Miniconda](https://docs.anaconda.com/miniconda/) などのスタンドアロン環境を使用することが推奨されます。
+  [Git クライアント](https://git-scm.com/book/en/v2/Getting-Started-Installing-Git) - Git クライアントをまだインストールしていない場合、インストールします。
+ [Java Development Kit (JDK) バージョン 11](https://www.oracle.com/java/technologies/downloads/#java11) - Java JDK 11 をインストールして、`JAVA_HOME` 環境変数がインストール場所を指すように設定します。JDK 11 がない場合、[Amazon Corretto](https://docs.aws.amazon.com/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](https://maven.apache.org/) - Apache Maven をまだインストールしていない場合、インストールします。詳細については、「[Installing Apache Maven](https://maven.apache.org/install.html)」を参照してください。
  + Apache Maven のインストールをテストするには、次のコマンドを実行します。

    ```
    $ mvn -version
    ```

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

**警告**  
ローカル開発には、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**

[PyCharm](https://www.jetbrains.com/pycharm/) や [Visual Studio Code](https://code.visualstudio.com/) などの開発環境を使用して、アプリケーションを開発およびコンパイルすることをお勧めします。

その後、[Amazon Managed Service for Apache Flink (DataStream API) の概要](getting-started.md) の最初の 2 ステップを完了します。
+ [AWS アカウントをセットアップし、管理者ユーザーを作成する](setting-up.md)
+ [AWS Command Line Interface (AWS CLI) のセットアップ](setup-awscli.md)

開始するには、[ アプリケーションの作成](gs-python-createapp.md) を参照してください。