Azure でデプロイされている SQL Server Integration Services (SSIS) パッケージの実行スケジュールを設定する

適用対象: はいSQL Server (サポートされているすべてのバージョン) はい Azure Data Factory の SSIS 統合ランタイム

この記事で説明する方法の 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 パッケージをスケジュール設定するには、事前に次の作業を行う必要があります。

  1. Elastic Database ジョブ コンポーネントをインストールして構成します。 詳細については、「Elastic Database ジョブのインストールの概要」を参照してください。

  2. ジョブで 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 に追加する必要があります。

  1. リンク サーバーを設定する

    -- 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='sqlncli', -- Use SQL Server native client
        @datasrc='<server_name>.database.windows.net', -- Add your Azure SQL Database server endpoint
        @location='',
        @provstr='',
        @catalog='SSISDB'  -- Add SSISDB as the initial catalog
    
  2. リンク サーバーの資格情報を設定する

    -- 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
    
  3. リンク サーバーのオプションを設定する

    EXEC sp_serveroption 'myLinkedServer', 'rpc out', true;
    

詳細については、「リンク サーバーの作成」と「リンク サーバー」を参照してください。

SQL Server エージェント ジョブを作成する

オンプレミスの SQL Server エージェントを使用してパッケージのスケジュールを設定するには、SSIS カタログ ストアド プロシージャ [catalog].[create_execution][catalog].[start_execution] を順に呼び出すジョブ ステップでジョブを作成します。 詳細については、「パッケージに対する SQL Server エージェント ジョブ」を参照してください。

  1. SQL Server Management Studio では、ジョブを作成するオンプレミスの SQL Server データベースに接続します。

  2. SQL Server エージェント ノードを右クリックし、[新規][ジョブ] の順に選択し、[新しいジョブ] ダイアログ ボックスを開きます。

  3. [新しいジョブ] ダイアログ ボックスで、[手順] ページを選択し、[新規] を選択して、[新しいジョブ ステップ] ダイアログ ボックスを開きます。

  4. [新しいジョブ ステップ] ダイアログ ボックスで、SSISDBデータベース として選択します。

  5. [コマンド] フィールドで、次の例に示されたスクリプトのような 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
    
  6. ジョブの構成とスケジュール設定を完了します。

Azure Data Factory パイプラインの一部としてパッケージのスケジュールを設定する

SSIS パッケージを実行する Azure Data Factory パイプラインの実行トリガーを使用し、パッケージのスケジュールを間接的に設定できます。

Data Factory パイプラインをスケジュールするには、次のトリガーの 1 つを使用します。

Data Factory パイプラインの一部として SSIS パッケージを実行するには、次のアクティビティのいずれかを使用します。

次の手順

Azure にデプロイされている SSIS パッケージの実行オプションを確認してください。 詳細については、「Azure で SSIS パッケージを実行する」を参照してください。