8

要求されたレポートで同じディメンション (および同じ粒度) に関する要約情報が必要であるが、基になるデータが別のファクト テーブルに格納されている場合、データ ウェアハウス設計の適切なアプローチはどれですか?

たとえば、給与と経費が異なるファクト テーブルに記録されている場合、各従業員について毎年支払われた給与の合計と経費の合計を示すレポートを作成できます。または、会社が販売した SKU ごとに、月ごとの合計売上と月ごとに受け取った在庫を一覧表示するレポート (売上が 1 つのファクト テーブルから取得され、受信が別のファクト テーブルから取得される場合)。

この問題を単純に解決するのは非常に簡単に思えます。両方のファクト テーブルを並列にクエリして集計し、データ ウェアハウスまたはクライアント アプリで集計結果をつなぎ合わせるだけです。

しかし、私はこの問題を考える他の方法にも興味があります。他の人はどのように解決しましたか?私は、データ ウェアハウスのスキーマと設計、およびクライアント ツールが上記の例のようなレポートを作成するのに適した設計にすることの両方について疑問に思っています。

また、この「ディメンション サンドイッチ」ユース ケースには、標準的なデータ ウェアハウジング用語で名前が付けられていますか? はいの場合、Google を介した調査が容易になります。

私たちは SQL Server を使用していますが、現時点での質問はプラットフォームに依存しないものであることが望ましいです。

4

2 に答える 2

9

今日、この手法がDrilling Acrossと呼ばれることを知りました。

ドリルアクロスとは、単純に、各クエリの行ヘッダーが同一の準拠属性で構成される 2 つ以上のファクト テーブルに対して個別のクエリを作成することを意味します。2 つのクエリからの回答セットは、共通のディメンション属性の行ヘッダーに対して並べ替えとマージ操作を実行することによって整列されます。BI ツール ベンダーは、この機能をステッチやマルチパス クエリなど、さまざまな名前で呼んでいます。

上記の素朴な解決策 (複数のファクト テーブルを並行してクエリし、結果をつなぎ合わせる) も推奨される解決策のように思えます。

より詳しい情報:

私自身の答えを見つけるために正しい方向に私を向けてくれた@MarekGrzenkowiczに感謝します! 他の誰かが同じものを探している場合に備えて、ここで答えています。

于 2014-01-13T22:23:10.407 に答える
4

あなたが説明した「素朴な解決策」は、ほとんどの場合、優先されるものです。

一般的な例外は、別のファクト テーブルを使用して 1 つのファクトの詳細な行をフィルター処理する必要がある場合です。例えば、「今年売れなかった商品の資本提携(在庫)を見せて」。資本提携を 1 つのクエリで単純に合計することはできません。この場合、共通の粒度で両方の測定値を表現できれば、統合された事実が解決策になる可能性があります。

于 2014-01-17T16:41:59.110 に答える