次の方法で共有


Analysis Services ジョブ ステップを作成する

適用対象:SQL ServerAzure SQL Managed Instance

大事な

Azure SQL Managed Instance では、SQL Server エージェントのほとんどの機能が現在サポートされているわけではありません。 詳細については、SQL Server からの Azure SQL Managed Instance の を参照してください。

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

開始する前に

限界と制限事項

  • ジョブ ステップで Analysis Services コマンドを使用する場合、コマンド ステートメントは Analysis Services Execute メソッドの XML である必要があります。 ステートメントには、完全な簡易オブジェクト アクセス プロトコル (SOAP) エンベロープまたは分析用 XML Discover メソッドが含まれていない場合があります。 SQL Server Management Studio では完全な SOAP エンベロープと Discover メソッドがサポートされていますが、SQL Server エージェントのジョブ ステップではサポートされません。 Analysis Services の XML に関する詳細は、「XML for Analysis Overview (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 スクリプト ジョブ ステップを作成するには

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