0

SSAS では、Visual Studio からディメンションを手動で処理するときに、ディメンション キー エラーを無視するオプションがあります。しかし、大量のビンジングとグーグル検索にもかかわらず、XMLA スクリプトでこれに相当するものは見当たりませんでした。可能であれば、親切に助けてください。

4

2 に答える 2

2

XMLAスクリプトは、オプションで処理したい次元/事実/データベースについて言及するだけです。残りのキューブのすべての設定 (例: 重複キーを無視) は、キューブ自体から継承されます。したがって、SSAS キューブでこれらのプロパティを設定した場合は、処理されます。ただし、各ディメンションを個別に処理して、XMLA を介して他の重要な関連の問題を回避できますが、簡単ではありません。各ディメンションの XMLA スクリプトを取得する必要があります。例:

    <Batch xmlns="http://schemas.microsoft.com/analysisservices/2003/engine">
  <Parallel>
    <Process xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ddl2="http://schemas.microsoft.com/analysisservices/2003/engine/2" xmlns:ddl2_2="http://schemas.microsoft.com/analysisservices/2003/engine/2/2" xmlns:ddl100_100="http://schemas.microsoft.com/analysisservices/2008/engine/100/100" xmlns:ddl200="http://schemas.microsoft.com/analysisservices/2010/engine/200" xmlns:ddl200_200="http://schemas.microsoft.com/analysisservices/2010/engine/200/200" xmlns:ddl300="http://schemas.microsoft.com/analysisservices/2011/engine/300" xmlns:ddl300_300="http://schemas.microsoft.com/analysisservices/2011/engine/300/300">
      <Object>
        <DatabaseID>Database_Name</DatabaseID>
        <DimensionID>Dimension_Name</DimensionID>
      </Object>
      <Type>ProcessFull</Type>
      <WriteBackTableCreation>UseExisting</WriteBackTableCreation>
    </Process>
  </Parallel>
</Batch>

基本的に、SSAS キューブ自体からのディメンション キー エラーは回避できます。たとえば、テーブルに NULL と空白の両方があると、重複エラーが発生します。

アップデート

[データベース] > [プロセス] > [設定の変更]に移動して、ディメンションの設定を変更できます。 ここに画像の説明を入力

次に、ディメンション キーのエラー タブをクリックし、目的の値を設定します。

ここに画像の説明を入力

完了したら、[OK] をクリックし、スクリプトをクリックして、関連する XMLA スクリプトを生成します。 ここに画像の説明を入力

XMLA には、選択した値を持つErrorConfigurationノードが含まれていることがわかります。

XMLA - ReportAndStop

    <Batch xmlns="http://schemas.microsoft.com/analysisservices/2003/engine">
  <ErrorConfiguration xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ddl2="http://schemas.microsoft.com/analysisservices/2003/engine/2" xmlns:ddl2_2="http://schemas.microsoft.com/analysisservices/2003/engine/2/2" xmlns:ddl100_100="http://schemas.microsoft.com/analysisservices/2008/engine/100/100" xmlns:ddl200="http://schemas.microsoft.com/analysisservices/2010/engine/200" xmlns:ddl200_200="http://schemas.microsoft.com/analysisservices/2010/engine/200/200" xmlns:ddl300="http://schemas.microsoft.com/analysisservices/2011/engine/300" xmlns:ddl300_300="http://schemas.microsoft.com/analysisservices/2011/engine/300/300">
    <KeyErrorLimit>2</KeyErrorLimit>
    <KeyErrorLimitAction>StopLogging</KeyErrorLimitAction>
    <KeyNotFound>ReportAndStop</KeyNotFound>
    <KeyDuplicate>ReportAndStop</KeyDuplicate>
    <NullKeyConvertedToUnknown>ReportAndStop</NullKeyConvertedToUnknown>
    <NullKeyNotAllowed>ReportAndStop</NullKeyNotAllowed>
  </ErrorConfiguration>
  <Parallel>
    <Process xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ddl2="http://schemas.microsoft.com/analysisservices/2003/engine/2" xmlns:ddl2_2="http://schemas.microsoft.com/analysisservices/2003/engine/2/2" xmlns:ddl100_100="http://schemas.microsoft.com/analysisservices/2008/engine/100/100" xmlns:ddl200="http://schemas.microsoft.com/analysisservices/2010/engine/200" xmlns:ddl200_200="http://schemas.microsoft.com/analysisservices/2010/engine/200/200" xmlns:ddl300="http://schemas.microsoft.com/analysisservices/2011/engine/300" xmlns:ddl300_300="http://schemas.microsoft.com/analysisservices/2011/engine/300/300">
      <Object>
        <DatabaseID>Database_Name</DatabaseID>
      </Object>
      <Type>ProcessFull</Type>
      <WriteBackTableCreation>UseExisting</WriteBackTableCreation>
    </Process>
  </Parallel>
</Batch>

すべてのデフォルトを他の値に変更して同じものを生成し、XMLA を取得したら、必要な値を指定することもできます。

于 2015-09-23T07:31:17.587 に答える
0

ここで 2 つの簡単なアプローチ。

A. Visual Studio から

ここに画像の説明を入力

B. SQL Server Management Studio から ここに画像の説明を入力

生成された XMLA スクリプトは、XMLA スクリプトに ErrorConfiguration 要素を表示しませんが、構成した無視エラーを自動的に処理します。これらの XMLA スクリプトを SQL Server エージェントまたはサービスの任意の場所で使用して、キューブ/ディメンションを自動的に処理できます。

于 2015-09-24T21:43:17.333 に答える