このトピックでは、Realtime Compute for Apache Flink に関する基本情報を説明します。
Realtime Compute for Apache Flink とは
データのビジネス価値は、データが生成された時点で最も高くなります。そのため、データが生成されるとすぐに処理できることは、企業にとって貴重な特性です。Realtime Compute for Apache Flink は、このようなシナリオにおける適時性と速度に関する厳格な要件を満たすために開発されました。データの適時性と操作性に対する要求が高まるにつれて、ソフトウェアシステムはより短い時間でより多くのデータを処理できる必要があります。従来のビッグデータ処理アプリケーションでは、オンライン トランザクション処理(OLTP)とオフライン データ分析は、スケジュールに基づいて異なる時間帯に実行されます。処理が必要な大量のデータと組み合わせることで、この方法では計算サイクルが数時間または数日かかることがよくあります。ストリーミングデータをリアルタイムで処理する必要がある今日のビジネスには、この方法はもはや適していないことは明らかです。データ処理の遅延は、リアルタイムのビッグデータ分析、リスク管理とアラート、リアルタイム予測、金融取引など、時間的制約のあるワークロードの精度とパフォーマンスに影響を与える可能性があります。
- リアルタイムの無制限のデータ ストリーム
今日のデータは継続的に生成され、実用的な洞察を得るには時系列で消費する必要があります。たとえば、訪問者が Web サイトにアクセスすると、ログが生成されます。これらのログは継続的に Realtime Compute for Apache Flink にストリーミングされ、訪問者が Web サイトを閉じるときにのみ停止します。Realtime Compute for Apache Flink は、ログ データをリアルタイムで取り込み、処理して洞察を提供します。
- 継続的かつ効率的なコンピューティング
Realtime Compute for Apache Flink はイベント駆動型システムであり、無制限のイベントまたはデータ ストリームが継続的にリアルタイム計算をトリガーします。新しいデータが取り込まれるたびに、新しいタスクがトリガーされます。継続的なデータ ストリームと組み合わせることで、継続的なコンピューティング パイプラインが形成されます。
- ストリーミング データのリアルタイム統合
処理されたデータは、選択したデータ ストアにリアルタイムで書き込まれます。たとえば、Realtime Compute for Apache Flink は結果を ApsaraDB RDS インスタンスに直接書き込み、レポートの生成と視覚化に使用できます。この機能により、Realtime Compute for Apache Flink は、ダウンストリーム プロセスとデータ ストアのデータ ソースとしても利用できます。
ストリーミング データとは
- モバイル アプリケーションと Web アプリケーションによって生成されたログ ファイル
- オンライン ショッピング データ
- ゲーム内プレイヤーのアクティビティ
- ソーシャル ネットワーキング サイトからのデータ
- トレーディング フロアまたは地理空間データ センターの接続デバイスからのテレメトリ データ
- 地理空間サービス情報
- デバイスと機器からのテレメトリ データ
リアルタイム コンピューティングとバッチ処理の違い
- バッチ処理 バッチ処理のデプロイは、ユーザーまたはシステムによってオンデマンドまたはスケジュールされた間隔で開始されます。これにより、データ収集と結果が生成されるまでの間に大きな遅延が発生します。従来のデータ コンピューティングおよび分析サービスのほとんどは、バッチ処理モデルに基づいて開発されています。抽出、変換、ロード(ETL)システムまたは OLTP システムを使用してデータをデータ ストアにロードし、その後、ダウンストリーム サービスによってデータがクエリされます。次の図は、従来のバッチ処理モデルを示しています。
従来のバッチ処理手順は、次のステップで構成されます。- データのロード
バッチ処理を実行するには、コンピューティング システムが事前にデータをロードする必要があります。コンピューティング システムとして ETL システムまたは OLTP システムを使用できます。システムは、ストレージ方法と計算方法に基づいて、ロードされたデータに対して一連のクエリ最適化、分析、および計算を実行します。
- リクエストの送信システムは、MaxCompute SQL デプロイや Hive SQL デプロイなどのコンピューティング デプロイを開始し、コンピューティング システムにリクエストを送信します。次に、コンピューティング システムは、これらのリクエストを処理するためにコンピューティング ノードをスケジュールします。プロセス全体には数分か数時間かかる場合があります。これにより、ユーザーが洞察を得るまでに長い遅延が発生し、時間的制約のあるアプリケーションには適していません。説明 バッチ処理の場合、ビジネス要件に基づいて SQL ステートメントをいつでも調整できます。また、アドホック クエリを実行して、データを即座に変更およびクエリすることもできます。
- 結果データの返却
コンピューティング デプロイが完了すると、結果は結果セットとして返されます。これは通常、非常に大きくなります。次に、このデータをストレージまたはダウンストリーム サービスに書き込む必要があります。このプロセスは、完了するまでに数分か数時間かかる場合があります。
- データのロード
- リアルタイム コンピューティング リアルタイム コンピューティング デプロイは、イベントによって継続的にトリガーされます。通常、結果は最小限の遅延で取得されます。リアルタイム コンピューティング モデルはシンプルです。したがって、リアルタイム コンピューティングは、ほとんどのビッグデータ処理シナリオにおいて、バッチ処理の付加価値サービスと見なされます。リアルタイム コンピューティングは、遅延の少ないデータ ストリームに対する計算を提供します。次の図は、リアルタイム コンピューティング モデルを示しています。

- リアルタイム データ ストリームの送信
データ統合ツールを使用して、ストリーミング データを Message Queue や DataHub などのストリーミング データ ストアにリアルタイムで送信します。ストリーミング データは、データ統合の遅延を最小限に抑えるために、リアルタイムでマイクロ バッチで送信されます。
ストリーミング データは、データをプリロードする必要なく、データ ストアに継続的に書き込まれます。Realtime Compute for Apache Flink は、処理されたデータを保存しません。ストリーミング データは、データが処理された後すぐに破棄されます。
- ストリーミング ドラフトの公開バッチ処理では、データ統合が完了した後にのみコンピューティング デプロイを開始できます。リアルタイム コンピューティング デプロイは、常駐コンピューティング サービスです。Realtime Compute for Apache Flink デプロイを開始すると、Realtime Compute for Apache Flink はすぐにストリーミング データを計算し、少量のデータがストリーミング データ ストアに入った後に結果を生成します。また、大きなバッチのデータを小さなバッチに分割し、それらを段階的に処理します。これにより、処理遅延が効果的に短縮されます。ストリーミング デプロイの場合、デプロイの計算ロジックを事前に定義し、Realtime Compute for Apache Flink にデプロイのドラフトを公開する必要があります。説明 リアルタイム コンピューティング中にストリーミング デプロイが実行されている場合、デプロイのロジックを変更できますが、変更はリアルタイムでは有効になりません。変更を有効にするには、デプロイを再起動する必要があります。計算済みのデータは再計算できません。
- 結果データ ストリームのリアルタイム生成
バッチ処理では、累積されたすべてのデータが処理された後にのみ、結果データをオンライン システムに同時に書き込むことができます。ストリーミング デプロイは、各マイクロ バッチのデータ レコードが処理された直後に、結果データをオンライン システムまたはバッチ システムに配信します。
リアルタイム コンピューティングは、次の順序で実行されます。- ユーザーがリアルタイム コンピューティング ドラフトを公開します。
- ストリーミング データがリアルタイム コンピューティング デプロイをトリガーします。
- リアルタイム コンピューティング デプロイの結果データは、継続的に宛先システムに書き込まれます。
- リアルタイム データ ストリームの送信
| 項目 | バッチ処理 | リアルタイム コンピューティング |
| データ統合 | データ処理システムは事前にデータをロードする必要があります。 | Realtime Compute for Apache Flink はデータをリアルタイムでロードします。 |
| 計算ロジック | 計算ロジックを変更でき、データを再処理できます。 | 計算ロジックが変更された場合、ストリーミング データはリアルタイムで処理されるため、データを再処理できません。 |
| データ スコープ | データセット内のすべてまたはほとんどのデータをクエリおよび処理できます。 | 最新のデータ レコードまたはローリング ウィンドウ内のデータをクエリおよび処理できます。 |
| データ量 | 大量のデータが処理されます。 | 個々のレコードまたは少数のレコードで構成されるマイクロ バッチのデータが処理されます。 |
| パフォーマンス | データ処理には数分か数時間かかります。 | データ処理には数ミリ秒または数秒かかります。 |
| 分析 | 分析は複雑です。 | 分析は、単純な応答関数、集計、およびローリング メトリックに基づいています。 |