ラムダアーキテクチャやカッパアーキテクチャなどの従来のデータウェアハウスアーキテクチャには、主に 3 つの課題があります。バッチとストリーミングのフレームワークを分離して運用することによる保守コストの増大、重複したデータコピーによるストレージの無駄、レイヤー間でロジックがずれることによる整合性リスクです。Realtime Compute for Apache Flink のマテリアライズドテーブルは、クエリ文からテーブルスキーマを自動的に導出し、設定可能なデータの鮮度の目標値 (1 日単位から数秒単位まで) に基づいて、継続的に更新されるデータパイプラインを作成することで、これらの課題に対処します。バッチ処理とストリーム処理を単一の経路に統合することで、マテリアライズドテーブルは冗長なデータコピーを排除し、エンドツーエンドで一貫したデータ処理ロジックとスキーマを保証します。これにより、リアルタイムデータウェアハウスの保守を簡素化できます。
基本概念
マテリアライズドテーブルの仕組み
マテリアライズドテーブルを作成する際は、FRESHNESS パラメーターと AS <select_statement> 句を指定する必要があります。Flink エンジンはテーブルスキーマを自動的に導出してカタログに登録し、FRESHNESS の値に基づいてストリーミングまたはバッチの更新ジョブを作成します。
たとえば、マテリアライズドテーブル C の鮮度が 30 分の場合、Flink はマテリアライズドテーブル A が更新されてから 30 分以内に、可能な限り近いタイミングで C を更新しようとします。ダウンストリームのマテリアライズドテーブル (E や F など) では、C の鮮度の正の倍数となる鮮度値 (60 分や 90 分など) を使用する必要があります。鮮度値を増やす (たとえば X 分から Y 時間へ、上限は 1 日) と、更新頻度が下がり、リソース消費を削減できます。
ユースケース
バッチ処理とストリーム処理を統合することで、マテリアライズドテーブルは次のユースケースにおいて、技術面およびコスト面でのメリットを提供します。
-
履歴データのバックフィル。
最終データは、伝送遅延などの問題により、部分的に歪む場合があります。履歴データの修正には、従来は別途バッチジョブが必要でした。マテリアライズドテーブルはオンデマンド更新をサポートしており、特定のテーブルと、そのすべてのダウンストリーム依存先に対して、手動で更新をトリガーできます。
-
データ処理ロジックとテーブルスキーマの統一。
ラムダアーキテクチャでは、履歴データとリアルタイムデータが別々のシステムに存在するため、処理ロジックとテーブルスキーマの整合を取ることが困難です。マテリアライズドテーブルはデータのコピーを 1 つだけ保存し、複雑な結合や計算を排除します。これにより、ストレージ効率が向上するとともに、バッチ処理とストリーム処理のロジック、および履歴データとリアルタイムデータのスキーマを統一できます。
-
データの鮮度を柔軟に調整できる動的ダッシュボードの構築。
動的ダッシュボードでは、ビジネスシナリオごとに異なるデータの鮮度レベルが求められることがよくあります。マテリアライズドテーブルでは、鮮度値を変更するだけで、更新間隔を日次から数秒単位まで調整できます。個別のリアルタイムパイプラインを構築して保守する必要はありません。
マテリアライズドテーブルの使用
|
参照 |
説明 |
|
マテリアライズドテーブルの作成方法、履歴データのバックフィル、データの鮮度の変更方法、データリネージの確認方法について説明します。 |
|
|
マテリアライズドテーブルと Apache Paimon テーブルを使用してストリームバッチ統合データレイクハウスを構築する方法、および鮮度を調整してバッチ実行モードからストリーミング実行モードに切り替え、リアルタイムのデータ更新を実現する方法について説明します。 |
関連ドキュメント
-
Apache Paimon は、バッチデータ処理とストリーミングデータ処理を統合するための集中型レイクストレージプラットフォームです。Realtime Compute for Apache Flink では、Apache Paimon テーブルを使用して、Object Storage Service (OSS) などのサービス上にデータレイクを構築できます。詳細については、「Paimon Streaming Lakehouse Architecture Solution」をご参照ください。
-
Flink、Paimon、StarRocks を使用してストリーミングレイクハウスを構築する方法の詳細については、「Paimon and StarRocks streaming lakehouse」をご参照ください。