Поделиться через


Планирование выполнения пакетов служб SQL Server Integration Services (SSIS), развернутых в Azure

Область применения:SQL Server Среда выполнения интеграции SSIS в Azure Data Factory

Для планирования выполнения пакетов служб SSIS, развернутых в каталоге SSISDB на сервере базы данных SQL Azure, можно выбрать один из методов, описанных в этой статье. Можно запланировать прямое выполнение пакета или косвенное выполнение в составе конвейера фабрики данных Azure. Общие сведения о службах SSIS в Azure см. в статье Перенос рабочих нагрузок SQL Server Integration Services в облако.

Планирование пакета с помощью SSMS

В среде управления SQL Server Management Studio (SSMS) можно щелкнуть правой кнопкой мыши на пакете, развернутом в базе данных каталога SSIS, SSISDB, и выбрать «Расписание», чтобы открыть диалоговое окно «Создать расписание». Дополнительные сведения см. в статье Планирование выполнения пакетов служб SSIS в Azure с помощью SSMS.

Установите последнюю версию SQL Server Management Studio (SSMS).

Запланируйте пакет с помощью гибких заданий SQL Database.

Дополнительные сведения о заданиях обработки эластичных баз данных SQL см. в разделе Управление облачными базами данных с горизонтальным масштабированием.

Предварительные условия

Прежде чем использовать задания обработки эластичных баз данных для планирования пакетов SSIS, хранящихся в каталоге базы данных SSISDB на сервере базы данных SQL Azure, необходимо выполнить следующие действия:

  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 Server в локальной среде для планирования выполнения пакетов, хранящихся на сервере базы данных SQL Azure, нужно добавить сервер базы данных SQL Database в локальный SQL Server в качестве связанного сервера. В приведенном ниже примере используется драйвер Microsoft OLE DB для 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. Настройка учетных данных связанного сервера

    Замените <password> допустимым паролем.

    -- Add your Azure SQL Database server admin credentials
    EXEC sp_addlinkedsrvlogin
        @rmtsrvname = 'myLinkedServer',
        @useself = 'false',
        @rmtuser = 'myUsername', -- Add your server admin username
        @rmtpassword = '<password>' -- 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

Можно запланировать косвенное выполнение пакета с помощью триггера, запускающего конвейер фабрики данных Azure, где выполняется пакет служб SSIS.

Чтобы запланировать запуск конвейера фабрики данных, используйте один из следующих триггеров:

Чтобы выполнить пакет служб SSIS в составе конвейера фабрики данных, используйте одно из следующих действий:

Следующие шаги

Узнайте о способах выполнения пакетов служб SSIS, развернутых в Azure. Дополнительные сведения см. в статье Выполнение пакетов служб SSIS в Azure.