SQL Server エージェントで SSAS 管理タスクのスケジュール設定を行う

適用対象: SQL Server Analysis Services Azure Analysis Services Fabric/Power BI Premium

SQL Server エージェント サービスを使用すると、必要な順序と時間で実行SQL Server Analysis Services管理タスクをスケジュールできます。 定期タスクは、一定の周期または指定した周期で実行されるプロセスを自動化するのに役立ちます。 キューブ処理などの管理タスクは、ビジネス活動が盛んでない時間帯に実行されるようにスケジュールできます。 また、SQL Server エージェント ジョブでジョブ ステップを作成することにより、タスクの実行順序を指定できます。 たとえば、キューブを処理した後でバックアップを実行できます。

ジョブ ステップを使用すると、実行フローを制御できます。 あるジョブが失敗した場合に、残りのタスクを引き続き実行するか、実行を停止するように、SQL Server エージェントを構成できます。 また SQL Server エージェントを、ジョブ実行の成否についての通知を送信するように構成することもできます。

このトピックでは、SQL Server エージェントを使用して XMLA スクリプトを実行する方法を 2 つ紹介します。 最初の例では、単一のディメンションの処理をスケジュール設定する方法を示します。 2 番目の例では、スケジュールに従って実行される単一のスクリプトに複数の処理タスクを組み合わせる方法を示します。 このチュートリアルを完了するには、次の条件を満たす必要があります。

前提条件

SQL Server エージェント サービスがインストールされている必要があります。

既定では、ジョブはサービス アカウントで実行されます。 SQL Server エージェントの既定のアカウントは NT Service\SQLAgent$<instancename です>。 バックアップまたは処理タスクを実行するには、このアカウントが Analysis Services インスタンスのシステム管理者である必要があります。 詳細は、「Grant server admin rights to an Analysis Services instance」 (Analysis Services インスタンスにサーバー管理者権限を付与する) を参照してください。

操作対象のテスト データベースも必要です。 AdventureWorks 多次元サンプル データベースまたはプロジェクトを Analysis Services 多次元チュートリアルから配置して、このチュートリアルで使用できます。 詳細については、「 Analysis Services 多次元モデリング チュートリアル用のサンプル データおよびプロジェクトのインストール」を参照してください。

例 1: 定期タスクでのディメンションの処理

この例では、ディメンションを処理するジョブを作成し、スケジュール設定を行う方法を示します。

スケジュールされたタスクSQL Server Analysis Servicesは、SQL Server エージェント ジョブに埋め込まれた XMLA スクリプトです。 このジョブは、指定した時刻と頻度で実行されるようにスケジュールされます。 SQL Server エージェントはSQL Serverの一部であるため、データベース エンジンとSQL Server Analysis Servicesの両方を使用して管理タスクを作成およびスケジュールします。

SQL Server エージェント ジョブでディメンションを処理するスクリプトを作成する

  1. SQL Server Management Studioで、SQL Server Analysis Servicesに接続します。 データベース フォルダーを開き、ディメンションを検索します。 ディメンションを右クリックし、 [処理]をクリックします。

  2. [ディメンションの処理] ダイアログ ボックスにある [オブジェクト一覧][処理オプション]列で、この列のオプションが [完全処理]であることを確認します。 別のオプションが設定されている場合、 [処理オプション]列のオプションをクリックし、表示される一覧から [完全処理] を選択します。

  3. [スクリプト]をクリックします。

    この手順により、ディメンションを処理する XMLA スクリプトを含む XML クエリ ウィンドウが表示されます。

  4. [ディメンションの処理] ダイアログ ボックスで、 [キャンセル] をクリックしてダイアログ ボックスを閉じます。

  5. XMLA クエリ ウィンドウで、強調表示された XMLA スクリプトを右クリックし、 [コピー]をクリックします。

    この手順により、XMLA スクリプトが Windows クリップボードにコピーされます。 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">  
        <Object>  
          <DatabaseID>Adventure Works DW Multidimensional</DatabaseID>  
          <DimensionID>Dim Account</DimensionID>  
        </Object>  
        <Type>ProcessFull</Type>  
        <WriteBackTableCreation>UseExisting</WriteBackTableCreation>  
      </Process>  
     </Parallel>  
    </Batch>  
    

ディメンション処理ジョブを作成してスケジュールを設定する

  1. データベース エンジンのインスタンスに接続し、オブジェクト エクスプローラーを開きます。

  2. [SQL Server エージェント]を展開します。

  3. [ジョブ] を右クリックし、 [新しいジョブ]をクリックします。

  4. [新しいジョブ] ダイアログ ボックスで、 [名前]ボックスにジョブ名を入力します。

  5. [ページの選択]で、 [ステップ]を選択し、 [新規作成]をクリックします。

  6. [新しいジョブ ステップ] ダイアログ ボックスで、 [ステップ名]にステップ名を入力します。

  7. [サーバー] で、名前付きインスタンスの既定のインスタンスのSQL Server Analysis Servicesと localhost\<instance 名>に「localhost」と入力します。

    リモート コンピューターからジョブを実行する場合は、ジョブが実行されるサーバー名およびインスタンス名を使用します。 既定のインスタンスの場合はサーバー名>、<名前付きインスタンスの場合はサーバー名>\<インスタンス名>の形式<を使用します。

  8. [種類]で、 [SQL Server Analysis Services コマンド]を選択します。

  9. [コマンド]で、右クリックして [貼り付け]を選択します。 前の手順で生成した XMLA スクリプトがコマンド ウィンドウに表示されます。

  10. [OK] をクリックします。

  11. [ページの選択]で、 [スケジュール]をクリックし、 [新規作成]をクリックします。

  12. [新しいジョブ スケジュール] ダイアログ ボックスで、 [名前]ボックスにスケジュール名を入力し、 [OK]をクリックします。

    この手順により、日曜日午前 12 時 00 分のスケジュールが作成されます。 次の手順では、ジョブを手動で実行する方法を示します。 ジョブを監視しているときに、ジョブを実行するスケジュールを指定することもできます。

  13. [新しいジョブ] ダイアログ ボックスで、 [OK]をクリックします。

  14. オブジェクト エクスプローラーで、 [ジョブ]を展開し、作成したジョブを右クリックして、 [ステップでジョブを開始]をクリックします。

    このジョブにはステップが 1 つしかないため、すぐにジョブが実行されます。 ジョブに複数のステップが含まれている場合、ジョブを開始するステップを選択できます。

  15. ジョブが完了したら、 [閉じる]をクリックします。

例 2: 定期タスクでのディメンションおよびパーティションのバッチ処理

この例の手順では、SQL Server Analysis Services データベース ディメンションをバッチ処理するジョブを作成およびスケジュールする方法と、同時に集計のディメンションに依存するキューブ パーティションを処理する方法を示します。 SQL Server Analysis Services オブジェクトのバッチ処理の詳細については、「バッチ処理 (Analysis Services)」を参照してください。

SQL Server エージェント ジョブでディメンションとパーティションをバッチ処理するスクリプトを作成する

  1. 同じデータベースを使用して、 [ディメンション]を展開し、 [Customer] ディメンションを右クリックして [処理]をクリックします。

  2. [ディメンションの処理] ダイアログ ボックスにある [オブジェクト一覧][処理オプション]列で、この列のオプションが [完全処理]であることを確認します。

  3. [スクリプト]をクリックします。

    この手順により、ディメンションを処理する XMLA スクリプトを含む XML クエリ ウィンドウが表示されます。

  4. [ディメンションの処理] ダイアログ ボックスで、 [キャンセル] をクリックしてダイアログ ボックスを閉じます。

  5. [キューブ][Adventure Works][メジャー グループ][インターネット販売][パーティション]の順に展開し、一覧の最後のパーティションを右クリックして [処理]をクリックします。

  6. [パーティションの処理] ダイアログ ボックスにある [オブジェクト一覧][処理オプション]列で、この列のオプションが [完全処理]であることを確認します。

  7. [スクリプト]をクリックします。

    この手順により、パーティションを処理する XMLA スクリプトを含む 2 番目の XML クエリ ウィンドウが表示されます。

  8. [パーティションの処理] ダイアログ ボックスで、 [キャンセル] をクリックしてエディターを閉じます。

    この時点で、2 つのスクリプトをマージし、ディメンションが最初に処理されるようにする必要があります。

    警告

    パーティションが最初に処理された場合、後続のディメンション処理により、パーティションが未処理になる可能性があります。 その場合、パーティションを処理済みの状態にするには、2 番目の処理が必要です。

  9. パーティションを処理する XMLA スクリプトを含む XMLA クエリ ウィンドウで、 Batch タグおよび Parallel タグの内側にあるコードを強調表示し、強調表示されたスクリプトを右クリックして [コピー]をクリックします。

    <Process xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">  
        <Object>  
          <DatabaseID> Adventure Works DW Multidimensional</DatabaseID>  
          <CubeID>Adventure Works</CubeID>  
          <MeasureGroupID>Fact Internet Sales 1</MeasureGroupID>  
          <PartitionID> Internet_Sales_2004</PartitionID>  
        </Object>  
        <Type>ProcessFull</Type>  
        <WriteBackTableCreation>UseExisting</WriteBackTableCreation>  
      </Process>  
    
  10. ディメンションを処理する XMLA スクリプトを含む XMLA クエリ ウィンドウを開きます。 スクリプト内で </Process> タグの左まで右クリックし、 [貼り付け]をクリックします。

    次の例は、変更後の 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">  
        <Object>  
          <DatabaseID>Adventure Works DW Multidimensional</DatabaseID>  
          <DimensionID>Dim Customer</DimensionID>  
        </Object>  
        <Type>ProcessFull</Type>  
        <WriteBackTableCreation>UseExisting</WriteBackTableCreation>  
      </Process>  
      <Process xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">  
        <Object>  
          <DatabaseID>Adventure Works DW Multidimensional</DatabaseID>  
          <CubeID>Adventure Works</CubeID>  
          <MeasureGroupID>Fact Internet Sales 1</MeasureGroupID>  
          <PartitionID>Internet_Sales_2004</PartitionID>  
        </Object>  
        <Type>ProcessFull</Type>  
        <WriteBackTableCreation>UseExisting</WriteBackTableCreation>  
      </Process>  
     </Parallel>  
    </Batch>  
    
  11. 変更後の XMLA スクリプトを強調表示し、強調表示されたスクリプトを右クリックして [コピー]をクリックします。

  12. この手順により、XMLA スクリプトが Windows クリップボードにコピーされます。 XMLA スクリプトをクリップボードに残しておくか、ファイルに保存するか、メモ帳または別のテキスト エディターに貼り付けます。

バッチ処理ジョブを作成してスケジュールを設定する

  1. SQL Serverのインスタンスに接続し、オブジェクト エクスプローラーを開きます。

  2. [SQL Server エージェント]を展開します。 サービスが実行されていない場合は開始します。

  3. [ジョブ] を右クリックし、 [新しいジョブ]をクリックします。

  4. [新しいジョブ] ダイアログ ボックスで、 [名前]ボックスにジョブ名を入力します。

  5. [ステップ]で、 [新規作成]をクリックします。

  6. [新しいジョブ ステップ] ダイアログ ボックスで、 [ステップ名]にステップ名を入力します。

  7. [種類]で、 [SQL Server Analysis Services コマンド]を選択します。

  8. [実行するアカウント名]で、 [SQL Server エージェント サービスのアカウント]を選択します。 「前提条件」で説明したように、このアカウントには Analysis Services に対する管理権限が必要です。

  9. [サーバー]で、Analysis Services インスタンスのサーバー名を指定します。

  10. [コマンド]で、右クリックして [貼り付け]を選択します。

  11. [OK] をクリックします。

  12. [スケジュール] ページで [新規作成]をクリックします。

  13. [新しいジョブ スケジュール] ダイアログ ボックスで、 [名前]ボックスにスケジュール名を入力し、 [OK]をクリックします。

    この手順により、日曜日午前 12 時 00 分のスケジュールが作成されます。 次の手順では、ジョブを手動で実行する方法を示します。 ジョブを監視しているときに、ジョブを実行するスケジュールを選択することもできます。

  14. [OK] をクリックしてダイアログ ボックスを閉じます。

  15. オブジェクト エクスプローラーで、 [ジョブ]を展開し、作成したジョブを右クリックして、 [ステップでジョブを開始]をクリックします。

    このジョブにはステップが 1 つしかないため、すぐにジョブが実行されます。 ジョブに複数のステップが含まれている場合、ジョブを開始するステップを選択できます。

  16. ジョブが完了したら、 [閉じる]をクリックします。

参照

処理オプションと設定 (Analysis Services)