

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

# Managed Service for Apache Flink: 仕組み
<a name="how-it-works"></a>

Managed Service for Apache Flink は、ストリーミングデータを処理するために Apache Flink アプリケーションを使用できるフルマネージド Amazon サービスです。まず、Apache Flink アプリケーションをプログラミングし、次に Managed Service for Apache Flink アプリケーションを作成します。

## Apache Flink アプリケーションのプログラミング
<a name="how-it-works-programming"></a>

Apache Flink アプリケーションは、Apache Flink フレームワークを使用して作成された Java または Scala アプリケーションです。Apache Flink アプリケーションはローカルで作成してビルドします。

アプリケーションは主に「[DataStream API](https://nightlies.apache.org/flink/flink-docs-release-1.15/dev/datastream_api.html)」 または「[テーブル API](https://nightlies.apache.org/flink/flink-docs-release-1.15/dev/table/)」を使用します。他の Apache Flink API も使用できますが、ストリーミングアプリケーションの構築にはあまり使用されません。

2 つの API の特徴は、次のとおりです。

### Datastream API
<a name="how-it-works-prog-datastream"></a>

Apache Flink データストリーム API プログラミングモデルは次の 2 つのコンポーネントに基づいています。
+ 「**データストリーム:**」データレコードの連続フローを構造化して表現したものです。
+ 「**変換演算子:**」1 つ以上のデータストリームを入力として受け取り、1 つ以上のデータストリームを出力として生成します。

DataStream API で作成されたアプリケーションは次のことを行います。
+ データソース (Kinesis ストリームや Amazon MSK トピックなど) からデータを読み取ります。
+ フィルタリング、集約、エンリッチメントなどの変換をデータに適用します。
+ 変換したデータをデータシンクに書き込みます。

DataStream API を使用するアプリケーションは Java または Scala で記述でき、Kinesis データストリーム、Amazon MSK トピック、またはカスタムソースから読み取ることができます。

アプリケーションは「コネクタ」を使用してデータを処理します。Apache Flink は、次のタイプのコネクタを使用しています。
+ 「**ソース**」:外部データの読み取りに使用されるコネクター。
+ 「**シンク**」:外部への書き込みに使用されるコネクター。
+ 「**オペレータ**」:アプリケーション内のデータを処理するために使用されるコネクタ。

一般的なアプリケーションは、ソース付きの少なくとも 1 つのデータストリーム、1 つ以上のオペレータを含むデータストリーム、および少なくとも 1 つのデータシンクで構成されます。

DataStream API の使用の詳細については、「[DataStream API コンポーネントを確認する](how-datastream.md)」 を参照してください。

### Table API
<a name="how-it-works-prog-table"></a>

Apache Flink Table API プログラミングモデルは、以下のコンポーネントに基づいています。
+ 「**テーブル環境:**」1 つ以上のテーブルを作成およびホストするために使用する基礎データへのインターフェースです。
+ 「**テーブル:**」SQL テーブルまたはビューへのアクセスを提供するオブジェクト。
+ 「**テーブルソース:**」Amazon MSK トピックなどの外部ソースからデータを読み取るために使用されます。
+ 「**テーブル関数:**」データ変換に使用される SQL クエリまたは API 呼び出し。
+ 「**テーブルシンク:**」Amazon S3 バケットなどの外部の場所にデータを書き込むために使用されます。

Table API で作成されたアプリケーションは次のことを行います。
+ `Table Source` に接続して `TableEnvironment` を作成します。
+ SQL クエリまたはテーブル API 関数を使用して、`TableEnvironment` にテーブルを作成します。
+ テーブル API または SQL を使用してテーブルに対してクエリを実行します。
+ テーブルファンクションまたは SQL クエリを使用して、クエリの結果に変換を適用します。
+ クエリまたは関数の結果を `Table Sink` に書き込みます。

Table API を使用するアプリケーションは Java または Scala で作成でき、API 呼び出しまたは SQL クエリを使用してデータをクエリできます。

テーブル API の使用方法の詳細については、「[Table API コンポーネントを確認する](how-table.md)」 を参照してください。

## Managed Service for Apache Flink アプリケーションを作成する
<a name="how-it-works-app"></a>

Managed Service for Apache Flink は、Apache Flink アプリケーションをホストするための環境を作成し、次の設定を提供する AWS サービスです。
+ 「**[ランタイムプロパティを使用する](how-properties.md): **」 アプリケーションに提供できるパラメータ。これらのパラメータは、アプリケーションコードを再コンパイルしなくても変更できます。
+ 「**[耐障害性を実装する](how-fault.md)**」: アプリケーションが中断や再起動から回復する方法。
+ 「**[Amazon Managed Service for Apache Flink でのロギングとモニタリング](monitoring-overview.md)**」: アプリケーションが CloudWatch Logs にイベントを記録する方法。
+ 「**[アプリケーションスケーリングを実装する](how-scaling.md)**」: アプリケーションがコンピューティングリソースをプロビジョニングする方法。

Apache Flink アプリケーション用 Managed Serviceは、コンソールまたは AWS CLIを使用して作成します。Apache Flink 用 Managed Serviceの作成を開始するには、 [チュートリアル: Managed Service for Apache Flink で DataStream API 使用の概要](getting-started.md) を参照してください。