4

私はデータ ウェアハウスの初心者であり、スター スキーマの構築について簡単な質問をしたいと思っています。

ファクト レコードが 1 つのディメンションと 1 対多のリレーションシップを持つファクト テーブルがある場合、これをサポートするためにスター スキーマをどのようにモデル化できますか? 例えば:

  • ファクト テーブル: POS エントリ (単位は DollarAmount です)
  • ディメンション テーブル: プロモーション (これらは、販売が行われたときに有効な販売プロモーションです)

状況として、1 つの POS エントリを複数の異なるプロモーションに関連付けたいと考えています。これらのプロモーションは、非常に多くのプロモーションがあるため、独自のディメンションにすることはできません。

どうすればいいですか?

4

3 に答える 3

8

実際に「多値」ディメンションを使用している場合は、通常、Kimball が推奨するソリューションとして Bridge Table が使用されます。

「プロモーション」ディメンションは、各プロモーションとその属性 (開始日、終了日、クーポン コード、POS プロモーション コード、広告名など) の記録です。プロモーションから製品への関係は、ファクト テーブルに反映されるため、ここではモデル化されていません。

プロモーション/ディスカウント ディメンションは次のようになります (一意の計画されたプロモーションごとに 1 行)

Promotion Dim ID
Promo Code
Coupon Code
Promo Start DTTM
Promo End DTTM
... etc ...

セールス ファクトは次のようになります。

Tran Date
Tran Line #
Customer Dim ID
Product Dim ID
Promotion Group Dim ID
Net Sale Price
Average Cost
Discount Amount

「プロモーション グループ」ブリッジ テーブルは、組み合わせのセットになります。

Promotion Group Dim ID
Promotion Dim ID

3 つのプロモーションがあるセールが発生した場合、各プロモーションに関連するグループ ID を作成し、そのグループ ID をファクト テーブルに配置します。これは、医療報告システムが複数の診断を処理する方法と非常によく似ています。

Bridge テーブルを使用すると、売上を簡単に二重にカウントできることに注意してください。そのため、この方法を使用するレポートは、モデルを理解している人が開発することをお勧めします。

于 2012-12-03T14:20:50.043 に答える
1

時間はほとんどの場合、スター スキーマのディメンションです。

「発効中」は、プロモーションの開始日と終了日があることを示しています。

そのため、プロモーション自体が時間ディメンションへの開始日と終了日を参照するファクトである場合があります。

このようなモデルを使用すると、JOIN テーブルを使用して、ファクト間で多対多の方法で販売とプロモーションを関連付けることができます。

「たくさん、たくさん」のプロモーション - はい。1 日 1 件ということは、1 年に 365 件のレコードを意味します。プロモーションは何らかの形で製品またはカテゴリに関連付けられていると仮定します。セールには、タイムスタンプと複数の製品があります。

いつかどこかに保管しないと、モデルがバラバラになります。プロモーションをそのようにモデル化することに躊躇するのはなぜですか?

私のアドバイスは、データのサイズを気にせず、できる限り問題のモデル化に集中することです。最初に論理モデルを正しく理解してから、物理モデルとデータ サイズに注意してください。

于 2010-05-06T23:46:51.043 に答える
0

金額が同じであっても、プロモーションごとにファクト レコードをロードする必要があります。実際、この例のプロモーションの各タイプがこの特定の金額で正確に表されている場合、プロモーション タイプのキーとともにファクト レコードをロードする必要があります。これには、他の関連するディメンション (日付を含む) へのキーも含まれます。

ここでの主なポイントは、データの重複について心配しないことです。たとえば、ファースト フード会社の販売指向のデータ ウェアハウスについて考えてみましょう。$4.13 のファクト レコードは 1 つだけではないと推測できます。これは、「お得な食事 #3」の 100 万件の個別の売上を表すために使用されます。代わりに、"Transaction" ディメンションの各レコードは、この架空の Sales ファクト テーブルの少なくとも 1 つの特定のファクト レコードと関係を持ちます。

于 2010-05-07T14:10:20.403 に答える