5

データマートを構築しようとしています。1つまたは複数のファクトテーブル?

私は多くの次元と、いくつかの尺度 - 事実を持っています。すべての測定値は、ビジネスのすべての次元に関連付けられています。すべての尺度を持つ1つの大きなファクト表が存在するという標準的なアプローチがあります。

しかし私はアイデアを持っています。各小節ごとに別々のファクトテーブルがある場合はどうなりますか?データベースのパフォーマンス、ソリューションの拡張性などとは何でしょうか?

EDIT ::: 本当に複雑な企業環境では、olapキューブに基づく巨大なソリューションがあります。したがって、ニーズは容易に拡張性とメンテナンス性があり、最初はパフォーマンスです。

+0

小節ごとに別々のファクトテーブル? あなたはあなたが思っていることをより具体的にすることができますか? – Diego

+0

各メジャーのファクトテーブルは、メジャーと同じ数のファクトテーブルが存在することを意味します。メジャーは1つのみであり、そうでなければ、すべてのメジャーを含む1つの大きなファクトテーブルが存在します。 – John

答えて

7

崖のノート:スケーラビリティの問題は、1つのファクトテーブル/メジャーの概念に満ちています。

あなたの目標が「拡張性とメンテナンス」であれば、キンボールのような業界標準の方法論に従うことを検討し、ビジネスプロセスでファクトをグループ化し、次に準拠した次元で細分化します。これは、最大限の柔軟性を提供すると同時に、標準化による拡張性とメンテナンス性を確保しながらスケーラビリティを最大限に高めることができます。

あなたのSAN管理者は、メジャーごとに別個のファクトテーブルを設計すると、あなたの勇気が嫌いになります。単一のファクト表

DWに対するクエリのパフォーマンスも問題になります...レポートおよび/またはアドホッククエリは、スキャンしなければならない(または検索する... あなたのサン管理者がまだあなたと話していて、ファクトテーブルのごみを適切にインデックスするために必要なスペースを与えます。)いつでも1つ以上のメジャーを組み合わせる必要があります。

私たちはまだオラプルの立方体について議論していませんが、私はすでにあなたが持つ処理上の問題を恐れています。豊富なテーブルスキャン...またはパーティションスキャン...ファクトテーブルにパーティション化を実装すると...今、SQL Server 2012を水平にしてください... ColumnStore Indexを見ています!

0

すべてのメジャーの粒度が同じ場合は、それらを同じテーブルに保管してください。異なるレベルの細分度のファクトがある場合は、複数のファクト表の使用を開始するだけです。すべての事実がすべてのディメンションにリンクされていると言っているのを見て、この段階では、ファクト表が1つだけ必要なように見えます。

+0

Therは、ディメンションを多かれ少なかれ細かくしたり、事実を追加したり、ディメンションを追加したり、新しいETLを実行する必要があるこれらの変更要求の上に、ETLが多くのCPUパワーを長期間消費する可能性があるなど、何百万もの行が再び計算されることになるので、私はこのように見て、拡張性とメンテナンスを簡単にできるようにします。 – John

+0

ディメンションの変更、ディメンションの追加、ディメンションの追加...これらのすべてでは、ファクト表ごとにファクト表を分離するかどうかにかかわらず、ETL開発作業が必要になります。 –

関連する問題