リアルタイム集計
多次元集計の特定のスライスでは、時間が重要な要素になる場合があります。このような場合には、スライスをリアルタイムで使用することが必要になります。 たとえば、生鮮食料品を販売する業者では、配送の各段階での製品数量の集計をリアルタイムで利用できるようにする必要があります。 同時に、代表的な顧客の年齢などの他の集計を、ビジネス インテリジェンス分析のために月末にのみ実行する必要がある場合もあります。
BAM には、アクティビティ ストレージ テーブルからのトリガーによって維持されるテーブルとして、リアルタイム集計 (RTA) が実装されています。 注文書 (PO) を処理する場合、RTA ビューは次の図の例のようになります。
BAM リアルタイム集計
この図では、Redmond から $100 の新しい PO を受け取った場合、BAM は、 や Amount=Amount+$100
などのCount=Count+1
操作を実行することで、{Redmond, InProcess} の対応する行のセルに寄与を追加します。
その後、その注文が出荷されると、金額が行 {Redmond, InProcess} から削除され、行 {Redmond, Shipped} に加算されます。
BAM は特定のオンライン時間帯のデータを RTA 内に維持してから、削除します。 オンライン ウィンドウを構成するには、テーブル bam_Metadata_RealTimeAggregationsの対応する行を変更します。
リアルタイム集計では、次のような状況が発生します。
リアルタイム集計は、BAM のデータ書き込み速度に大きく影響します。 したがって、集計構造の中で重要なスライスのみを RTA として定義してください。
リアルタイム集計のディメンション レベルの制限は 14 です。 たとえば、州と市区町村のデータ ディメンションの場所を作成した場合、これは 2 つのレベル (州と市区町村) としてカウントされます。 進捗ディメンションのレベル数は、ツリーの深さで数えます。時間ディメンションのレベル数は、サブユニットの総数で数えます。 たとえば、年、月、日、時間の時間ディメンションは、4 つのレベルとしてカウントされます。
BAM では、 Min 型と Max 型のリアルタイム集計はサポートされていません。 BAM でサポートされる集計は、 Count、 Sum、 Average です。
RTA のデータは特定のビジネス マイルストーンではなく、サーバーのタイム スタンプに従って古くなります。そのため、常に RTA の時間ディメンションを作成し、すべてのデータ スライスでそのディメンションを使用する必要があります。
同じ BAM アクティビティを使用する RTA を複数定義しないでください。 そのような RTA を複数定義した場合、BAM データをアーカイブしたときに RTA データが不正確になります。
リアルタイム集計は、BAM のデータ書き込み速度に大きく影響します。 したがって、集計構造の中で重要なスライスのみを RTA として定義してください。
リアルタイム集計のディメンション レベルの制限は 14 です。 たとえば、州と市区町村のデータ ディメンションの場所を作成した場合、これは 2 つのレベル (州と市区町村) としてカウントされます。 進捗ディメンションのレベル数は、ツリーの深さで数えます。時間ディメンションのレベル数は、サブユニットの総数で数えます。 たとえば、年、月、日、時間の時間ディメンションは、4 つのレベルとしてカウントされます。
BAM では、 Min 型と Max 型のリアルタイム集計はサポートされていません。 BAM でサポートされる集計は、 Count、 Sum、 Average です。
同じ BAM アクティビティを使用する RTA を複数定義しないでください。 そのような RTA を複数定義した場合、BAM データをアーカイブしたときに RTA データが不正確になります。