Lambda や Kappa などの従来のデータウェアハウスアーキテクチャは、3 つの主な課題に直面しています。バッチフレームワークとストリーミングフレームワークが別々であることによる開発とメンテナンスコストの高さ、複数のデータコピーによるストレージの非効率性、レイヤー間でロジックとスキーマが一致しないことによる整合性の問題です。これらの課題を克服するために、Realtime Compute for Apache Flink はマテリアライズドテーブルを導入しました。これは、データの鮮度(毎日から数分ごとまで)とクエリ文に基づいてテーブルスキーマを自動的に導出し、継続的に更新されるデータパイプラインを作成します。この機能は、バッチ処理とストリーム処理のロジックを統合することで、冗長なデータコピーを排除するだけでなく、エンドツーエンドで一貫したデータ処理ロジックとテーブルスキーマを確保し、リアルタイムデータウェアハウスのメンテナンスを大幅に簡素化します。
主要な概念
マテリアライズドテーブルのしくみ
マテリアライズドテーブルを作成するときは、FRESHNESS パラメーターと AS <select_statement> 句を明示的に定義する必要があります。Flink エンジンは、クエリ結果に基づいてマテリアライズドテーブルのスキーマを自動的に導出し、カタログにスキーマを登録します。また、FRESHNESS 値に基づいてストリーミングまたはバッチ更新ジョブを作成します。
マテリアライズドテーブル C の鮮度が 30 分に設定されているとします。ソースであるマテリアライズドテーブル A が更新されると、Flink は 30 分以内にできるだけ早くマテリアライズドテーブル C を更新しようとします。E や F などのダウンストリームのマテリアライズドテーブルの鮮度は、マテリアライズドテーブル C の鮮度の正の倍数(60 分または 90 分など)である必要があります。鮮度の値を X 分から Y 時間(最大 1 日)に増やすと、更新頻度が減るため、リソース消費が削減されます。
シナリオ
マテリアライズドテーブルは、バッチ処理とストリーム処理を統合することで、次のユースケースに顕著な技術的およびコスト上の利点を提供します。
既存データのバックフィル。
データ送信のレイテンシなどの問題により、最終データが部分的に歪む場合があります。従来、既存データの修正には多くの場合、バッチジョブが必要でした。マテリアライズドテーブルは、特定のマテリアライズドテーブルとすべてのダウンストリームの依存マテリアライズドテーブルの更新を手動でトリガーできるオンデマンド更新機能を提供します。
データ処理ロジックとテーブルスキーマの統合。
Lambda アーキテクチャでは、既存データとリアルタイムデータが別々のシステムに格納されるため、処理ロジックとデータをホストするテーブルのスキーマを調整することが困難です。マテリアライズドテーブルを使用すると、データのコピーが 1 つだけ格納されるため、複雑な結合や計算が不要になります。この機能は、ストレージ効率を向上させるだけでなく、バッチ処理とストリーム処理のロジックを調整し、既存データとリアルタイムデータをホストするテーブルのスキーマを統合します。
適応可能なデータ鮮度を備えた動的ダッシュボードの構築。
動的ダッシュボードでは、多くの場合、ビジネスシナリオごとに異なるデータ鮮度が必要になります。マテリアライズドテーブルは、鮮度の値を変更することで、更新間隔を毎日から数秒ごとまで簡単に調整できるため、このニーズに対応します。このアプローチにより、個別のリアルタイムパイプラインを構築および維持する必要がなくなります。
マテリアライズドテーブルの使用
参照 | 説明 |
このトピックでは、マテリアライズドテーブルの作成、既存データのバックフィル、マテリアライズドテーブルのデータ鮮度の変更、およびマテリアライズドテーブルのデータ系列の表示方法について説明します。 | |
このトピックでは、マテリアライズドテーブルと Apache Paimon テーブルを使用して、ストリームバッチ統合データレイクハウスを構築する方法について説明します。また、マテリアライズドテーブルの鮮度を調整してバッチ実行モードからストリーミング実行モードに切り替え、リアルタイム データ更新を有効にする方法についても説明します。 |
参照
Apache Paimon は、バッチモードとストリーミングモードでデータを処理できる集中型レイクストレージプラットフォームです。Realtime Compute for Apache Flink で Apache Paimon テーブルを使用して、Object Storage Service (OSS) などのサービスに基づいてデータレイクを迅速に構築できます。詳細については、「Apache Paimon を使用してストリーミングレイクハウスソリューションを構築する」をご参照ください。
Realtime Compute for Apache Flink、Apache Paimon、StarRocks を使用してストリーミングデータレイクハウスを構築する