2

プロセス更新でディメンションを処理しているときに、以下のエラーが発生します

OLAPストレージエンジンのエラー:ディメンションの増分処理中に、属性間の厳密な関係を変更することはできません。属性の処理中にエラーが発生しました。テーブル:'dbo_VW_myView'、列:'Some + Column'、値:'VTNSアフィリエイト'。ソース属性:。ソース属性のキー列の値:'ABBOTTLABORATORIES'。

いくつかの研究開発で、私はProcessUpdateを厳格な関係で行うことができず、ディメンションの関係を柔軟に変更することでキューブのパフォーマンスに大きな影響を与えることがわかりました。だから私の質問は、

この問題は、ディメンションを順番に処理することで修正できますか?はいの場合、ディメンションのシーケンシャルを動的に処理するにはどうすればよいですか。いいえの場合、ディメンションの更新を処理する他の方法は何でしょうか。

SSISを介してのみディメンションを処理する必要があります。

編集1

より正確に言うと、私は以下の手順を実行しています。

  1. パーティションを作成しています。
  2. 各ディメンションの処理-processAdd
  3. 処理パーティション-ProcessFull
  4. 処理データベース-ProcessDefault

およびProcessFullデータベースを週に1回

しかし、これでは、ディメンションの更新されたエントリを取得できないと思います。私のシーンリオはこれです。各ロードディメンション/ファクトは更新または挿入されるだけで、削除はされません。

それで、この場合、どの処理が私にとって有用でしょうか(私はあなたの推薦に上記のステップを含めるか除外することができます)?キューブパーティションを処理する前にディメンションをProcessDefaultできますか?

注:ステップ2がないと、処理は正常に機能しますが、その後、データベースを完全に処理すると、エラー操作が失敗し、作成したパーティションのリスト以外に特定のエラーは発生しません。(驚くべきことに、データベースを完全に処理すると、問題なくディメンションが処理されます)

Edit2

プロセス更新ディメンションを実行する別の方法はありますか?

4

2 に答える 2

2

このエラーをクリアするには、ディメンションを完全に処理する必要があります-しかし-これは、私が正しく覚えていれば、通常、関連するファクトテーブルを「未処理」のままにします。

マイク・ハニーは正しいです。何が起こったのかというと、何かが変わらないことをキューブに伝えてから、それを変更したということです。たとえば、自宅の住所が顧客IDに固定されていると言った顧客ディメンション-顧客が初めて住所を変更した場合、ディメンションの更新を処理することはできません。

これらの厳格で柔軟な関係を正しくすることは、本当に苦痛になる可能性があります-これまでに変更するとは思わないこと(生年月日)は行います-「顧客のために間違ったDOBを書き留めました」など... :(

于 2012-12-03T12:30:28.187 に答える
2

いいえ、ディメンションを別の順序で処理してこの問題を修正することはできません。エラーは1つの次元の内部にあります。これは、私が取り組んだすべての(日付以外の)ディメンション、さらには一部の日付ディメンションで避けられない、ディメンション内でのデータ変更の症状です。

研究開発を再検討し、柔軟なディメンション関係を使用してキューブのパフォーマンスを許容レベルに引き上げる必要があります。

于 2012-12-03T06:55:37.160 に答える