avgMergeState
説明
MergeState コンビネーターは
avg
関数に適用することで、型 AverageFunction(avg, T) の部分集約状態を結合し、
新しい中間集約状態を返すことができます。
使用例
MergeState コンビネータは、事前集計された状態を結合し、それらを(最終化せずに)後続の処理のための「状態」として保持しておきたい、多段階集計シナリオで特に有用です。例として、個々のサーバー性能メトリクスを、複数レベルにわたる階層的な集計に変換するケースを見ていきます。サーバーレベル → リージョンレベル → データセンターレベルという流れになります。
まずは生データを保存するためのテーブルを作成します。
サーバーレベルの集約用ターゲットテーブルを作成し、それに対する INSERT トリガーとして機能する インクリメンタルなマテリアライズドビューを定義します。
リージョンレベルとデータセンターレベルについても同様に実施します。
次に、ソーステーブルにサンプルの生データを挿入します。
各レベルごとに、3つのクエリを作成します。
- サービスレベル
- リージョンレベル
- データセンターレベル
さらにデータを挿入してみましょう:
データセンターレベルのパフォーマンスをもう一度確認しましょう。集約チェーン全体が自動的に更新されていることに注目してください。