计划 Azure 中部署的 SQL Server Integration Services (SSIS) 包的执行

适用于:SQL Server Azure 数据工厂中的 SSIS Integration Runtime

可以通过选择本文介绍的方法之一,计划已部署到 Azure SQL 数据库服务器上 SSISDB 目录中的 SSIS 包的执行。 可以直接计划包,或作为 Azure 数据工厂管道的一部分间接地计划包。 有关 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 数据库弹性作业计划安排一个包

有关 SQL 数据库上的弹性作业的详细信息,请参阅管理横向扩展的云数据库

先决条件

在可以使用弹性作业来计划存储在 Azure SQL 数据库服务器上 SSISDB 目录数据库中的 SSIS 包之前,必须先完成以下操作:

  1. 安装并配置弹性数据库作业组件。 有关详细信息,请参阅安装弹性数据库作业概述

  2. 创建数据库范围的凭据,作业可使用该凭据将命令发送到 SSIS 目录数据库。 有关详细信息,请参阅 CREATE DATABASE SCOPED CREDENTIAL(创建数据库范围的凭据)(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 数据库服务器作为链接服务器添加到本地 SQL Server,才能在本地使用 SQL Server 代理来计划安排存储在 Azure SQL 数据库服务器上的包的执行。 下面的示例使用 Microsoft OLE DB Driver for 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='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
    
  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 数据工厂管道的一部分计划包

可通过使用触发器间接地计划包,从而运行用于运行 SSIS 包的 Azure 数据工厂管道。

若要计划数据工厂管道,请使用以下触发器之一:

若要将 SSIS 包作为数据工厂管道的一部分运行,请使用以下活动之一:

后续步骤

查看用于运行部署到 Azure 的 SSIS 包的选项。 有关详细信息,请参阅在 Azure 中运行 SSIS 包