サービスの資格情報を使用して、Adventure Works DWデータベースへのデータソース接続をセットアップしました。
DimDate
テーブルを使用してディメンションを作成しています。話を簡単にするために、Calendar Quarter
、Calendar Year
、Day Number of Month
、English Month Name
、およびDate Key
列のみを使用しています。
これらの各属性はAttributeHierarchyVisible = False
に設定されています。
Calendar Year
をHierarchies
にドラッグし、続いてCalendar Quarter
、English Month Name
、Day Number of Month
をドラッグしました。
属性Relationshipsを次のように設定します。
日付キー->月の日数->英語の月名->暦四半期->暦年
すべての関係はrigid
に設定されます。
このセットアップをデプロイしようとすると、次のエラーが発生します。
エラー2内部エラー:操作は正常に終了しませんでした。 0 0
エラー3サーバー:トランザクションの別の操作が失敗したため、現在の操作はキャンセルされました。 0 0
私もこの警告を受け取ります:
警告1 OLAPストレージエンジンのエラー:処理中に重複する属性キーが見つかりました:テーブル: 'dbo_DimDate'、列: 'CalendarQuarter'、値: '2'。属性は 'カレンダー四半期 '。0 0
何が起こっているのか、なぜこれがエラーになっているのか理解できません。私が使用している本は上記の手順を教えてくれましたが、Googleはこれまでに失敗しました(非常に恐ろしいことです)。
皆さんが私が間違っていることを理解するのを助けるためにあなたが与えることができるどんな助けも大歓迎です。
ディメンションのキー値が重複していることを示すエラーがSSASから報告されることがよくあります。ソースデータを確認したところ、重複は見つかりませんでした。このエラーがディメンションに表示される理由を明らかにすることはできませんが、エラーを回避してキューブの展開と処理を完了することができるソリューションを提供できます。
ディメンションオブジェクトを開いてプロパティを確認すると、ErrorConfigurationのセクションが表示されます。これを「カスタム」に変更すると、オブジェクトの処理中にエラーが発生したときにSSASに何を実行するかを指示できます。エラーをログに記録して処理を続行できるようにする場合は、KeyDuplicate、KeyNotFound、NullKeyConvertedToUnknown、NullKeyNotAllowedなど、デザインに適したプロパティの値として「ReportAndContinue」を使用します。 KeyErrorLimitを1に設定し、KeyErrorLimitActionをStopLoggingに設定して、ログファイルが同じまたは同様のエラーで過負荷にならないようにします。
私が言ったように、これは問題を解決しませんが、キューブが処理を継続することを可能にし、時にはそれで十分であることがわかりました。
エラーを抑制して、原因ではなく、症状を治療していると思います。
属性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
プロパティには異なるフィールドを使用できますが、キーにはキーを使用します。ああ、その月のキーで並べ替えると、これは月の古典的な並べ替えをアルファベット順にしなくなります。
これにより、ディメンションに問題が発生します。さらに重要なのは、キューブが間違った答えを出すことです。
処理エラーを無視することは決して良い考えではありません。これは修正するのが非常に簡単な問題です。キー属性を適切に設定するだけです。デフォルトでは、SSASは名前とキーに同じ列を使用します。
通常、この方法で設定する必要がある唯一の属性は、真のキーです(例外があります)。すべてのレコードで一意の列。あなたの投稿から、これはDateKey
だと思います。
残りの属性は複合キーを使用する必要があります。
キューブの問題を確認するには、AttributeHierarchyVisible = True
とデータで遊んでください。 SSASは、実行しようとしていることについて混乱しています。
ol penneyが 正解 を提供しました。これも役立つかもしれません Hilmar Buchtaによる処理中に重複した属性キーが見つかりました… 。
キーが重複していて、Ol Pennyが提案したことを行うには:
16062000--->062000-->Q12000--->2000