Amazon Managed Service for Apache Flink とは - Managed Service for Apache Flink

Amazon Managed Service for Apache Flink は、以前は 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 https://flink.apache.org/で任意の言語でアプリケーションを構築できます。Apache Flink は、データストリームを処理するための一般的なフレームワークおよびエンジンです。

Apache Flink 用 Managed Serviceは、Apache Flink アプリケーションの基盤となるインフラストラクチャを提供します。コンピューティングリソースのプロビジョニング、AZ フェイルオーバーレジリエンス、並列計算、自動スケーリング、アプリケーションバックアップ (チェックポイントおよびスナップショットとして実装) などのコア機能を処理します。ハイレベルの Flink プログラミング特徴 (オペレータ、関数、ソース、シンクなど) は、Flink インフラストラクチャーを自分でホストするときと同じように使用できます。

Amazon Managed Service for Apache Flink で Flink ジョブを実行するには、2 つのオプションがあります。Managed Service for Apache Flink では、任意の と Apache Flink Datastream またはテーブル を使用して、Java、Scala、または Python (および埋め込み SQL) で Flink アプリケーションを構築IDEしますAPIs。Managed Service for Apache Flink Studio を使用すると、データストリームをインタラクティブにクエリし、標準の SQL、Python、Scala を使用してストリーム処理アプリケーションを簡単に構築して実行できます。

ユースケースに最適な方法を選択できます。不明な場合は、このセクションで役立つ大まかなガイダンスを提供します。

Decision tree for selecting Flink application, Deployed Studio application, or Studio Notebook based on use case and programming experience.

Amazon Managed Service for Apache Flink と Amazon Managed Service for Apache Flink Studio のどちらを使用するかを決める前に、ユースケースを検討する必要があります。

ストリーミングETLや継続的アプリケーションなどのワークロードを引き受ける、長時間稼働するアプリケーションを運用する場合は、Apache Flink 用 Managed Service の使用を検討する必要があります。これは、選択した で Flink APIsを直接使用して Flink アプリケーションを作成できるためIDEです。IDE また、 を使用してローカルで開発することで、Git でのコードのバージョニング、CI/CD オートメーション、ユニットテストなどのソフトウェア開発ライフサイクル (SDLC) の一般的なプロセスとツールを活用できます。

アドホックデータ探索に関心がある場合、ストリーミングデータをインタラクティブにクエリする場合、またはプライベートリアルタイムダッシュボードを作成する場合、Managed Service for Apache Flink Studio は、数回のクリックでこれらの目標を達成するのに役立ちます。に慣れているユーザーは、Studio から直接実行時間の長いアプリケーションをデプロイすることを検討SQLできます。

注記

Studio ノートブックを長時間実行されるアプリケーションに昇格させることができます。ただし、Git でのコードバージョニングや CI/CD オートメーションなどのSDLCツールや、ユニットテストなどの手法と統合する場合は、任意の を使用して Managed Service for Apache Flink IDEを使用することをお勧めします。

選択した で Apache Flink を使用する Managed Service for Apache Flink APIsで Java、Python、Scala を使用してアプリケーションを構築できますIDE。Flink Datastream とテーブルを使用してアプリケーションを構築する方法に関するガイダンスは、 ドキュメントAPIに記載されています。Flink アプリケーションを作成する言語と、アプリケーションとオペレーションのニーズに合わせてAPIs使用する を選択できます。不明な場合は、このセクションで役立つ大まかなガイダンスを提供します。

Apache Flink APIsには、アプリケーションの構築方法に影響を与える可能性のある抽象化のレベルが異なります。これらは表現力と柔軟性があり、一緒に使用してアプリケーションを構築できます。Flink は 1 つだけ使用する必要はありませんAPI。Flink の詳細については、APIs「Apache Flink ドキュメント」を参照してください。

Flink には、Flink SQL、テーブル API DataStream API、および Process Function の 4 つのAPI抽象化レベルがあります。これは、 と組み合わせて使用されます DataStream API。これらはすべて Amazon Managed Service for Apache Flink でサポートされています。可能な場合は、より高いレベルの抽象化から始めることをお勧めしますが、一部の Flink 機能は、Java、Python、または Scala でアプリケーションを作成できる Datastream API でのみ使用できます。API 以下の場合は、Datastream の使用を検討してください。

  • 状態をきめ細かく制御する必要がある

  • 外部データベースまたはエンドポイントを非同期的に呼び出す機能を活用する場合 (推論など)

  • カスタムタイマーを使用する (カスタムウィンドウや遅延イベント処理の実装など)

  • 状態をリセットせずにアプリケーションのフローを変更できるようにする

Apache Flink APIs diagram showing abstraction levels and programming languages for different APIs.
注記

で言語を選択するDataStreamAPI:

  • SQL は、選択したプログラミング言語に関係なく、任意の Flink アプリケーションに埋め込むことができます。

  • の使用を計画している場合は DataStream API、すべてのコネクタが Python でサポートされているわけではありません。

  • 低レイテンシー/高スループットが必要な場合は、 に関係なく Java/Scala を検討する必要がありますAPI。

  • Process Functions で非同期 IO を使用する場合はAPI、Java を使用する必要があります。

を選択するとAPI、状態をリセットせずにアプリケーションロジックを進化させる機能にも影響します。これは、Java と Python の両方DataStreamAPIの でのみ使用できる、演算子UIDで設定する機能である特定の機能によって異なります。詳細については、「Apache Flink UUIDs ドキュメント」の「すべての演算子に設定」を参照してください。

ストリーミングデータアプリケーションの使用を開始する

まず、ストリーミングデータを継続的に読み取って処理する Apache Flink アプリケーション用 Managed Service を作成します。次に、IDE任意の を使用してコードを作成し、ライブストリーミングデータでテストします。Apache Flink 用 Managed Service で結果を送信する宛先を設定することもできます。

始める前に、以下のセクションを読んでおくことをお勧めします。

または、Apache Flink Studio 用 Managed Service ノートブックを作成して、データストリームをインタラクティブにリアルタイムでクエリし、標準の SQL、Python、Scala を使用してストリーム処理アプリケーションを簡単に構築して実行することもできます。を数回クリックするだけで AWS Management Console、サーバーレスノートブックを起動してデータストリームをクエリし、数秒で結果を取得できます。始める前に、以下のセクションを読んでおくことをお勧めします。