Amazon Managed Service for Apache Flink (Amazon MSF) は、以前は Amazon Kinesis Data Analytics for Apache Flink と呼ばれていました。
翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Amazon Managed Service for Apache Flink とは?
Amazon Managed Service for Apache Flink を使用すると、Java、Scala、Python、SQL のいずれかを使用してストリーミングデータを処理および分析できます。このサービスにより、ストリーミングソースや静的ソースに対してコードを作成・実行し、時系列分析を行い、リアルタイムダッシュボードやメトリクスにデータを供給できます。
Apache Flink
Apache Flink 用 Managed Serviceは、Apache Flink アプリケーションの基盤となるインフラストラクチャを提供します。コンピュートリソースのプロビジョニング、AZ フェイルオーバー耐性、並列計算、自動スケーリング、アプリケーションバックアップ (チェックポイントやスナップショットとして実装) などのコア機能を処理します。ハイレベルの Flink プログラミング特徴 (オペレータ、関数、ソース、シンクなど) は、Flink インフラストラクチャーを自分でホストするときと同じように使用できます。
Managed Service for Apache Flink と Managed Service for Apache Flink Studio のどちらを使用するかを決定する
Amazon Managed Service for Apache Flink で Flink ジョブを実行するには、2 つのオプションがあります。Managed Service for Apache Flink を利用すると、任意の IDE と Apache Flink の Datastream API や Table API を使用して Java、Scala、Python (および埋め込み SQL) で Flink アプリケーションを構築できます。Managed Service for Apache Flink Studio を利用すると、リアルタイムでデータストリームをインタラクティブにクエリでき、標準 SQL、Python、Scala を使用してストリーム処理アプリケーションを容易に構築・実行できます。
ユースケースに最適な方法を選択できます。よくわからないときは、このセクションで大まかなガイダンスを確認してください。
Amazon Managed Service for Apache Flink と Amazon Managed Service for Apache Flink Studio のどちらを使用するかを決定する前に、ユースケースを検討する必要があります。
ストリーミング ETL や継続的アプリケーションなどのワークロードを引き受ける長時間稼働のアプリケーションを運用する場合は、Managed Service for Apache Flink の使用を検討する必要があります。これは、任意の IDE で Flink API を直接使用して Flink アプリケーションを作成できるためです。IDE を使用してローカルで開発することで、Git でのコードバージョニング、CI/CD オートメーション、ユニットテストなどのソフトウェア開発ライフサイクル (SDLC) の一般的なプロセスやツールを活用することもできます。
アドホックデータ探索に関心があり、ストリーミングデータをインタラクティブにクエリする場合、またはプライベートリアルタイムダッシュボードを作成する場合、Managed Service for Apache Flink Studio を使用すれば、わずか数クリックでこれらの目標を達成できます。SQL に精通しているユーザーは、長時間稼働しているアプリケーションを Studio から直接デプロイすることを検討できます。
注記
Studio ノートブックを長時間稼働するアプリケーションに昇格させることができます。ただし、Git でのコードバージョニングや CI/CD オートメーションなどの SDLC ツール、あるいはユニットテストなどの手法と統合する場合は、任意の IDE を使用して Managed Service for Apache Flink を使用することをお勧めします。
Managed Service for Apache Flink で使用する Apache Flink API を選択する
Managed Service for Apache Flink では、任意の IDE で Apache Flink API を使用して、Java、Python、Scala でアプリケーションを構築できます。Flink Datastream と Table API を使用してアプリケーションを構築する方法に関するガイダンスについては、ドキュメントを参照してください。Flink アプリケーションを作成する言語と、アプリケーションと運用のニーズに合わせて使用する API を選択できます。よく分からないときは、このセクションで大まかなガイダンスを提供します。
Flink API を選択する
Apache Flink API には、さまざまな抽象化レベルがあり、アプリケーションの構築方法に影響を与える可能性があります。これらは表現力と柔軟性があり、一緒に使用することでアプリケーションを構築できます。1 つの Flink API のみを使用する必要はありません。Flink API の詳細については、Apache Flink のドキュメント
Flink には、Flink SQL、Table API、DataStream API、Process Function の 4 つの API 抽象化レベルが用意されています。これらは DataStream API と組み合わせて使用されます。これらはすべて Amazon Managed Service for Apache Flink でサポートされています。可能であれば、より高いレベルの抽象化から始めることをお勧めしますが、一部の Flink 機能は、Java、Python、または Scala でアプリケーションを作成できる Datastream API でのみ使用できます。以下の場合は、Datastream API の使用を検討する必要があります。
状態をきめ細かく制御する必要がある
外部データベースまたはエンドポイントを非同期的に呼び出す機能を活用したい (推論など)
カスタムタイマーを使用したい (カスタムウィンドウや遅延イベント処理の実装など)
-
状態をリセットせずにアプリケーションのフローを変更できるようにしたい
注記
DataStream API を使用した言語の選択:
SQL は、選択したプログラミング言語に関係なく、任意の Flink アプリケーションに埋め込むことができます。
DataStream API を使用する場合、Python ではすべてのコネクタがサポートされているわけではありません。
低レイテンシー/高スループットが必要な場合は、API に関係なく Java/Scala を検討する必要があります。
Process Functions API で非同期 IO を使用する場合は、Java を使用する必要があります。
API を選択すると、状態をリセットすることなくアプリケーションロジックを進化させる機能にも影響する可能性があります。これは、演算子に UID を設定することのできる特定の機能に依存しており、Java と Python の両方の DataStream API でのみ使用できます。詳細については、「Apache Flink ドキュメント」の「Set UUIDs For All Operators
ストリーミングデータアプリケーションを始めるためのステップ
まず、ストリーミングデータを継続的に読み取って処理する Apache Flink アプリケーション用 Managed Service を作成します。次に、選択した IDE を使用してコードを書き、ライブストリーミングデータでテストします。Apache Flink 用 Managed Service で結果を送信する宛先を設定することもできます。
始める前に、以下のセクションを読んでおくことをお勧めします。
または、Managed Service for Apache Flink Studio ノートブックを作成することで、リアルタイムにデータストリームをインタラクティブにクエリし、標準 SQL、Python、Scala を利用してストリーム処理アプリケーションを容易に構築・実行できます。を数回クリックするだけで AWS マネジメントコンソール、サーバーレスノートブックを起動してデータストリームをクエリし、数秒で結果を取得できます。始める前に、以下のセクションを読んでおくことをお勧めします。