Управление пакетами с помощью хранилища пакетов Azure-SSIS Integration Runtime

Область применения:Фабрика данных Azure Azure Synapse Analytics

Совет

Попробуйте использовать фабрику данных в Microsoft Fabric, решение для аналитики с одним интерфейсом для предприятий. Microsoft Fabric охватывает все, от перемещения данных до обработки и анализа данных в режиме реального времени, бизнес-аналитики и отчетности. Узнайте, как бесплатно запустить новую пробную версию !

Для репликации локальных рабочих нагрузок SQL Server Integration Services (SSIS) в облаке в режиме lift-and-shift можно подготовить среду Azure-SSIS Integration Runtime (IR) в Фабрике данных Azure (ADF). Дополнительные сведения см. в статье "Подготовка Azure-SSIS Integration Runtime в Фабрике данных Azure". Среда выполнения интеграции Azure-SSIS поддерживает следующие возможности:

  • выполнение пакетов, развернутых в каталоге SSIS (SSISDB), которые размещаются на сервере Базы данных SQL Azure или в Управляемом экземпляре (модель развертывания для проектов);
  • выполнение пакетов, развернутых в файловой системе, службе "Файлы Azure" или базе данных SQL Server (MSDB), которые размещаются в Управляемом экземпляре SQL Azure (модель развертывания для пакетов).

В рамках модели развертывания для пакетов вы можете выбирать, следует ли подготавливать среду Azure-SSIS IR с хранилищами пакетов. Хранилища пакетов образуют уровень управления пакетами поверх файловой системы, Файлов Azure или базы данных MSDB, размещенной в Управляемом экземпляре SQL Azure. Хранилище пакетов Azure-SSIS IR позволяет импортировать, экспортировать, удалять и запускать пакеты, а также отслеживать и останавливать их выполнение с помощью SQL Server Management Studio (SSMS) аналогично традиционному хранилищу пакетов SSIS.

Подключение к Azure-SSIS IR

Подготовив среду Azure-SSIS IR, можно к ней подключиться для просмотра относящихся к ней хранилищ пакетов с помощью SSMS.

Connect to Azure-SSIS IR

В окне обозревателя объектов SSMS выберите Azure-SSIS Integration Runtime в раскрывающемся меню Подключение. Затем войдите на портал Azure и выберите подписку, ADF и среду Azure-SSIS IR, подготовленную с хранилищами пакетов. Отобразится выбранная среда Azure-SSIS IR а под ней узлы Выполняемые пакеты и Сохраненные пакеты. Чтобы увидеть свои хранилища пакетов, разверните узел Сохраненные пакеты — они отобразятся внутри этого узла. Далее, чтобы увидеть папки и пакеты, разверните хранилища пакетов. Возможно, вам будет предложено ввести учетные данные доступа для хранилищ пакетов, если SSMS не удается подключиться к ним автоматически. Например, если развернуть хранилище пакетов поверх MSDB, вам может потребоваться сначала подключиться к Управляемый экземпляр SQL Azure.

Connect to Azure SQL Managed Instance

Управление папками и пакетами

После подключения к Azure-SSIS IR в SSMS можно щелкнуть правой кнопкой мыши любое хранилище пакетов, папку или пакет и в открывшемся контекстном меню выбрать пункт Создать папку, Импортировать пакет, Экспортировать пакет, Удалить или Обновить.

Manage folders and packages

  • Чтобы создать папку для импортированных пакетов, выберите Создать папку.

  • Чтобы импортировать пакеты из файловой системы, SQL Server (MSDB) или из традиционного хранилища пакетов SSIS в хранилище пакетов Azure-SSIS IR, выберите Импортировать пакет.

    Import Package

    В зависимости от расположения пакета, предназначенного к импорту, выберите соответствующий сервер/тип проверки подлинности, введите при необходимости учетные данные для доступа, выберите путь к пакету и введите новое имя пакета. Уровень защиты пакетов не может быть изменен при импорте. Чтобы его изменить, воспользуйтесь SQL Server Data Tools (SSDT) или программой командной строки dtutil.

    Примечание.

    Импортировать пакеты SSIS в хранилища пакетов Azure-SSIS IR можно только по одному. При этом они будут просто копироваться в базу данных MSDB, файловую систему или Файлы Azure с сохранением версии SQL Server или SSIS.

    Поскольку в настоящее время среда Azure-SSIS IR основывается на SQL Server 2017, при запуске в ней пакетов более ранних версий они будут преобразованы в пакеты служб SSIS 2017 на этапе выполнения. Выполнение пакетов более поздних версий не поддерживается.

    Кроме того, так как традиционные хранилища пакетов SSIS привязаны к определенной версии SQL Server и доступны только в SSMS для этой версии, пакеты более ранних версий из таких хранилищ необходимо сначала экспортировать в файловую систему с помощью SSMS указанной версии, после чего их можно будет импортировать в хранилища пакетов Azure-SSIS IR с помощью SSMS 2019 или более поздних версий.

    Как вариант, чтобы импортировать несколько пакетов SSIS в хранилища пакетов Azure-SSIS IR с изменением их уровня защиты, можно воспользоваться программой командной строки dtutil (см. раздел "Развертывание нескольких пакетов с помощью dtutil").

  • Чтобы экспортировать пакеты из хранилища пакетов в файловую систему, SQL Server (MSDB) или традиционное хранилище пакетов SSIS выберите Экспортировать пакет.

    Export Package

    В зависимости от расположения пакета, предназначенного к экспорту, выберите соответствующий сервер/тип проверки подлинности, введите при необходимости учетные данные для доступа, выберите путь к пакету. При экспорте пакетов, если они зашифрованы, введите пароли для их расшифровки. После этого можно будет изменить их уровень защиты — например, чтобы не хранить конфиденциальные данные или зашифровать их (либо вообще все данные) с помощью ключа пользователя или пароля.

    Примечание.

    Экспортировать пакеты SSIS из хранилищ пакетов Azure-SSIS IR можно только по одному. Если это делается без изменения уровня защиты, пакеты просто копируются с сохранением версии SQL Server или SSIS; в противном случае они обновляются до SSIS 2019 или более поздней версии.

    Поскольку в настоящее время среда Azure-SSIS IR основывается на SQL Server 2017, при запуске в ней пакетов более ранних версий они будут преобразованы в пакеты служб SSIS 2017 на этапе выполнения. Выполнение пакетов более поздних версий не поддерживается.

    Как вариант, чтобы экспортировать несколько пакетов SSIS из хранилищ пакетов Azure-SSIS IR с изменением их уровня защиты, можно воспользоваться программой командной строки dtutil (см. раздел "Развертывание нескольких пакетов с помощью dtutil").

  • Чтобы удалить папки или пакеты из хранилища пакетов, выберите Удалить.

  • Чтобы отобразить папки или пакеты, только что добавленные в хранилище пакетов, выберите Обновить.

Запуск пакетов

Подключившись к Azure-SSIS IR в SSMS, можно щелкнуть правой кнопкой мыши любой сохраненный пакет и в открывшемся контекстном меню выбрать пункт Выполнить пакет. Откроется диалоговое окно Программа выполнения пакетов, в котором можно настроить выполнение пакетов в Azure-SSIS IR как действие "Выполнить пакет SSIS" в конвейерах ADF.

Execute Package Utility pages 1 & 2

Execute Package Utility pages 3 & 4

Страницы Общие, Конфигурации, Параметры выполнения и Ведение журнала диалогового окна Служебная программа для запуска пакетов соответствуют вкладке Параметры действия "Execute SSIS Package". На этих страницах можно ввести пароль шифрования для пакета и сведения для доступа к файлу конфигурации пакета. Помимо этого, вы можете ввести учетные данные для выполнения пакета, параметры его выполнения и сведения для доступа к папке журнала. Страница Установленные значения диалогового окна Программа выполнения пакетов соответствует вкладке Переопределения свойств действия "Выполнить пакет SSIS", на которой можно переопределить уже заданные свойства пакета. Дополнительные сведения см. в статье "Запуск пакета SSIS как действия "Выполнить пакет SSIS" в Фабрике данных Azure".

При нажатии кнопки Выполнить будет автоматически создан и активирован конвейер ADF с действием "Выполнить пакет SSIS". Если конвейер ADF с такими же параметрами уже существует, он будет перезапущен, а новый конвейер создаваться не будет. Конвейеру ADF и действию "Выполнить пакет SSIS" будет присвоены имена Pipeline_SSMS_YourPackageName_HashString и Activity_SSMS_YourPackageName соответственно.

Execute Package Utility button

Execute SSIS Package activity

Мониторинг и остановка выполнения пакетов

После подключения к Azure-SSIS IR в SSMS можно увидеть, какие пакеты сейчас выполняются, развернув узел Выполняемые пакеты. Если щелкнуть любой из них правой кнопкой мыши, появится контекстное меню, в котором можно выбрать команду Остановить или Обновить.

Monitor and stop running packages

  • Чтобы остановить конвейер ADF, в котором в настоящее время выполняется пакет как действие "Выполнить пакет SSIS", выберите Остановить.

  • Чтобы увидеть пакеты, только что запущенные из хранилищ пакетов, выберите Обновить.

Мониторинг Azure-SSIS IR и изменение хранилищ пакетов

Подключившись к среде Azure-SSIS IR в SSMS, можно щелкнуть ее правой кнопкой мыши и в открывшемся контекстном меню выбрать пункт Переход на портал Фабрики данных Azure или Обновить.

Go to ADF portal

  • Выберите Переход на портал Фабрики данных Azure, чтобы открыть страницу Среды выполнения интеграции центра мониторинга ADF, где можно следить за работой Azure-SSIS IR. На плитке Хранилища пакетов отображается число хранилищ пакетов, подключенных к среде Azure-SSIS IR. Если выбрать это число, откроется окно, в котором можно изменить связанные с ADF службы, в которых хранятся сведения о доступе для хранилищ пакетов.

    Edit package stores

  • Чтобы отобразить папки или пакеты, только что добавленные в хранилища пакетов, а также выполняемые в настоящее время пакеты из хранилищ, выберите Обновить.

Развертывание нескольких пакетов с помощью dtutil

Для репликации локальных рабочих нагрузок SSIS в ADF в режиме lift-and-shift с сохранением традиционной модели развертывания для пакетов необходимо взять пакеты из файловой системы, базы данных MSDB, размещенной в SQL Server, или традиционных хранилищ пакетов SSIS и развернуть их в Файлах Azure, базе данных MSDB, размещенной в Управляемом экземпляре SQL Azure, или хранилищах пакетов Azure-SSIS IR. Одновременно, если вы этого еще не сделали, следует изменить уровень защиты пакетов, выбрав отсутствие шифрования или шифрование паролем вместо шифрования ключом пользователя.

Для одновременного развертывания нескольких пакетов можно использовать программу командной строки dtutil, которая устанавливается вместе с SQL Server и SSIS. Программа привязана к определенной версии служб SSIS, поэтому, если использовать ее для развертывания пакетов более ранних версий без изменения их уровня защиты, она просто скопирует пакеты с сохранением версии SSIS. При развертывании пакетов с изменением их уровня защиты программа обновит их до своей версии SSIS.

Поскольку в настоящее время среда Azure-SSIS IR основывается на SQL Server 2017, при запуске в ней пакетов более ранних версий они будут преобразованы в пакеты служб SSIS 2017 на этапе выполнения. Выполнение пакетов более поздних версий не поддерживается.

Следовательно, чтобы избежать обновления во время выполнения, развертывать пакеты для запуска в Azure-SSIS IR в рамках модели развертывания для пакетов следует с помощью программы dtutil 2017, устанавливаемой с SQL Server/SSIS 2017. Для этого можно скачать и установить бесплатный выпуск SQL Server 2017 Developer, в состав которого входит SSIS 2017. После установки программу dtutil 2017 можно найти в этой папке: YourLocalDrive:\Program Files\Microsoft SQL Server\140\DTS\Binn.

Развертывание нескольких пакетов из локальной файловой системы в Файлах Azure с помощью dtutil

Чтобы развернуть несколько пакетов из файловой системы в Файлах Azure с изменением их уровня защиты, выполните в командной строке следующие команды. Подставьте в эти строки данные, которые относятся к вашему случаю.

REM Persist the access credentials for Azure Files on your local machine
cmdkey /ADD:YourStorageAccountName.file.core.windows.net /USER:azure\YourStorageAccountName /PASS:YourStorageAccountKey

REM Connect Azure Files to a drive on your local machine
net use Z: \\YourStorageAccountName.file.core.windows.net\YourFileShare /PERSISTENT:Yes

REM Go to a local folder where you store your packages
cd YourLocalDrive:\...\YourPackageFolder

REM Run dtutil in a loop to deploy your packages from the local folder into Azure Files while switching their protection level
for %f in (*.dtsx) do dtutil.exe /FILE %f /ENCRYPT FILE;Z:\%f;2;YourEncryptionPassword

Чтобы выполнить приведенные выше команды в пакетном файле, вместо %f укажите %%f.

Чтобы развернуть в Файлах Azure несколько пакетов из традиционных хранилищ пакетов SSIS поверх файловой системы с изменением их уровня защиты, можно использовать те же команды, подставив вместо YourLocalDrive:\...\YourPackageFolder локальную папку, которая используется традиционными хранилищами пакетов SSIS: YourLocalDrive:\Program Files\Microsoft SQL Server\YourSQLServerDefaultCompatibilityLevel\DTS\Packages\YourPackageFolder. Например, если традиционное хранилище пакетов SSIS привязано к SQL Server 2016, перейдите по следующему пути: YourLocalDrive:\Program Files\Microsoft SQL Server\130\DTS\Packages\YourPackageFolder. Для значения YourSQLServerDefaultCompatibilityLevel см. список уровней совместимости SQL Server по умолчанию.

Если вы настроили хранилища пакетов Azure-SSIS IR на базе Файлов Azure, развернутые пакеты будут отображаться в них при подключении к Azure-SSIS IR в SSMS 2019 или более поздних версиях SSMS.

Развертывание нескольких пакетов из локальной базы данных MSDB в базе данных MSDB Azure с помощью dtutil

Чтобы развернуть несколько пакетов из базы данных MSDB, размещенной в SQL Server, или традиционных хранилищ пакетов SSIS поверх базы данных MSDB, размещенной в Управляемом экземпляре SQL Azure, с изменением их уровня защиты, можно подключиться к SQL Server в SSMS, щелкнуть правой кнопкой мыши узел Databases->System Databases->msdb ("Базы данных" > "Системные базы данных" > msdb) в обозревателе объектов SSMS для открытия окна Создать запрос и выполнить следующий сценарий T-SQL. Подставьте в эти строки данные, которые относятся к вашему случаю.

BEGIN
  SELECT 'dtutil /SQL '+f.foldername+'\'+NAME+' /ENCRYPT SQL;'+f.foldername+'\'+NAME+';2;YourEncryptionPassword /DestServer YourSQLManagedInstanceEndpoint /DestUser YourSQLAuthUsername /DestPassword YourSQLAuthPassword'
  FROM msdb.dbo.sysssispackages p
  inner join msdb.dbo.sysssispackagefolders f
  ON p.folderid = f.folderid
END

Чтобы использовать частную или общедоступную конечную точку Управляемого экземпляра SQL Azure, вместо YourSQLManagedInstanceEndpoint подставьте YourSQLMIName.YourDNSPrefix.database.windows.net/YourSQLMIName.public.YourDNSPrefix.database.windows.net,3342 соответственно.

Сценарий создаст командные строки dtutil для всех пакетов в базе данных MSDB, которые можно выбрать одновременно, скопировать, вставить и запустить из командной строки.

Generate dtutil command lines

dtutil /SQL YourFolder\YourPackage1 /ENCRYPT SQL;YourFolder\YourPackage1;2;YourEncryptionPassword /DestServer YourSQLManagedInstanceEndpoint /DestUser YourUserName /DestPassword YourPassword
dtutil /SQL YourFolder\YourPackage2 /ENCRYPT SQL;YourFolder\YourPackage2;2;YourEncryptionPassword /DestServer YourSQLManagedInstanceEndpoint /DestUser YourUserName /DestPassword YourPassword
dtutil /SQL YourFolder\YourPackage3 /ENCRYPT SQL;YourFolder\YourPackage3;2;YourEncryptionPassword /DestServer YourSQLManagedInstanceEndpoint /DestUser YourUserName /DestPassword YourPassword

Если вы настроили хранилища пакетов Azure-SSIS IR поверх базы данных MSDB, развернутые пакеты будут отображаться в них при подключении к Azure-SSIS IR в SSMS 2019 или более поздних версиях SSMS.

Развертывание в Файлах Azure нескольких пакетов из локальной базы данных MSDB с помощью dtutil

Чтобы развернуть в Файлах Azure несколько пакетов из базы данных MSDB, размещенной в SQL  Server, или традиционных хранилищ пакетов SSIS поверх базы данных MSDB с изменением их уровня защиты, можно подключиться к своему экземпляру SQL Server в SSMS, щелкнуть правой кнопкой мыши узел Databases->System Databases->msdb ("Базы данных" > "Системные базы данных" > msdb) в обозревателе объектов SSMS для открытия окна Создать запрос и выполнить следующий сценарий T-SQL. Подставьте в эти строки данные, которые относятся к вашему случаю.

BEGIN
  SELECT 'dtutil /SQL '+f.foldername+'\'+NAME+' /ENCRYPT FILE;Z:\'+f.foldername+'\'+NAME+'.dtsx;2;YourEncryptionPassword' 
  FROM msdb.dbo.sysssispackages p
  inner join msdb.dbo.sysssispackagefolders f
  ON p.folderid = f.folderid
END

Сценарий создаст командные строки dtutil для всех пакетов в базе данных MSDB, которые можно выбрать одновременно, скопировать, вставить и запустить из командной строки.

REM Persist the access credentials for Azure Files on your local machine
cmdkey /ADD:YourStorageAccountName.file.core.windows.net /USER:azure\YourStorageAccountName /PASS:YourStorageAccountKey

REM Connect Azure Files to a drive on your local machine
net use Z: \\YourStorageAccountName.file.core.windows.net\YourFileShare /PERSISTENT:Yes

REM Multiselect, copy & paste, and run the T-SQL-generated dtutil command lines to deploy your packages from MSDB on premises into Azure Files while switching their protection level
dtutil /SQL YourFolder\YourPackage1 /ENCRYPT FILE;Z:\YourFolder\YourPackage1.dtsx;2;YourEncryptionPassword
dtutil /SQL YourFolder\YourPackage2 /ENCRYPT FILE;Z:\YourFolder\YourPackage2.dtsx;2;YourEncryptionPassword
dtutil /SQL YourFolder\YourPackage3 /ENCRYPT FILE;Z:\YourFolder\YourPackage3.dtsx;2;YourEncryptionPassword

Если вы настроили хранилища пакетов Azure-SSIS IR на базе Файлов Azure, развернутые пакеты будут отображаться в них при подключении к Azure-SSIS IR в SSMS 2019 или более поздних версиях SSMS.

Повторно выполнить или изменить автоматически созданные конвейеры ADF с действиями "Выполнить пакет SSIS" или создать новые можно на портале ADF. Дополнительные сведения см. в статье "Запуск пакета SSIS как действия "Выполнить пакет SSIS" в Фабрике данных Azure".