ファクトディメンションの属性キー重複
-
2011年12月4日 12:56
BI初心者で、かつ初めての投稿になります。よろしくお願いします。
SSASにてファクトディメンションを処理すると「重複した属性キーが処理中に見つかりました」と表示されてしまう属性があります。(属性のキーも名称も同一のものを設定しています)
下記フォーラムの情報からキー項目の末尾に半角スペースが入っているとエラーになるケースがあるということはわかったのですが、Trimming設定を「None」にしても解決しません。
http://social.msdn.microsoft.com/Forums/ja/sqlserverbija/thread/47d2771b-109d-4872-bd53-46e78cca2790該当するカラムにRTRIMを行ったものを属性にしてみたり、末尾の半角スペースだけでなく全角スペースを削ってみたりといろいろ試しましたが、やはり重複エラーとなってしまいます。
他にファクトディメンションにて属性キーが重複するケースがあるのでしょうか?
重複エラーを無視する設定があることもわかったのですが、できれば原因が知りたいところです。(補足)
ファクトテーブルには1千万件近いレコードが格納されています。
ファクトディメンションを作成する目的としてはドリルスルーにてデータソースの全項目を表示したいためです。
こちらに関しては下記フォーラムの情報を参考にしています。
http://social.msdn.microsoft.com/Forums/ja/sqlserverbija/thread/3f78fe53-ec54-4dd8-b062-169fc320ada5
- 編集済み S.Ya 2011年12月4日 12:59
すべての返信
-
2011年12月7日 7:55
まず、同一キーのエラーが発生するのはディメンジョンの処理中
と理解しましたが、よろしいでしょうか?(キー重複はここでしか出ないか・・・)キー重複は、
「同一キーで別々の上位階層に紐づいているデータがある」
「同一キーで別々の名称/Valueとなるデータがある」
という場合に発生します。(他にも可能性はありますが)キー重複の調べ方としては、
処理中に表示される画面のツリーの中に、発行されているSQLが
出力されていると思いますので、そのSQLの実行結果を入手することが
調査の第一歩です。さらに、警告ログとして、どのようなデータが「重複」と判定されたかが
出力されるはずですので、これに該当するデータを上記出力結果から
リストアップします。根本的なデータ不整合でなければ、他の可能性として
記載いただいている「trim」の問題の他に
・末尾の空白は、DBでは別々に扱われるが、SSASではTRIMされて扱われる
・NULLと空白は、DBでは別々に扱われるが、SSASでは同一として扱われる(通常は)
・その他、照合順序の違いで、下記のポイントに相違が出る
[全角・半角][大文字・小文字]
等があります。
---------------------------------
Infospire Kayano- 回答の候補に設定 山本春海Moderator 2011年12月12日 8:38
- 回答としてマーク S.Ya 2011年12月19日 13:39
-
2011年12月12日 14:21
私も知識の浅い者ですので参考になるかわかりませんが、
ディメンションの主テーブルでなく、関連テーブルから取得している項目の場合、キー項目に同一の値があると重複エラーになります。
この場合、重複エラーを無視して処理を行うと集計が正しく行われないので、原因となっているデータを探して修正する必要があります。
重複エラーが起こった項目のディメンション、テーブル、列、値がログに出力されているはずですので、目星をつけたらデータソースのテーブルにSQLを実行するなどして重複している列項目を特定してください。
重複エラーの原因が上述の通りであった場合、KeyColumensプロパティを表示名と同一でなくリレーションキーに設定することで回避できます。
-
2011年12月19日 13:25
>IS Kayano様
返信が遅くなってしまい申し訳ありません。やはりディメンションの処理中に重複キーエラーが出る件は
>・末尾の空白は、DBでは別々に扱われるが、SSASではTRIMされて扱われる
>・NULLと空白は、DBでは別々に扱われるが、SSASでは同一として扱われるこのどちらかかもしれません。大変参考になりました。
(時間が取れず原因調査はできていません・・・)別件で重複キーエラーが出る問題にぶち当たりまして、
そちらは下記にスレを変えて質問したいと思います。
http://social.msdn.microsoft.com/Forums/ja-JP/sqlserverbija/thread/fb69e1a9-a9a1-4bbf-9b64-7842ffcde65aよろしければこちらにも回答頂けると助かります。
ありがとうございました。- 編集済み S.Ya 2011年12月19日 13:27
-
2011年12月19日 13:33
>Ka4Wa様
ディメンションの主テーブルで重複キーエラーが出ていたため、困惑していた次第です。
この場合、KeyColumensプロパティを表示名と同一にすることで、SQLで言うところの
「GROUP BY」と同一の動きをすると思っていたのですが、違った様です。ご回答ありがとうございました。
新たな重複キーエラーの件についても何らか情報を頂けると助かります。
http://social.msdn.microsoft.com/Forums/ja-JP/sqlserverbija/thread/fb69e1a9-a9a1-4bbf-9b64-7842ffcde65a

