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

適用対象: ○SQL Server (Linux を含む)○Azure SQL Database ○Azure SQL Data Warehouse XParallel Data WarehouseAPPLIES TO: yesSQL Server, including on Linux yesAzure SQL Database yesAzure SQL Data Warehouse noParallel Data Warehouse

この記事で説明する方法の 1 つを選択することで、Azure SQL Database サーバーで SSISDB カタログにデプロイされている SSIS パッケージの実行をスケジュールできます。You can schedule the execution of SSIS packages deployed to the SSISDB Catalog on an Azure SQL Database server by choosing one of the methods described in this article. パッケージは直接スケジュールするか、Azure Data Factory パイプラインの一部として間接的にスケジュールできます。You can schedule a package directly, or schedule a package indirectly as part of an Azure Data Factory pipeline. Azure の SSIS の概要については、「SQL Server Integration Services ワークロードをクラウドにリフト アンド シフトする」を参照してください。For an overview about SSIS on Azure, see Lift and shift SQL Server Integration Services workloads to the cloud.

SSMS でパッケージをスケジュールするSchedule a package with SSMS

SQL Server Management Studio (SSMS) では、SSIS カタログ データベース SSISDB に配置されたパッケージを右クリックして [スケジュール] を選択することで、 [新しいスケジュール] ダイアログ ボックスを開くことができます。In SQL Server Management Studio (SSMS), you can right-click on a package deployed to the SSIS Catalog database, SSISDB, and select Schedule to open the New schedule dialog box. 詳細については、「SSMS を利用して Azure で SSIS パッケージのスケジュールを設定する」を参照してください。For more info, see Schedule SSIS packages in Azure with SSMS.

この機能には、SQL Server Management Studio バージョン 17.7 以降が必要です。This feature requires SQL Server Management Studio version 17.7 or higher. 最新バージョンの SSMS を入手するには、「SQL Server Management Studio (SSMS) のダウンロード」を参照してください。To get the latest version of SSMS, see Download SQL Server Management Studio (SSMS).

SQL Database エラスティック ジョブを使用してパッケージをスケジュールするSchedule a package with SQL Database Elastic Jobs

SQL Database のエラスティック ジョブに関する詳細については、「スケールアウトされたクラウド データベースの管理」を参照してください。For more info about elastic jobs on SQL Database, see Managing scaled-out cloud databases.

PrerequisitesPrerequisites

エラスティック ジョブを使用して、Azure SQL Database サーバー上の SSISDB カタログ データベースに格納されている SSIS パッケージをスケジュール設定するには、事前に次の作業を行う必要があります。Before you can use elastic jobs to schedule SSIS packages stored in the SSISDB Catalog database on an Azure SQL Database server, you have to do the following things:

  1. Elastic Database ジョブ コンポーネントをインストールして構成します。Install and configure the Elastic Database jobs components. 詳細については、「Elastic Database ジョブのインストールの概要」を参照してください。For more info, see Installing Elastic Database jobs overview.

  2. ジョブで SSIS カタログ データベースにコマンドを送信するために使用できるデータベース スコープの資格情報を作成します。Create database-scoped credentials that jobs can use to send commands to the SSIS Catalog database. 詳細については、「CREATE DATABASE SCOPED CREDENTIAL (Transact-SQL)」 (データベース スコープの資格情報を作成する (Transact-SQL)) を参照してください。For more info, see CREATE DATABASE SCOPED CREDENTIAL (Transact-SQL).

エラスティック ジョブの作成Create an elastic job

次の例に示されているスクリプトと同じような Transact-SQL スクリプトを使用して、ジョブを作成します。Create the job by using a Transact-SQL script similar to the script shown in the following example:

-- 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 エージェントを使用してパッケージのスケジュールを設定するSchedule a package with SQL Server Agent on premises

SQL Server エージェントの詳細については、「パッケージに対する SQL Server エージェント ジョブ」を参照してください。For more info about SQL Server Agent, see SQL Server Agent Jobs for Packages.

前提条件 - リンク サーバーを作成するPrerequisite - Create a linked server

オンプレミスの SQL Server エージェントを使用して、Azure SQL Database サーバーに格納されているパッケージの実行をスケジュール設定するには、事前に SQL Database サーバーをリンク サーバーとしてオンプレミス SQL Server に追加する必要があります。Before you can use SQL Server Agent on premises to schedule execution of packages stored on an Azure SQL Database server, you have to add the SQL Database server to your on-premises SQL Server as a linked server.

  1. リンク サーバーを設定するSet up the linked 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='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. リンク サーバーの資格情報を設定するSet up linked server credentials

    -- Add your Azure SQL DB 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. リンク サーバーのオプションを設定するSet up linked server options

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

詳細については、「リンク サーバーの作成」と「リンク サーバー」を参照してください。For more info, see Create Linked Servers and Linked Servers.

SQL Server エージェント ジョブを作成するCreate a SQL Server Agent job

オンプレミスの SQL Server エージェントを使用してパッケージのスケジュールを設定するには、SSIS カタログ ストアド プロシージャ [catalog].[create_execution][catalog].[start_execution] を順に呼び出すジョブ ステップでジョブを作成します。To schedule a package with SQL Server Agent on premises, create a job with a job step that calls the SSIS Catalog stored procedures [catalog].[create_execution] and then [catalog].[start_execution]. 詳細については、「パッケージに対する SQL Server エージェント ジョブ」を参照してください。For more info, see SQL Server Agent Jobs for Packages.

  1. SQL Server Management Studio では、ジョブを作成するオンプレミスの SQL Server データベースに接続します。In SQL Server Management Studio, connect to the on-premises SQL Server database on which you want to create the job.

  2. SQL Server エージェント ノードを右クリックし、 [新規][ジョブ] の順に選択し、 [新しいジョブ] ダイアログ ボックスを開きます。Right-click on the SQL Server Agent node, select New, and then select Job to open the New Job dialog box.

  3. [新しいジョブ] ダイアログ ボックスで、 [手順] ページを選択し、 [新規] を選択して、 [新しいジョブ ステップ] ダイアログ ボックスを開きます。In the New Job dialog box, select the Steps page, and then select New to open the New Job Step dialog box.

  4. [新しいジョブ ステップ] ダイアログ ボックスで、SSISDBデータベースとして選択します。In the New Job Step dialog box, select SSISDB as the Database.

  5. [コマンド] フィールドで、次の例に示されたスクリプトのような Transact-SQL スクリプトを入力します。In the Command field, enter a Transact-SQL script similar to the script shown in the following example:

    -- 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. ジョブの構成とスケジュール設定を完了します。Finish configuring and scheduling the job.

Azure Data Factory パイプラインの一部としてパッケージのスケジュールを設定するSchedule a package as part of an Azure Data Factory pipeline

SSIS パッケージを実行する Azure Data Factory パイプラインの実行トリガーを使用し、パッケージのスケジュールを間接的に設定できます。You can schedule a package indirectly by using a trigger to run an Azure Data Factory pipeline that runs an SSIS package.

Data Factory パイプラインをスケジュールするには、次のトリガーの 1 つを使用します。To schedule a Data Factory pipeline, use one of the following triggers:

Data Factory パイプラインの一部として SSIS パッケージを実行するには、次のアクティビティのいずれかを使用します。To run an SSIS package as part of a Data Factory pipeline, use one of the following activities:

次の手順Next steps

Azure にデプロイされている SSIS パッケージの実行オプションを確認してください。Review the options for running SSIS packages deployed to Azure. 詳細については、「Azure で SSIS パッケージを実行する」を参照してください。For more info, see Run SSIS packages in Azure.