21

私はデータ ウェアハウジングを初めて使用します。まず、The Data Warehouse Toolkit のコピーが私のメールボックスに届いていることを正確に伝えたいと思います (snail mail :P)。しかし、私はすでにネットで見つけたものでこれらすべてを研究しています.

ただし、ネット上で見つけられないのは、DW に複数の事実があると思われる場合の対処法です。私の場合 (保険)、不定期に発生する払い戻しがあります。1 人のクライアントが 3 か月間何も持たず、同じ月に 10 人も持つことができます。一方で、毎月または 3 か月ごとに発生する「サブスクリプション料金」 (正確な英語の用語はわかりませんが、要点はわかります) があります。それは明らかに 2 つの異なる事実のように思えます。

これら 2 つは、クライアントや「保険商品」など、いくつかの次元によって疎結合されています。これら 2 つの異なる倉庫で、2 つの異なるレポートを作成し、DW の外部でレポートを接続する必要がありますか? または、単一の降下 DW に適合するようにこれを設計する方法はありますか。それとも、これら 2 つの事実を 1 つにまとめる必要がありますか? その場合、おそらく払い戻しの粒度が失われるでしょう。

私が読んだブログで、DW には常に 1 つのファクト テーブルがあると書かれていました。他の人は、S を含むファクト テーブルとは何かを設計するステップについて言及していますが、それらの間にリンクがあるのか​​、それとも同じ DW プロジェクトの別個のコンポーネントにすぎないのかについての明確な指示はありません。

DW 設計の正確な部分に関する参考文献を知っている人はいますか?

4

3 に答える 3

26

古い投稿に回答していることに気付きましたが、提供された回答のいずれにも満足できません。どちらも質問に答えていないと思います。

スキーマには 1 つ以上のファクトを含めることができますが、これらのファクトは重要な関係によってリンクされていません。正規化された/トランザクション データベースにクエリを実行する場合と同様に、1 つのクエリでファクト テーブルを結合しないことをお勧めします。多対多の結合などの性質により、試行すると結果が不正確になります。

あなたが探している答えは、「ドリルアクロス」する必要があるということです。これは、基本的に、各ファクトテーブル (スキーマ) を個別にクエリし、結果をマージすることを意味します。これは、SQl を使用するか、できればデータ ウェアハウスを参照するレポート/分析ツールを使用して発生する可能性があります。これを行う方法についての回答を複製する代わりに、2 つの非常に優れた記事を紹介します。

Chris Adamson によるドリルアクロスの 3 つの方法

倉庫の必要性 - Ralph Kimball による Drilling Across

于 2014-10-10T13:57:39.210 に答える
21

ファクト テーブルはいくつでも作成できます。あなたの例では、次のようなものがあるかもしれません:

fact_ins_transaction

dimProductにはいくつかの製品がリストされています。サブスクリプションはその 1 つです。 dimTransactionTypeは、可能なトランザクション (購入、払い戻し、定期購読料など) をリストします。

ここで、簡素化されたサブスクリプション レポートに関心があると仮定すると、次のようにfactSubscriptionを追加できます。

fact_ins_subscription

于 2010-07-22T21:47:50.217 に答える
12

あなたの質問を逆に取ります。

データウェアハウスには、複数のファクトテーブルを含めることができます。ただし、ファクトテーブル間の結合を最小限に抑える必要があります。別のファクトテーブルにファクト情報を複製してもかまいません。

あなたが言及したオブジェクトのうち:

払い戻しは事実です。タイムスタンプは、払い戻しファクトのディメンションです。

サブスクリプション料金は事実です。タイムスタンプは、サブスクリプション料金のファクトの次元です。

払い戻しは複数回発生する可能性があります。各顧客には1つのサブスクリプション料金があると思います。したがって、これまでのところ、顧客と顧客の払い戻しという2つのファクトテーブルがあるようです。

払い戻しが最大で3つしかないことがわかっている場合(例として)、顧客払い戻しファクトテーブルを削除し、顧客テーブルに3つの払い戻し列を配置します。

あなたは保険についても言及しています。顧客は複数のポリシーを持つことができます。したがって、3番目のファクトテーブルがあります。

データウェアハウスは通常、スタースキーマを使用して設計されます。スタースキーマは基本的に、1つ以上のディメンションテーブルに接続された1つのファクトテーブルです。すでに3つのファクトテーブルを定義しているため、データウェアハウスにはおそらく複数のスターがあります。

于 2010-07-22T17:51:47.000 に答える