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