web-dev-qa-db-ja.com

SSASディメンション階層により展開エラーが発生する

サービスの資格情報を使用して、Adventure Works DWデータベースへのデータソース接続をセットアップしました。

DimDateテーブルを使用してディメンションを作成しています。話を簡単にするために、Calendar QuarterCalendar YearDay Number of MonthEnglish Month Name、およびDate Key列のみを使用しています。

これらの各属性はAttributeHierarchyVisible = Falseに設定されています。

Calendar YearHierarchiesにドラッグし、続いてCalendar QuarterEnglish Month NameDay Number of Monthをドラッグしました。

属性Relationshipsを次のように設定します。

日付キー->月の日数->英語の月名->暦四半期->暦年

すべての関係はrigidに設定されます。

このセットアップをデプロイしようとすると、次のエラーが発生します。

エラー2内部エラー:操作は正常に終了しませんでした。 0 0
エラー3サーバー:トランザクションの別の操作が失敗したため、現在の操作はキャンセルされました。 0 0

私もこの警告を受け取ります:

警告1 OLAPストレージエンジンのエラー:処理中に重複する属性キーが見つかりました:テーブル: 'dbo_DimDate'、列: 'CalendarQuarter'、値: '2'。属性は 'カレンダー四半期 '。0 0

何が起こっているのか、なぜこれがエラーになっているのか理解できません。私が使用している本は上記の手順を教えてくれましたが、Googleはこれまでに失敗しました(非常に恐ろしいことです)。

皆さんが私が間違っていることを理解するのを助けるためにあなたが与えることができるどんな助けも大歓迎です。

5
Lumpy

ディメンションのキー値が重複していることを示すエラーがSSASから報告されることがよくあります。ソースデータを確認したところ、重複は見つかりませんでした。このエラーがディメンションに表示される理由を明らかにすることはできませんが、エラーを回避してキューブの展開と処理を完了することができるソリューションを提供できます。

ディメンションオブジェクトを開いてプロパティを確認すると、ErrorConfigurationのセクションが表示されます。これを「カスタム」に変更すると、オブジェクトの処理中にエラーが発生したときにSSASに何を実行するかを指示できます。エラーをログに記録して処理を続行できるようにする場合は、KeyDuplicate、KeyNotFound、NullKeyConvertedToUnknown、NullKeyNotAllowedなど、デザインに適したプロパティの値として「ReportAndContinue」を使用します。 KeyErrorLimitを1に設定し、KeyErrorLimitActionをStopLoggingに設定して、ログファイルが同じまたは同様のエラーで過負荷にならないようにします。

私が言ったように、これは問題を解決しませんが、キューブが処理を継続することを可能にし、時にはそれで十分であることがわかりました。

0
ScottCher

エラーを抑制して、原因ではなく、症状を治療していると思います。

属性RelationshipsをDate Key -> Day Number Of Month -> English Month Name-> Calendar Quarter -> Calendar Yearに設定します

そのデータが次のようになっている場合:

「16062000」-> 6->「6月」--->「Q2」-> 2000

次に、Analysis Servicesは実際にこぶを取得します。Q2については、2000および2001などにQ2が供給されます。

階層が一意のキーで構成されていることを確認する必要があります。例:

16062000 ---> 062000-> Q12000 ---> 2000

各属性のNameプロパティには異なるフィールドを使用できますが、キーにはキーを使用します。ああ、その月のキーで並べ替えると、これは月の古典的な並べ替えをアルファベット順にしなくなります。

8
ol penney

これにより、ディメンションに問題が発生します。さらに重要なのは、キューブが間違った答えを出すことです。

処理エラーを無視することは決して良い考えではありません。これは修正するのが非常に簡単な問題です。キー属性を適切に設定するだけです。デフォルトでは、SSASは名前とキーに同じ列を使用します。

通常、この方法で設定する必要がある唯一の属性は、真のキーです(例外があります)。すべてのレコードで一意の列。あなたの投稿から、これはDateKeyだと思います。

残りの属性は複合キーを使用する必要があります。

キューブの問題を確認するには、AttributeHierarchyVisible = Trueとデータで遊んでください。 SSASは、実行しようとしていることについて混乱しています。

ol penneyが 正解 を提供しました。これも役立つかもしれません Hilmar Buchtaによる処理中に重複した属性キーが見つかりました…

7
Kenneth

キーが重複していて、Ol Pennyが提案したことを行うには:

16062000--->062000-->Q12000--->2000
  1. ディメンションを編集する
  2. プロパティウィンドウでKeyColumnsの右側をクリックします。
  3. NameColumnを明示的に指定する
0
Kay Tsar