Create an Analysis Services Job Step
適用対象: SQL Server Azure 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 コマンドまたはクエリを使用する 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 コマンド ジョブ ステップを作成するには
オブジェクト エクスプローラー で、 SQL Server データベース エンジンのインスタンスに接続し、そのインスタンスを展開します。
[SQL Server エージェント] を展開し、新しいジョブを作成するか、既存のジョブを右クリックして [プロパティ] をクリックします。 ジョブの作成の詳細については、「 ジョブの作成」を参照してください。
[ジョブのプロパティ] ダイアログ ボックスで [ステップ] タブをクリックし、 [新規作成]をクリックします。
[新しいジョブ ステップ] ダイアログ ボックスで、ジョブの [ステップ名]を入力します。
[種類] ボックスの一覧で、 [SQL Server Analysis Services コマンド]をクリックします。
[実行するアカウント名] ボックスの一覧で、その Analysis Services コマンド サブシステムを使用するように定義済みのプロキシを選択します。 ユーザーが sysadmin 固定サーバー ロールのメンバーである場合は、 [SQL エージェント サービスのアカウント] を使用してこのジョブ ステップを実行することもできます。
[サーバー] でジョブ ステップを実行するサーバーを選択するか、サーバー名を入力します。
実行するステートメントを [コマンド] ボックスに入力します。または、 [開く] をクリックしてステートメントを選択します。
[詳細設定] ページをクリックして、ジョブ ステップが成功または失敗した場合に SQL Server エージェントによって実行されるアクション、ジョブ ステップの試行回数、ジョブ ステップ出力の出力先など、このジョブ ステップに関するさまざまなオプションを定義します。
Analysis Services クエリ ジョブ ステップを作成するには
オブジェクト エクスプローラー で、 SQL Server データベース エンジンのインスタンスに接続し、そのインスタンスを展開します。
[SQL Server エージェント] を展開し、新しいジョブを作成するか、既存のジョブを右クリックして [プロパティ] をクリックします。 ジョブの作成の詳細については、「 ジョブの作成」を参照してください。
[ジョブのプロパティ] ダイアログで [ステップ] ページをクリックし、 [新規作成] をクリックします。
[新しいジョブ ステップ] ダイアログの [ステップ名] ボックスにジョブ ステップ名を入力します。
[種類] ボックスの一覧で、 [SQL Server Analysis Services クエリ]をクリックします。
[実行するアカウント名] ボックスの一覧で、その Analysis Services クエリ サブシステムを使用するように定義済みのプロキシを選択します。 ユーザーが sysadmin 固定サーバー ロールのメンバーである場合は、 [SQL エージェント サービスのアカウント] を使用してこのジョブ ステップを実行することもできます。
[サーバー] および [データベース] で、ジョブ ステップを実行するサーバーとデータベースを選択するか、サーバー名またはデータベース名を直接入力します。
実行するステートメントを [コマンド] ボックスに入力します。または、 [開く] をクリックしてステートメントを選択します。
[詳細設定] ページをクリックして、ジョブ ステップが成功または失敗した場合に SQL Server エージェントによって実行されるアクション、ジョブ ステップの試行回数、ジョブ ステップ出力の出力先など、このジョブ ステップに関するさまざまなオプションを定義します。
Transact-SQL の使用
Analysis Services コマンド ジョブ ステップを作成するには
オブジェクト エクスプローラーで、 データベース エンジンのインスタンスに接続します。
[標準] ツール バーの [新しいクエリ] をクリックします。
次の例をコピーしてクエリ ウィンドウに貼り付け、 [実行] をクリックします。
-- 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 クエリ ジョブ ステップを作成するには
オブジェクト エクスプローラーで、 データベース エンジンのインスタンスに接続します。
[標準] ツール バーの [新しいクエリ] をクリックします。
次の例をコピーしてクエリ ウィンドウに貼り付け、 [実行] をクリックします。
-- 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) プログラミング ガイド」を参照してください。