データベースまたはキューブを処理しようとするときのエラー メッセージ

この記事は、SQL Server Analysis Servicesでデータベースまたはキューブを処理しようとしたときにエラー メッセージが表示される問題を解決するのに役立ちます。

元の製品バージョン: SQL Server
元の KB 番号: 922673

現象

SQL Server Analysis Servicesでは、business Intelligence Development Studio または SQL Server Management Studio を使用して、データベースまたはキューブSQL Server処理しようとします。 ただし、プロセス操作は失敗し、次のエラー メッセージが表示されます。

  • エラー メッセージ 1

    OLAP ストレージ エンジン: のエラー 属性キーが見: つかりません TableName: 、Column: ColumnName1、Value: Value1。 Table: TableName、Column: ColumnName2、Value: Value2。

  • エラー メッセージ 2

    OLAP ストレージ エンジンのエラー: 属性キーが見つからなかったため、レコードはスキップされました。 属性: 生成されたディメンションの属性 X: DimensionName from Database: DatabaseName、Cube: CubeName、Measure Group: MeasureGroupName、Partition: PartitionName、Record: RecordNumber。

原因

この問題は、キューブのファクト テーブルに属性キーを含むレコードが 1 つ以上あり、この属性キーが対応するディメンション テーブルに存在しないために発生します。 この動作は、キューブを処理する前に対応するディメンションを処理していない場合、または基になるテーブルに実際にデータが一致しない場合に発生する可能性があります。 メッセージの "Value:" フィールドの後に数値がない場合は、ファクト テーブルに null データが含まれている必要があります。

解決方法

この問題を解決するには、データ ソースが次の場所を指していることを確認する必要があります。

  • SQL Serverのインスタンスなど、基になる正しいデータ ソース インスタンス。
  • 正しいデータベース。

次に、問題のある属性キーを含む基になるレコードを修正します。 それには、以下のいずれかの方法を使用します。

既存の属性キーを使用する

ステートメントを実行して既存の属性キーを使用するようにレコードを更新すると、次のようになります。

Update <TableName> set <KeyName>=<ExistingKeyValue> where <KeyName>=<BadKeyValue> or <KeyName> IS NULL

ファクト テーブルのキー値と一致する

ファクト テーブルのキー値と一致するように、ディメンション テーブルに追加の行を挿入します。 null 値が存在する場合は、次のいずれかの方法を使用します。

  • null 値を実際の値に置き換えます。

  • および プロパティを設定して、不明なメンバーを持つディメンションまたはディメンションをUnknownMemberUnknownMemberName構成します。 不明なメンバーは、ニーズに応じて表示または非表示にすることができます。

  • [ 設定の変更 ] ダイアログ ボックスでは、次のすべての設定を使用します。

    • プロパティを KeyErrorActionConvertToUnknown に設定します。
    • プロパティを NullKeyNotAllowedIgnoreError または ReportAndContinue に設定します
    • プロパティを NullKeyConvertedtoUnknownIgnoreError または ReportAndContinue に設定します
    • [ エラー数を無視する] をクリックします。

    これらの設定はインスタンス全体で設定することも、ディメンションごとにカスタム構成を使用することもできます。

エラーを無視する

データを修正せずにデータベースまたはキューブを処理する場合は、プロセス操作のエラー構成を設定してエラーを無視できます。 これは、基になるデータを修正する場合にのみ、一時的な回避策として実行する必要があります。 そうしないと、多次元式 (MDX) クエリから予期しない結果が得られます。 エラーを無視するには、次の手順に従います。

  1. [ Process Database -DatabaseName****] ダイアログ ボックスまたは [ Process Cube -CubeName****] ダイアログ ボックスで、[ 設定の変更] をクリックします。
  2. [ 設定の変更] ダイアログ ボックスで、[ ディメンション キーエラー ] タブをクリックします。
  3. [ カスタム エラー構成を使用する] をクリックします。
  4. [キーが見つかりません] の一覧で、既定値を [レポート] から変更し、[エラーの無視] に進みます。
  5. [ エラー数を無視する] をクリックします。
  6. [ OK] を クリックして 、[設定の変更] ダイアログ ボックスを閉じます。
  7. [ OK] を クリックして、データベースまたはキューブを処理します。

さらに、キューブまたはパーティションのエラー構成を設定して、エラーを無視することもできます。 詳細については、「 キューブ、パーティション、およびディメンション処理のエラー構成」を参照してください。

状態

この動作は仕様です。