5

皆さんへのSSASでの質問です。OLAP SSAS キューブ環境で 1 対多の関係を定義しようとしています。ただし、主キーの定義で問題が発生しています。例の表を以下に示します。最初の 3 つのテーブル間の関係は簡単に定義できます (TradeDate、NYMEX 取引、および NYMEX 契約)。ただし、私の目標は、NYMEX コントラクトとモデル コントラクトの間に 1 対多の関係を作成することです。つまり、1 つの NYMEX 契約のデータがモデル契約データセットで複数回利用されます。

表: 取引日

  • 取引日 (PK)
  • 月など...

表: NYMEX 取引 (PK なし)

  • 契約名
  • 取引日
  • 価格

表: NYMEX コントラクト

  • 契約名 (PK)

表: モデル契約

  • モデル契約名 (PK)
  • 契約名

NYMEX コントラクトとモデル コントラクトの間に 1 対多の関係を作成する必要がありますが、私の PK はモデル コントラクトの間違った列にあります。何か案は?

明確にするために、ディメンション --> ディメンションの関係を定義しようとしています。テーブル「Model Contract」はルックアップ テーブルです。

4

2 に答える 2

6

これは、ファクト データ (取引) とディメンション データ (モデル コントラクト) の間の多対多の関係の例です。これを見てください:次元関係。モデル契約は1つの契約名にしか割り当てることができないため、あなたのケースはまれなケースですが、それでも多対多のケースに該当します. これは、次元モデリングではブリッジ テーブルを使用して処理され、SSAS では中間ファクト テーブルと呼ばれます。DSV を次のようにセットアップしたら、次のようにします。 ここに画像の説明を入力

次に、プロジェクトでディメンションを作成し、ModelContract のメジャー グループを作成して、それを中間ファクト テーブルとして使用できるようにします。次に、多対多の関係を選択して、キューブのディメンションの使用法を設定します。

ここに画像の説明を入力 ここに画像の説明を入力

補足として、ディメンションには常に代理キーを使用する必要があります。それらには、ファクト テーブル内のストレージ スペース、緩やかに変化するディメンション、ソース システムの分離など、いくつかの利点があります。

于 2012-05-01T19:17:15.423 に答える
0

ここで2次元を実行する必要があります。

まず、ディメンション全体の一部として日付を追加しないでください。日付自体はディメンションとして存在する必要があります。

第二に、私が見るように、あなたはNYMEX契約とモデル契約に参加して次元を作る必要があります。名前付きクエリを使用してDSVでそれらを結合するか、SQLビューを作成するか、DSVで両方のテーブルを分離してディメンションで結合することができます。

第三に、NYMEXTradesはあなたのファクトテーブルです。以前の両方のディメンションを作成したら、それらをキューブに追加し、ContractNameフィールドとTradeDateフィールドを使用して、ディメンション関係タブのファクトテーブルと結合する必要があります。

于 2012-05-01T08:18:42.837 に答える