Create an Analysis Services Job Step

適用対象: SQL ServerAzure SQL Managed Instance

重要

現在、Azure SQL Managed Instance によって、すべてではありませんが、ほとんどの SQL Server エージェントの機能がサポートされています。 詳細については、Azure SQL Managed Instance と SQL Server での相違点に関するページを参照してください。

このトピックでは、SQL Server Management Studio、Transact-SQL または SQL Server 管理オブジェクトを使用して、SQL Server で SQL Server Analysis Services のコマンドとクエリを実行する SQL Server エージェントのジョブ ステップを作成および定義する方法について説明します。

はじめに

制限事項と制約事項

  • ジョブ ステップで Analysis Services コマンドを使用する場合、コマンド ステートメントは XML for Analysis Services の Execute メソッドである必要があります。 ステートメントには、完全な SOAP (Simple Object Access Protocol) エンベロープまたは XML for Analysis の Discover メソッドを含めることはできません。 SQL Server Management Studio では、完全な SOAP エンベロープと Discover メソッドをサポートしていますが、SQL Server エージェント ジョブのステップではサポートしていません。 XML for Analysis Services の詳細については、「 XML for Analysis の概要 (XMLA)」を参照してください。

  • ジョブ ステップで Analysis Services クエリを使用する場合、クエリ ステートメントは多次元式 (MDX) クエリである必要があります。 MDX の詳細については、「 MDX ステートメントの基礎 (MDX)」を参照してください。

セキュリティ

アクセス許可

  • Analysis Services サブシステムを使用するジョブ ステップを実行できるのは、 sysadmin 固定サーバー ロールのメンバーであるか、このサブシステム用に定義された有効なプロキシ アカウントへアクセスできるユーザーだけです。 さらに、SQL Server エージェント サービス アカウントまたはプロキシは、Analysis Services 管理者であり、かつ有効な Windows ドメイン アカウントである必要があります。

  • sysadmin 固定サーバー ロールのメンバーのみがジョブ ステップ出力をファイルに書き込むことができます。 msdb データベースで SQLAgentUserRole データベース ロールのメンバーであるユーザーによってジョブ ステップが実行される場合、出力はテーブルのみに書き込むことができます。 SQL Server エージェントによって、ジョブ ステップ出力が、msdb データベースの sysjobstepslog テーブルに書き込まれます。

  • 詳細については、「 SQL Server エージェントのセキュリティの実装」をご覧ください。

SQL Server Management Studio を使用する

Analysis Services コマンド ジョブ ステップを作成するには

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

  2. [SQL Server エージェント] を展開し、新しいジョブを作成するか、既存のジョブを右クリックして [プロパティ] をクリックします。 ジョブの作成の詳細については、「 ジョブの作成」を参照してください。

  3. [ジョブのプロパティ] ダイアログ ボックスで [ステップ] タブをクリックし、 [新規作成]をクリックします。

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

  5. [種類] ボックスの一覧で、 [SQL Server Analysis Services コマンド]をクリックします。

  6. [実行するアカウント名] ボックスの一覧で、その Analysis Services コマンド サブシステムを使用するように定義済みのプロキシを選択します。 ユーザーが sysadmin 固定サーバー ロールのメンバーである場合は、 [SQL エージェント サービスのアカウント] を使用してこのジョブ ステップを実行することもできます。

  7. [サーバー] でジョブ ステップを実行するサーバーを選択するか、サーバー名を入力します。

  8. 実行するステートメントを [コマンド] ボックスに入力します。または、 [開く] をクリックしてステートメントを選択します。

  9. [詳細設定] ページをクリックして、ジョブ ステップが成功または失敗した場合に SQL Server エージェントによって実行されるアクション、ジョブ ステップの試行回数、ジョブ ステップ出力の出力先など、このジョブ ステップに関するさまざまなオプションを定義します。

Analysis Services クエリ ジョブ ステップを作成するには

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

  2. [SQL Server エージェント] を展開し、新しいジョブを作成するか、既存のジョブを右クリックして [プロパティ] をクリックします。 ジョブの作成の詳細については、「 ジョブの作成」を参照してください。

  3. [ジョブのプロパティ] ダイアログで [ステップ] ページをクリックし、 [新規作成] をクリックします。

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

  5. [種類] ボックスの一覧で、 [SQL Server Analysis Services クエリ]をクリックします。

  6. [実行するアカウント名] ボックスの一覧で、その Analysis Services クエリ サブシステムを使用するように定義済みのプロキシを選択します。 ユーザーが sysadmin 固定サーバー ロールのメンバーである場合は、 [SQL エージェント サービスのアカウント] を使用してこのジョブ ステップを実行することもできます。

  7. [サーバー] および [データベース] で、ジョブ ステップを実行するサーバーとデータベースを選択するか、サーバー名またはデータベース名を直接入力します。

  8. 実行するステートメントを [コマンド] ボックスに入力します。または、 [開く] をクリックしてステートメントを選択します。

  9. [詳細設定] ページをクリックして、ジョブ ステップが成功または失敗した場合に SQL Server エージェントによって実行されるアクション、ジョブ ステップの試行回数、ジョブ ステップ出力の出力先など、このジョブ ステップに関するさまざまなオプションを定義します。

Transact-SQL の使用

Analysis Services コマンド ジョブ ステップを作成するには

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

  2. [標準] ツール バーの [新しいクエリ] をクリックします。

  3. 次の例をコピーしてクエリ ウィンドウに貼り付け、 [実行] をクリックします。

    -- Creates a job step that uses XMLA to create a relational data source that
    -- references the AdventureWorks2022 Microsoft SQL Server database.  
    USE msdb;  
    GO  
    EXEC sp_add_jobstep  
        @job_name = N'Weekly Sales Data Backup',  
        @step_name =
            N'Create a relational data source that references the AdventureWorks2022 Microsoft SQL Server database',  
        @subsystem = N'ANALYSISCOMMAND',  
        @command =
            N' <Create xmlns="http://schemas.microsoft.com/analysisservices/2003/engine">  
        <ParentObject>  
            <DatabaseID>AdventureWorks2022</DatabaseID>  
        </ParentObject>  
        <ObjectDefinition>  
            <DataSource xmlns:xsd="http://www.w3.org/2001/XMLSchema"
                xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                xsi:type="RelationalDataSource">  
                <ID>AdventureWorks2022</ID>  
                <Name>Adventure Works 2022</Name>  
                <ConnectionString>Data Source=localhost;Initial Catalog=AdventureWorks2022;Integrated Security=True</ConnectionString>  
                <ImpersonationInfo>  
                    <ImpersonationMode>ImpersonateServiceAccount</ImpersonationMode>  
                </ImpersonationInfo>  
                <ManagedProvider>System.Data.SqlClient</ManagedProvider>  
                <Timeout>PT0S</Timeout>  
            </DataSource>  
        </ObjectDefinition>  
    </Create>', ;  
    GO  
    

詳細については、「 sp_add_jobstep (Transact-SQL)」を参照してください。

Analysis Services クエリ ジョブ ステップを作成するには

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

  2. [標準] ツール バーの [新しいクエリ] をクリックします。

  3. 次の例をコピーしてクエリ ウィンドウに貼り付け、 [実行] をクリックします。

    -- Creates a job step that uses MDX to return data  
    USE msdb;  
    GO  
    EXEC sp_add_jobstep  
        @job_name = N'Weekly Sales Data Backup',  
        @step_name = N'Returns the Internet sales amount by state',  
        @subsystem = N'ANALYSISQUERY',  
        @command = N' SELECT  
       [Measures].[Internet Sales Amount] ON COLUMNS,  
       [Customer].[State-Province].Members ON ROWS  
    FROM [AdventureWorks2022]',   
        @retry_attempts = 5,  
        @retry_interval = 5 ;  
    GO  
    

詳細については、「 sp_add_jobstep (Transact-SQL)」を参照してください。

SQL Server 管理オブジェクトの使用

PowerShell スクリプト ジョブ ステップを作成するには

XMLA や MDX などのプログラミング言語で、 JobStep クラスを使用します。 詳細については、「 SQL Server 管理オブジェクト (SMO) プログラミング ガイド」を参照してください。