0

データ ウェアハウスの SSIS は初めてです。Microsoft ビジネス インテリジェンス スタジオを使用しています。

私はそれぞれいくつかの PK を持つ 5 つの次元を持っています。ディメンションのすべての PK を含むファクト テーブルがあります。これは、それらが外部キー関係であることを意味します (スター スキーマのように)。

ファクト テーブルをロードするためのベスト プラクティスは何ですか。

私が行ったことは、5 つのディメンション間のクロス結合クエリを作成することであり、結果のセットがファクト テーブルにダンプされます。しかし、これは良い習慣ではないと思います。

私はMS SSISをまったく初めて使用します。ですから、提案を詳細に説明してください。

ありがとう

4

2 に答える 2

3

Microsoft Project Realの例を見てみましょう。また、Kimball の本を入手して、ファクト テーブルのロードに関する記事を読んでください。このトピックにはいくつかの章があります。

于 2011-06-13T12:05:06.590 に答える
1

ProjectRealとKimballに関する@Damirのポイントをエコーし​​ます。私は両方のファンです。

あなたの質問に答えるために、私はあなたにもう少し考えを与えると思います、

  • 日付ディメンションとその他の「静的」ディメンションを1回限りの読み込みとして読み込む
  • NULL値とUNKNOWN値を処理するために、すべてのディメンションにレコードをロードします
  • 寸法をロードします。ディメンションについては、タイプ1またはタイプ2の変更ディメンション列として必要なものを列ごとに決定します。正当な理由がない限り、注意して、ほとんどの場合タイプ1として選択してください。
  • [編集]ファクトテーブルに入るステージングトランザクションデータをビジネスキーを使用して新しいディメンションテーブルに結合することでファクトテーブルをロードし、ディメンションの外部キーを検索します。たとえば、販売トランザクションにはストア番号(ビジネスキー)があり、DimStore(前の手順ですでにロードされています)で検索すると、DimStoreのkStoreが得られ、そのトランザクションに対してkstoreを記録します。 FactSalesTransaction。

あなたが考慮すべき他の一般的な事柄(あなたの質問とは関係ありませんが、あなたが述べているならあなたは考慮すべきです)

  • データアーカイブ。データをオンラインで保持する期間はどれくらいですか?/いつ削除されますか?
  • テーブルのパーティション分割。非常に大きなファクトテーブルがある場合は、日付またはサブジェクト領域に基づいてパーティション化することを検討する必要があります。標準のロードプロセスの一部としてデータが古すぎる場合に古いパーティションを削除することに関していくつかの興味深いことを行うことができるので、日付は非常に良いです。
  • DWHを雪に覆われたスキーマとして使用し、一連のビューを使用してスノフレークを星に平らにします。これは、キューブの設計を簡素化するため、SQLDWHの上にOLAPキューブを配置する場合に特に便利です。
  • さまざまな環境(Dev / Test / etc / Prod)をどのように管理しますか?SQLServer構成スタイルの1つを使用することが不可欠です。
  • 必要なすべての変数と必要な構成/接続文字列を使用して、テンプレートSSISパッケージを作成します。新しいことを発見したときにパッケージを作り直す必要がなく、今それを行うための時間の負荷を節約できます。最初に簡単なプロトタイプを作成して、方法論を証明してください。
于 2011-06-15T15:41:41.440 に答える