2

私はSQLServerAnalysis Servicesにまったく慣れていないので、最初のキューブを作成しようとしています(Adventure Worksチュートリアルを除く最初のキューブ)

問題は、いくつかのオプション(同じ2番目のテーブルを指すいくつかのキー)が存在する場合に、別のテーブルへのリンクとして機能するようにテーブル内の特定のフィールドを指定する方法です。

私のデータソースにはDepartmentテーブルがあります:(無関係なフィールドは省略されています)

| department_key (PK) | ...

そしてこのような規律テーブル:

| discipline_key (PK) | title | department_for_key (FK) | department_of_key (FK) | ...

Disciplineテーブルの両方の外部キーはDepartmentテーブルを指し、両方の制約についてDBで指定されています。それでもそれらの意味はかなり異なります。

SQL ServerデータツールでDisciplineディメンションを作成するときに、ディメンション内(またはディメンション全体)の特定の階層のレベル間のリンクとして使用する外部キーを指定したいのですが、見つかりませんでしたこれを明示的に行う方法。

department_of_key興味深いことに、SSDT(またはSSAS)が、レベルを関連付けるために今必要な列()を使用することがあります。それでも、将来的には別の次元(または同じ次元の新しい階層)で2番目のキーを使用したいと思う可能性があるため、プロセスを制御する方法を知っておくとよいでしょう。

この質問は単純なものだと思いますが、これまでのところ解決策を見つけることができませんでした。また、SSASに関するチュートリアルには何か関連性があると感じていますが、そこでは何の助けも見つかりませんでした。

ご回答ありがとうございます!

(質問のより良いタイトルに関する推奨事項もありがたいです=))

4

1 に答える 1

3

このためにSSASの関係定義に依存することは避けます。結果はあいまいすぎて、投稿をデバッグするのが困難です。

各ディメンションのスコープ全体をカバーするSQLビュー(理想的にはSSAS専用)を作成します。これは独立してテストし、SSASにフィードして予測可能な結果を​​得ることができます。

SQLビューを使用すると、スキーマの変更やデータの問題(Nullなど)からキューブを分離できるという利点もあります。

于 2013-03-13T04:00:13.100 に答える