Azure でデプロイされている SQL Server Integration Services (SSIS) パッケージの実行スケジュールを設定する
適用対象: SQL Server Azure Data Factory の SSIS Integration Runtime
この記事で説明する方法の 1 つを選択することで、Azure SQL Database サーバーで SSISDB カタログにデプロイされている SSIS パッケージの実行をスケジュールできます。 パッケージは直接スケジュールするか、Azure Data Factory パイプラインの一部として間接的にスケジュールできます。 Azure の SSIS の概要については、「SQL Server Integration Services ワークロードをクラウドにリフト アンド シフトする」を参照してください。
パッケージのスケジュールを直接設定する
SSMS でパッケージをスケジュールする
SQL Server Management Studio (SSMS) では、SSIS カタログ データベース SSISDB
に配置されたパッケージを右クリックして [スケジュール] を選択することで、[新しいスケジュール] ダイアログ ボックスを開くことができます。 詳細については、「SSMS を利用して Azure で SSIS パッケージのスケジュールを設定する」を参照してください。
この機能には、SQL Server Management Studio バージョン 17.7 以降が必要です。 最新バージョンの SSMS を入手するには、「SQL Server Management Studio (SSMS) のダウンロード」を参照してください。
SQL Database エラスティック ジョブを使用してパッケージをスケジュールする
SQL Database のエラスティック ジョブに関する詳細については、「スケールアウトされたクラウド データベースの管理」を参照してください。
前提条件
エラスティック ジョブを使用して、Azure SQL Database サーバー上の SSISDB カタログ データベースに格納されている SSIS パッケージをスケジュール設定するには、事前に次の作業を行う必要があります。
Elastic Database ジョブ コンポーネントをインストールして構成します。 詳細については、「Elastic Database ジョブのインストールの概要」を参照してください。
ジョブで SSIS カタログ データベースにコマンドを送信するために使用できるデータベース スコープの資格情報を作成します。 詳細については、「CREATE DATABASE SCOPED CREDENTIAL (Transact-SQL)」 (データベース スコープの資格情報を作成する (Transact-SQL)) を参照してください。
エラスティック ジョブの作成
次の例に示されているスクリプトと同じような Transact-SQL スクリプトを使用して、ジョブを作成します。
-- Create Elastic Jobs target group
EXEC jobs.sp_add_target_group 'TargetGroup'
-- Add Elastic Jobs target group member
EXEC jobs.sp_add_target_group_member @target_group_name='TargetGroup',
@target_type='SqlDatabase', @server_name='YourSQLDBServer.database.windows.net',
@database_name='SSISDB'
-- Add a job to schedule SSIS package execution
EXEC jobs.sp_add_job @job_name='ExecutePackageJob', @description='Description',
@schedule_interval_type='Minutes', @schedule_interval_count=60
-- Add a job step to create/start SSIS package execution using SSISDB catalog stored procedures
EXEC jobs.sp_add_jobstep @job_name='ExecutePackageJob',
@command=N'DECLARE @exe_id bigint
EXEC [SSISDB].[catalog].[create_execution]
@folder_name=N''folderName'', @project_name=N''projectName'',
@package_name=N''packageName'', @use32bitruntime=0,
@runinscaleout=1, @useanyworker=1,
@execution_id=@exe_id OUTPUT
EXEC [SSISDB].[catalog].[start_execution] @exe_id, @retry_count=0',
@credential_name='YourDBScopedCredentials',
@target_group_name='TargetGroup'
-- Enable the job schedule
EXEC jobs.sp_update_job @job_name='ExecutePackageJob', @enabled=1,
@schedule_interval_type='Minutes', @schedule_interval_count=60
オンプレミス SQL Server エージェントを使用してパッケージのスケジュールを設定する
SQL Server エージェントの詳細については、「パッケージに対する SQL Server エージェント ジョブ」を参照してください。
前提条件 - リンク サーバーを作成する
オンプレミスの SQL Server エージェントを使用して、Azure SQL Database サーバーに格納されているパッケージの実行をスケジュール設定するには、事前に SQL Database サーバーをリンク サーバーとしてオンプレミス SQL Server に追加する必要があります。 次の例では、Microsoft OLE DB Driver for SQL Server を使用します。
リンク サーバーを設定する
-- Add the SSISDB database on your Azure SQL Database as a linked server to your SQL Server on premises EXEC sp_addlinkedserver @server='myLinkedServer', -- Name your linked server @srvproduct='', @provider='MSOLEDBSQL', -- Microsoft OLE DB Driver for SQL Server @datasrc='<server_name>.database.windows.net', -- Add your Azure SQL Database server endpoint @location='', @provstr='', @catalog='SSISDB' -- Add SSISDB as the initial catalog
リンク サーバーの資格情報を設定する
-- Add your Azure SQL Database server admin credentials EXEC sp_addlinkedsrvlogin @rmtsrvname = 'myLinkedServer', @useself = 'false', @rmtuser = 'myUsername', -- Add your server admin username @rmtpassword = 'myPassword' -- Add your server admin password
リンク サーバーのオプションを設定する
EXEC sp_serveroption 'myLinkedServer', 'rpc out', true;
詳細については、「リンク サーバーの作成」と「リンク サーバー」を参照してください。
SQL Server エージェント ジョブを作成する
オンプレミスの SQL Server エージェントを使用してパッケージのスケジュールを設定するには、SSIS カタログ ストアド プロシージャ [catalog].[create_execution]
と [catalog].[start_execution]
を順に呼び出すジョブ ステップでジョブを作成します。 詳細については、「パッケージに対する SQL Server エージェント ジョブ」を参照してください。
SQL Server Management Studio では、ジョブを作成するオンプレミスの SQL Server データベースに接続します。
SQL Server エージェント ノードを右クリックし、[新規]、[ジョブ] の順に選択し、[新しいジョブ] ダイアログ ボックスを開きます。
[新しいジョブ] ダイアログ ボックスで、[手順] ページを選択し、[新規] を選択して、[新しいジョブ ステップ] ダイアログ ボックスを開きます。
[新しいジョブ ステップ] ダイアログ ボックスで、
SSISDB
をデータベースとして選択します。[コマンド] フィールドで、次の例に示されたスクリプトのような Transact-SQL スクリプトを入力します。
-- T-SQL script to create and start SSIS package execution using SSISDB stored procedures DECLARE @return_value int, @exe_id bigint EXEC @return_value = [YourLinkedServer].[SSISDB].[catalog].[create_execution] @folder_name=N'folderName', @project_name=N'projectName', @package_name=N'packageName', @use32bitruntime=0, @runincluster=1, @useanyworker=1, @execution_id=@exe_id OUTPUT EXEC [YourLinkedServer].[SSISDB].[catalog].[set_execution_parameter_value] @exe_id, @object_type=50, @parameter_name=N'SYNCHRONIZED', @parameter_value=1 EXEC [YourLinkedServer].[SSISDB].[catalog].[start_execution] @execution_id=@exe_id
ジョブの構成とスケジュール設定を完了します。
Azure Data Factory パイプラインの一部としてパッケージのスケジュールを設定する
SSIS パッケージを実行する Azure Data Factory パイプラインの実行トリガーを使用し、パッケージのスケジュールを間接的に設定できます。
Data Factory パイプラインをスケジュールするには、次のトリガーの 1 つを使用します。
Data Factory パイプラインの一部として SSIS パッケージを実行するには、次のアクティビティのいずれかを使用します。
次の手順
Azure にデプロイされている SSIS パッケージの実行オプションを確認してください。 詳細については、「Azure で SSIS パッケージを実行する」を参照してください。