2017-03-29 2 views
2

私たちのチームのディスカッションポイントについては、少し議論の余地があるようです。 Microsoft SQL Server 2012プラットフォームのデータウェアハウスに取り組んでいます。私たちはこのデータウェアハウスを構築するためにKimball Architectureに従ってきました。意見を求める:SSRSレポートのパフォーマンスを向上させるための非正規化のファクトテーブルとディムテーブル

問題:事実と薄暗いテーブルからデータを調達する際、この倉庫からデータをソース(SSRS上に構築された)

レポーティングソリューションは、大幅なパフォーマンスの問題があります。私たちのチームメンバーの中には、事実からデータを抽出し、SSISパッケージを使用して新しいテーブルセットに暗くすることを提案している人もいます。これは、これらのテーブルを「スナップショット」テーブルに非正規化することを意味します。このようにして、これらのテーブルを結合してレポート内にデータセットを作成する必要はありません。これらのテーブルから直接データを読み取ることができます。

私はこれについて自分の心配があります。矛盾、異なるデータ構造のメンテナンス、データの複製などがあります。

質問:

は、あなたがテーブルに適切なアプローチを報告するために(事実と薄暗いテーブルをdenormalisingで)スナップショット表を作成することを検討しますか?

あなたの意見をお聞きしたいと思います。

乾杯 私のアドバイスは、常にあなたのテーブルを非正規化し、1回のファクト表と各次元(スタースキーマ)ごとに1つのテーブルを持ってしようとするだろう、生キューブのパフォーマンスのためのニシン

+0

私は考えられた答えに亀裂があり、私が考えることができる場合は代替案を提案したいと思います。しかし、まず、問題の事実や曖昧さについてもっと説明し、多分その違いの例を挙げてみてください。特に、非正規化の事実や薄暗い表が何を意味するのかを知りたいと思います。とにかく灰色は通常は非正規化され、事実はトランザクション型、スナップショット型、または累積型スナップショットです。トランザクションの事実に加えてスナップショットを作成することについて話していますか?また、SSASにアクセスできますか? – Rich

+0

ドロップダウンなどを動かすのに苦労しましたか(ソース列よりも別の値のリストを好む)か、これよりも大きいのですか? –

答えて

1

スナップショットテーブルに問題がないとは思わない。データウェアハウスの最も重要な2つの側面は次のとおりです。

  1. データは正しいです。
  2. このデータは有用です。

ユーザーが必要な合計を抽出できない場合は、合理的なタイムスケールで倉庫を使用しません。

独自のソリューションには、3つのスナップショットテーブルが含まれています。あなたのように、私は不一致を心配していました。これに対処するため、私たちは自動チェックプロセスを構築しました。このサブシステムは、ネットワークドライブに格納された一連のクエリを1時間に1回実行します。クエリによって返されたレコードはすべて失敗とみなされます。不合格が報告され、すぐに私のETLチームによって調査されます。このサブシステムは、スナップショットと基礎となる事実が常に整合し、互いに一致することを保証します。ドリフトが防止されます。

つまり、追加のテーブルは複雑さになります。そしてそれには、管理に多くの時間と労力が必要です。あなたの倉庫に別のレイヤーを導入する前に、これらのクエリーがなぜ成果の下がっているのかを調べるべきです。結合が非難される場合:

  1. P/Fキーに不適切なデータ型を使用していますか?
  2. FKeysは索引付けされていますか(一部のRDBMSではこれがデフォルトで行われていますが、そうでないものもあります)。
  3. 違反しているクエリの実行計画を見ましたか?
  4. ジョインは本当に責任があるのですか、それともdimテーブルに適用されるフィルタですか?
+0

ありがとうございました...チームは依然として、私たちが提起した質問のいくつかに答える必要があり、提起したポイントは私たちが尋ねたものとうまく対応していると思います...あなたの考えは、右のトラック.. Cheers Nithin –

1

。 実際に役立つかどうかわからない場合は、マテリアライズド・ビューの作成を開始できます。これらは両方の世界の中で最高のものですが、長期的にはあなたのetlを変えるべきです。 私の以前の仕事では、かなりうまく機能するテーブルを平坦化しただけでした。私たちは正規化されたスキーマを持っていますが、最後のステップでそれを平坦化します。

+0

質問者は、すでにデータウェアハウスを構築するためにKimballを使用していると言いました。 – Rich

+0

投稿を読み直した後、私はまだ分かりません。多分あなたが提案したようにopが彼の質問を明確にするでしょう。 – Kaylon

+0

こんにちはリッチ/ケイロン これは単なる例です:Dim_SimpleとDim_ProductとDim_Dateを持つFact_Salesがあります。理想的には、販売措置を報告していた場合は、ファクトテーブルの上にクエリを記述し、そのキーに基づいてDim_LocationとDim_ProductとDim_Dateに結合します。クエリの結果はレポートを通じて報告されます。 一部のチームメンバは、クエリで結合されたテーブルをETLパッケージを介して集計テーブルに追加する必要があります。この表の上で実行されるレポートは、より良いパフォーマンスを提供します。これは良い練習ですか? お返事 Nithin –

関連する問題