1

私はSSASのファクトテーブルを設計しています.これは、何ができるかを示し、誰かにそれが何であるかを判断するためのプロトタイプシステムであるため、これを試したのはこれが初めてです.後。

いくつかのデータを作成し、現在ファクト テーブルを作成しようとしています。キューブは紹介を調べます。私が表示しようとしているのは、1 か月間に開かれた紹介の数、1 か月に閉じられた数、およびその月の任意の時点で開かれた数を示す経時的な情報です (つまり、前月にオープンし、翌月にクローズした可能性があります)。

これらの対策をどのように設計するのが最善であるかは、私が行き詰まっているところです。ファクト テーブルは 3 つにする必要がありますか?それとも 1 つでもかまいませんか? 3 つのファクト テーブルを作成すると、レコード番号とオープン日をリンクして、1 か月でオープンした番号を取得できます。レコード番号とクローズ日をリンクして、1 か月でクローズした番号を作成できますが、私が持っているものは月のどの時点でいつ開いていたかを説明することは考えられません。このテーブルでは、紹介ごとに毎日行を作成する必要がありますか? これは少し集中しているように見えるので、すぐに間違っていると思いました。

したがって、質問は 2 つあります。

  1. 1 つのテーブルで 3 つの測定を行うことはできますか?もしそうなら、これに最適な方法は何ですか?
  2. 月カウントの任意の時点で開くための最良の方法は何ですか?

私は本当にこれの初心者であり、締め切りが短いため、私を助ける必要があるのはグーグルだけなので、どんな考えでも大歓迎です。

私が持っている寸法:

人口統計: 記録番号; 性別; 民族; 生年月日;

紹介者: 記録番号; オープン日; 終了日;

時間: 日付; 月; クォーター; 年;

私が最初に設計したファクト テーブルは次のとおりです。

データ:

レコード番号; Opened_in_month; 月内休業; Open_in_month;

キューブを作成してから、数値がテスト データに入力した値と一致しないことがわかりました。そのため、ファクト テーブルを台無しにしてしまい、そのテーブルを再作成する必要があることがわかりました。

4

2 に答える 2

0

紹介のオープニングまたはクロージングであるイベントベースのアプローチを検討しましたか?

まず、ファクト テーブルの粒度レベルを決定する必要があります。1 か月の特定の日時におけるオープンな紹介の数を知る必要がある場合、ファクト テーブルは最小の粒度 (個々の紹介レコード) である必要があります。

FactReferrals: ( DateId, TimeId, EventId, RecordNumber, ReferralEventValue )

ここで、ReferralEventValueは、Referral が開くときは 1 の整数値であり、Referral が閉じるときは -1 です。EventId は、 と の 2 つのメンバーのみを持つディメンションを参照しOpenedますClosed

このアプローチにより、特定の期間における終了または開始されたイベントの数を取得できます。また、時間の開始から特定の時点までの合計を取ることで、ReferralEventValueその特定の時点でのオープン リファラルの正確な量を得ることができます。SSAS でこの合計を高速化するには、集計を設計するか、ReferralEventValue の累積合計である別のメジャーを作成します。

編集: もちろん、個々の参照の粒度でデータが必要ない場合は、ファクト テーブルをロードする前に、1 日または 1 か月ごとに ReferralEventValue をいつでも合計できます。

于 2013-08-23T12:37:50.660 に答える