Amazon Managed Service for Apache Flink Blueprints を使用して、ワンクリックでエンドツーエンドのストリーミングパイプラインを構築します。詳細はこちら。
全般
インタラクティブな分析により、データのストリーミングの探索をリアルタイムで行えます。アドホックなクエリまたはプログラムを使用すると、Amazon MSK または Amazon Kinesis Data Streams からのストリームを検査し、それらのストリーム内のデータがどのように見えるかを可視化することができます。例えば、時間枠の平均を計算するリアルタイムメトリクスがどのように動作するかを表示し、選択した送信先に集計データを送信できます。また、インタラクティブな分析は、ストリーム処理アプリケーションの反復開発にも役立ちます。作成したクエリは、新しいデータが到着すると継続的に更新されます。Amazon Managed Service for Apache Flink Studio を使用すると、これらのクエリをデプロイし、自動スケーリングと永続的な状態のバックアップを有効にして継続的に実行することができます。
開始方法
Amazon Managed Service for Apache Flink により、アプリケーションが大半のシナリオにおける複雑なクエリとソースストリームのデータスループットに対応できるように、伸縮自在にスケールされます。Apache Flink アプリケーション向けサービスの制限に関する詳細については、Amazon Managed Service for Apache Flink デベロッパーガイドの「制限」セクションをご参照ください。
はい。Apache Flink DataStream コネクタを利用すると、Amazon Managed Service for Apache Flink アプリケーションが AWS Glue のサーバーレス機能である AWS Glue スキーマレジストリを使用できるようになります。Apache Kafka/Amazon MSK および Amazon Kinesis Data Streams を、シンクまたはソースとして、Amazon Managed Service for Apache Flink ワークロードと統合できます。詳細については、また使用開始するには、 AWS Glue スキーマ登録デベロッパーガイドをご覧ください。
主要な概念
- 入力: 入力はアプリケーションのストリーミングソースです。入力の設定では、ストリーミングソースをデータストリームにマッピングします。データはデータソースからデータストリームに流れます。アプリケーションコードを利用してこのようなデータストリームからのデータを処理し、処理したデータを後続のデータストリームなどのデータの出力先に送信します。Apache Flink アプリケーションや Studio ノートブックのアプリケーションコード内、および Amazon Managed Service for Apache Flink アプリケーションの API を介して、入力を追加します。
- アプリケーションのコード: アプリケーションコードは入力の処理と出力の生成を行う一連の Apache Flink 演算子です。最も単純な形状では、アプリケーションコードは、ストリーミングソースに関連付けられているデータストリームから読み込み、出力に関連付けられているその他のデータストリームに書き込む 1 つの Apache Flink 演算子になります。Studio ノートブックの場合、これは単純な Flink SQL 選択クエリであり、結果はノートブック内のコンテキストに表示されます。Amazon Managed Service for Apache Flink アプリケーションまたは Studio ノートブック用の Apache Flink コードを、サポートされている言語で記述できます。
- 出力: オプションで、データを外部の出力先に保存するようにアプリケーション出力を設定できます。Amazon Managed Service for Apache Flink アプリケーションや Studio ノートブックのアプリケーションコード内に出力を追加します。
Q: どのアプリケーションコードがサポートされていますか?
アプリケーションの管理
- Amazon Managed Service for Apache Flink デベロッパーガイドの「Amazon Managed Service for Apache Flink のモニタリング」。
- Amazon Managed Service for Apache Flink Studio デベロッパーガイドの「Amazon Managed Service for Apache Flink のモニタリング」。
Q: Amazon Managed Service for Apache Flink アプリケーションへのアクセスを管理および制御するにはどうすればよいですか?
- Amazon Managed Service for Apache Flink デベロッパーガイドの「アクセス許可の付与」。
- Amazon Managed Service for Apache Flink Studio デベロッパーガイドの「アクセス許可の付与」。
Q: Amazon Managed Service for Apache Flink はアプリケーションをどのようにスケールしますか?
Amazon Managed Service for Apache Flink により、アプリケーションが大半のシナリオにおける複雑なクエリとソースストリームのデータスループットに対応できるように、伸縮自在にスケールされます。Amazon Managed Service for Apache Flink は、Amazon KPU という形でキャパシティをプロビジョニングします。1 つの KPU で 1 vCPU と 4 GB メモリが与えられます。
料金と請求
ストリーミングアプリケーションの実行に使用された KPU の数に基づいて時間あたりの課金が発生します。KPU とは、1 vCPU のコンピューティングと 4 GB のメモリで構成されるストリーム処理能力の単位です。Amazon Managed Service for Apache Flink では、メモリやコンピューティングの要求が処理の複雑性や処理されたストリーミングデータのスループットに合わせて変わるとき、ストリーム処理アプリケーションによって必要とされる KPU の数が自動的に拡大縮小されます。
Apache Flink アプリケーションの構築
IDE で Apache Flink を使用してアプリケーションのアプリケーションコードを作成する
DataStream <GameEvent> rawEvents = env.addSource(
New KinesisStreamSource(“input_events”));
DataStream <UserPerLevel> gameStream =
rawEvents.map(event - > new UserPerLevel(event.gameMetadata.gameId,
event.gameMetadata.levelId,event.userId));
gameStream.keyBy(event -> event.gameId)
.keyBy(1)
.window(TumblingProcessingTimeWindows.of(Time.minutes(1)))
.apply(...) - > {...};
gameStream.addSink(new KinesisStreamSink("myGameStateStream"));
これらの演算子で要件が満たされない場合、カスタム演算子を構築できます。他の例については、Amazon Managed Service for Apache Flink デベロッパーガイドの「演算子」セクションをご覧ください。Apache Flink 演算子の完全一覧は Apache Flink ドキュメントにあります。
- ストリーミングデータソース: Amazon Managed Streaming for Apache Kafka (Amazon MSK)、Amazon Kinesis Data Streams Destinations、またはシンク: Amazon Kinesis Data Streams
- Amazon Kinesis Data Firehose、Amazon DynamoDB、Amazon Elasticsearch Service、Amazon S3 (ファイルシンク統合経由で)
Q: Amazon Managed Service for Apache Flink アプリケーションでは、ストリームやトピック間でデータを複製できますか?
マネージドノートブックでの Amazon Managed Service for Apache Flink Studio アプリケーションの構築
Q: Studio アプリケーションの開発方法を教えてください。
わずか数ステップで Amazon Managed Service for Apache Flink Studio、Amazon Kinesis Data Streams、または Amazon MSK コンソールから開始してサーバーレスノートブックを起動し、データストリームをすぐにクエリしてインタラクティブなデータ分析を実行することができます。
インタラクティブなデータ分析: SQL、Python、Scala でノートブックにコードを記述し、ストリーミングデータを操作することができます。クエリの応答時間は秒単位です。組み込みの可視化を使用して、ノートブック内からデータを探索し、ストリーミング データに関するリアルタイムインサイトを表示し、Apache Flink を利用したストリーム処理アプリケーションを開発できます。
コードを本番アプリケーションとして実行する準備ができたら、ワンステップで、サーバーなしで 1 秒あたり数ギガバイトのデータを処理するストリーム処理アプリケーションに移行できます。
ストリーム処理アプリケーション: コードを本番環境にプロモートする準備ができたら、ノートブックインターフェイスで [Deploy as stream processing application] (ストリーム処理アプリケーションとしてデプロイ) をクリックするか、CLI で 1 つのコマンドを発行してコードを構築できます。Amazon Managed Service for Apache Flink アプリケーションと同様に、自動スケーリングと耐久性のある状態が有効になった Studio がストリーム処理アプリケーションを大規模に実行するために必要なインフラストラクチャ管理をすべて行います。
Q: アプリケーションコードの概要を教えてください。
Apache Flink の Table API を使用して、SQL、Python、Scala などの任意の言語により、ノートブックでコードを記述できます。Table API は、SQL の機能のスーパーセットをサポートする高レベルの抽象化およびリレーショナル API です。選択、フィルター、結合、グループ化、集計などの使い慣れた操作や、ウィンドウ処理などのストリーム固有の概念を提供します。% を使用して、ノートブックのセクションで使用する言語を指定することで、言語を切り替えることができます。インタープリターは Apache Zeppelin プラグインで、デベロッパーがノートブックの各セクションに言語またはデータ処理エンジンを指定できるようにします。また、ユーザー定義関数を作成し、それらを参照してコード機能を改善することもできます。
Q: どのような SQL 操作がサポートされていますか?
次のような SQL 操作を実行できます。
- スキャンとフィルタリング (SELECT、WHERE)
- 集計 (GROUP BY、GROUP BY WINDOW、HAVING)
- セット (UNION、UNIONALL、INTERSECT、IN、EXISTS)
- 順序 (ORDER BY、LIMIT)
- 結合 (INNER、OUTER、時限ウィンドウ – BETWEEN、AND、一時テーブルとの結合 – 時間の経過に伴う変化を追跡するテーブル)
- Top-N
- データ重複排除
- パターン認識
GROUP BY、OUTER JOIN、Top-N などの一部のクエリは、ストリーミングデータの「結果の更新」です。つまり、ストリーミングデータが処理されると、結果が継続的に更新されます。CREATE、ALTER、DROP などの他の DDL ステートメントもサポートされています。クエリとサンプルの完全なリストについては、Apache Flink クエリのドキュメントを参照してください。
Q: Python と Scala はどのようにサポートされていますか?
Apache Flink の Table API は、Python 文字列と Scala 式を使用した言語統合を通じて、Python と Scala をサポートしています。サポートされている操作は、選択、順序、グループ化、結合、フィルター、ウィンドウ処理など、サポートされている SQL 操作と非常に似ています。操作の完全なリストとサンプルは、デベロッパーガイドに含まれています。
Q: どのバージョンの Apache Flink および Apache Zeppelin をサポートしていますか?
サポートされている Apache Flink のバージョンの詳細については、Amazon Managed Service for Apache Flink のリリースノートページを参照してください。このページには、Amazon Managed Service for Apache Flink がサポートする Apache Zeppelin、Apache Beam、Java、Scala、Python、および AWS SDK のバージョンも記載されています。
Q: Amazon Managed Service for Apache Flink Studio アプリケーションでは、どのような統合がデフォルトでサポートされていますか?
- データソース: Amazon Managed Streaming for Apache Kafka (Amazon MSK)、Amazon Kinesis Data Streams、Amazon S3
- 統合先、またはシンク: Amazon MSK、Amazon Kinesis Data Streams、Amazon S3
Q: カスタム統合はサポートされていますか?
わずかな追加ステップで Apache Flink コード (Python、Scala、または Java) を数行追加するだけで、追加の統合を設定して、Apache Flink がサポートするすべての統合との接続を定義できます。これには、Amazon OpenSearch Service、Amazon ElastiCache for Redis、Amazon Aurora、Amazon Redshift、Amazon DynamoDB、Amazon Keyspaces などの出力先が含まれます。Amazon Managed Service for Apache Flink Studio アプリケーションを作成または設定するときに、これらのカスタムコネクタの実行可能ファイルをアタッチすることができます。
サービスレベルアグリーメント (SLA)
Q: Amazon Managed Service for Apache Flink の SLA は何を保証しますか?
当社のサービスレベルアグリーメント (SLA) では、Amazon Managed Service for Apache Flink の月間稼働率が 99.9% 以上であることを保証しています。
Q: SLA サービスクレジットの資格を有しているかどうかを知るにはどうすればよいですか?
同じ AWS リージョン内の複数のアベイラビリティーゾーンでタスクを実行しており、いずれかの月間課金期間中に月間稼働率が 99.9% 未満であった場合、Amazon Managed Service for Apache Flink SLA に基づいて Amazon Managed Service for Apache Flink に対する SLA サービスクレジットを受け取る資格があります。SLA 利用規約に関するすべての詳細、およびクレジット請求方法の詳細については、Amazon Managed Service for Apache Flink SLA の詳細ページを参照してください。
Amazon Kinesis Data Analytics の使用を開始する
Amazon Kinesis Data Analytics の料金ページをご覧ください。
SQL または Apache Flink のステップバイステップガイドで Amazon Kinesis Data Analytics の使用方法を学習できます。
Amazon Kinesis Data Analytics コンソールからストリーミングアプリケーションを構築する。