単一次元クロス集計

パターン

コンテキスト

ひとつのディメンション内に複数集計ツリーを作って運用していると、集計ツリーの組み合わせでデータ値を集計したくなることがあります

ディメンション内に複数メンバーツリーを設けた場合、それぞれのメンバーツリーに沿った集計は可能ですが、メンバーツリー間でクロス集計することの可否はそれとは別です

店舗ディメンションにおいて地域別および店舗形態別のメンバーツリーを設けた場合、前者で「東海地区計」を算出でき、後者で「路面店計」を算出できます。しかし、「東海地区の路面店計」は算出できません。その括りに対応するメンバーがいずれのメンバーツリーにもないからです

このことへの対処として、「東海地区の路面店計」に対応する集計メンバーをもつメンバーツリーを設けることも可能ではありますが、ベストの解ではありません。このデザインでは、路面店計を地域別に並べて集計表示することが難しいし、こうしたメンバーツリーは複雑になりがちで、メンテナンスするのも大変だからです

問題

ひとつのディメンション内にメンバーツリーが複数ある場合において、そのメンバーツリー間でクロス集計したい。 上記の例で言えば、地域と店舗形態を別の切り口として扱ってクロス集計表の形で表示したい

配慮すべきことがら

  • メンバーツリーのメンテナンスの容易さ 地域別と店舗形態別のメンバーツリーはすでにあるので、それに加えて地域別×店舗形態別のメンバーツリーを設けることは出来れば避けたい

  • データコピーが不要であること 店舗ディメンションをコピーしたディメンションをひとつ作り、店舗(地域別集計用)と店舗(店舗形態別集計用)の2つのディメンションを使用する元帳を作った上で、店舗ディメンションのみ使用している元の元帳からデータをコピーすれば、コピー先の元帳では、2つの店舗ディメンション間でクロス集計可能になる。しかし、データコピー処理が必要になるので、データ量によっては転送処理の時間がかかるし、転送を忘れると2つの元帳の数値が合わなくなるといった煩わしさがある。データコピー処理は、できれば、なしで済ませたい

解決策

fusion_place の「ビュー元帳」という仕組みを使えば、同一ディメンション内のクロス集計が可能である。

詳しくは、Q&A集の記事「クロス集計する方法」を参照ください

適用の帰結

利点

  • メンバーツリーのメンテナンスの容易さ ビュー元帳を使う場合、元のディメンションとそれを借用したディメンションの間でクロス集計が可能なので、クロス集計用のメンバーツリーを設ける必要はない

  • データコピーが不要であること ビュー元帳は、それ自体はデータを保持せず、元の元帳(基底元帳とよぶ)のデータをリアルタイムで集計しなおすだけである。したがって、データコピー処理は必要ない

制約

関連するパターン

先行パターン

複数集計ツリーを適用していることが、本パターンの前提となっています

後続パターン

その他の関連パターン