6

要求されたレポートで同じディメンション(同じ細分性)に関する要約情報が必要な場合は、基礎データは別のファクト表に格納されます。間にディメンションを持つ複数のファクト表を結合する

たとえば、給与と経費が異なるファクト表に記録されている場合、給与総額と各従業員ごとに報告された総経費を示すレポート。または、1つのファクトテーブルからの売上と別のファクトテーブルからの受取が発生した場合に、1社が販売した各SKUの1か月あたりの総販売数と1か月あたりの在庫数を示すレポート。

単純にこの問題を解決するのは簡単です。単純に両方のファクトテーブルを並列にクエリして集計し、集計結果をデータウェアハウスまたはクライアントアプリケーションで結合します。

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

また、この「ディメンション・サンドイッチ」ユースケースは、標準的なデータウェアハウジング用語で名前を持っていますか?はいの場合は、Googleを介して簡単に調査することができます。

私たちはSQL Serverを使用していますが、私が今質問している質問は、プラットフォームに中立なところがうまくいきます。

+1

[統合ファクトテーブル](http://www.kimballgroup.com/data-warehouse-business-intelligence-resources/kimball-techniques/dimensional-modeling-techniques/consolidated-fact-table/)を検討することもできます。 )。 –

+0

連結ファクトテーブルは、有用なアクセサリデータまたは派生データを導入する手段です。たとえば、在庫と販売データを使用して在庫ターンを計算する方法は数多くありますが、ETLフェーズで使用する列を準備して、ビジネスユーザーに同じ計算を使用させることが賢明です(必ずしもそうとは限りません)。 – momobo

+0

統合されたファクトテーブルはいくつかのユースケースでは正常に機能しますが、DWのビジネスユースケースの多くは単純なディメンション(専門家による計算が重要な上のインベントリケースと異なります)を持ち、アドホックなフィルタリングと集約をサポートする必要があります結果が定義される前に –

答えて

3

私はこの技術はDrilling Acrossと呼ばれていることを今日学んだ:

掘削全体では、単純に各クエリの列ヘッダが同一 で構成されて2つのまたは 以上のファクトテーブルに対して個別のクエリが属性を適合することを意味します。 2つのクエリ からの回答セットは、共通の 次元属性の行ヘッダーに対してソート/マージ操作を実行することによって整列されます。 BIツールベンダーは、この の機能をステッチやマルチパスクエリなどのさまざまな名前で参照しています。

上記の単純なソリューション(複数のファクトテーブルを並行してクエリし、結果を結合する)のようなサウンドも、推奨されるソリューションです。

さらに詳しい情報:

渡って私を見つけるために、正しい方向に私を指しているため@MarekGrzenkowiczに感謝を掘削するための自分の答え!他の誰かが同じことを探している場合には、私はここに答えています。

2

あなたが説明した「ナイーブな解決策」は、ほとんどの場合、好ましいものです。

一般的な例外は、別のファクトテーブルを使用して1つのファクトの詳細な行をフィルタリングする必要がある場合です。たとえば、は、今年売れなかった記事の資本提携(株価)をに表示します。 1つのクエリで資本提携を単純に合算することはできません。この場合、両方の指標を共通の穀物に表示することができれば、統合された事実は解決策になる可能性があります。

関連する問題