Выполнение пакетов SQL Server Integration Services с помощью служебной программы dtexec с поддержкой Azure
ОБЛАСТЬ ПРИМЕНЕНИЯ: Фабрика данных Azure Azure Synapse Analytics
Совет
Попробуйте использовать фабрику данных в Microsoft Fabric, решение для аналитики с одним интерфейсом для предприятий. Microsoft Fabric охватывает все, от перемещения данных до обработки и анализа данных в режиме реального времени, бизнес-аналитики и отчетности. Узнайте, как бесплатно запустить новую пробную версию !
В этой статье описывается служебная программа командной строки dtexec (AzureDTExec) с поддержкой Azure. Она используется для запуска пакетов SQL Server Integration Services (SSIS) в Azure-SSIS Integration Runtime (IR) в Фабрике данных Azure.
Традиционная служебная программа dtexec поставляется с SQL Server. Дополнительные сведения см. в статье Программа dtexec. Они часто вызываются с помощью сторонних оркестраторов или планировщиков, таких как ActiveBatch и Control-M, для запуска пакетов служб SSIS в локальной среде.
Современная служебная программа AzureDTExec поставляется со средством SQL Server Management Studio (SSMS). Она также может вызываться с помощью сторонних оркестраторов или планировщиков для выполнения пакетов служб SSIS в Azure. Она упрощает поднятие и сдвиг или перенос пакетов служб SSIS в облако. Если после переноса вы захотите продолжить использование сторонних оркестраторов или планировщиков в повседневной работе, с их помощью теперь можно вызывать AzureDTExec вместо dtexec.
AzureDTExec выполняет пакеты служб как действия ''Выполнение пакета SSIS'' в конвейерах Фабрики данных. Дополнительные сведения см. в статье Запуск пакета Integration Services с помощью действия выполнения пакета SSIS в Фабрике данных Azure.
AzureDTExec можно настроить с помощью SSMS для использования приложения Microsoft Entra, которое создает конвейеры в фабрике данных. Кроме того, ее можно настроить для доступа к файловым системам, общим папкам или файлам Azure, где хранятся пакеты. В зависимости от значений, которые вы присваиваете параметрам вызова, AzureDTExec создает и выполняет уникальный конвейер Фабрики данных с действием ''Выполнение пакета служб SSIS''. При вызове AzureDTExec с теми же значениями параметров перезапускается имеющийся конвейер.
Необходимые компоненты
Чтобы использовать AzureDTExec, скачайте и установите последнюю версию SSMS, а именно 18.3 или более позднюю. Скачайте его с этого веб-сайта.
Настройка служебной программы AzureDTExec
При установке SSMS на локальном компьютере также устанавливается программа AzureDTExec. Чтобы настроить ее параметры, запустите SSMS с использованием параметра Запуск от имени администратора. Затем выберите Инструменты> Миграция в Azure>Настройка DTExec с поддержкой Azure.
Это действие открывает окно AzureDTExecConfig, которое необходимо открыть с правами администратора для записи в файл AzureDTExec.settings. Если вы не запускали среду SSMS от имени администратора, откроется окно контроля учетных записей (UAC). Введите пароль администратора, чтобы получить повышенные привилегии.
В окне AzureDTExecConfig введите параметры конфигурации следующим образом:
- ApplicationId: введите уникальный идентификатор приложения Microsoft Entra, создаваемого с правильными разрешениями для создания конвейеров в фабрике данных. Дополнительные сведения см. в статье "Создание приложения Microsoft Entra" и субъекта-службы с помощью портал Azure.
- AuthenticationKey: введите ключ проверки подлинности для приложения Microsoft Entra.
- TenantId: введите уникальный идентификатор клиента Microsoft Entra, в котором создается приложение Microsoft Entra.
- DataFactory: введите имя Фабрики данных, в которой уникальные конвейеры с действием "Выполнение пакета SSIS" создаются на основе значений параметров, указываемых при вызове AzureDTExec.
- IRName: введите имя Azure-SSIS IR в Фабрике данных, в которой будут выполняться пакеты, указанные по UNC-пути, при вызове AzureDTExec.
- PipelineNameHashStrLen: введите длину хэш-строк, которые будут создаваться на основе значений параметров, указываемых при вызове AzureDTExec. Строки используются для формирования уникальных имен конвейеров Фабрики данных, которые запускают пакеты в Azure-SSIS IR. Обычно достаточно длины в 32 символа.
- ResourceGroup: введите имя группы ресурсов Azure, в которой была создана Фабрика данных.
- SubscriptionId: введите уникальный идентификатор подписки Azure, в которой была создана Фабрика данных.
- LogAccessDomain: введите доменные учетные данные для доступа к папке журнала по указанному UNC-пути при записи файлов журнала. Это обязательное для выполнения действие, если указан параметр LogPath, а параметр LogLevel не равен NULL.
- LogAccessPassword: введите пароль для доступа к папке журнала по указанному UNC-пути при записи файлов журнала. Это обязательное для выполнения действие, если указан параметр LogPath, а параметр LogLevel не равен NULL.
- LogAccessUserName: введите имя пользователя для доступа к папке журнала по указанному UNC-пути при записи файлов журнала. Это обязательное для выполнения действие, если указан параметр LogPath, а параметр LogLevel не равен NULL.
- LogLevel: введите выбранную область ведения журнала для выполнений пакетов в Azure-SSIS IR, выбрав один из предопределенных вариантов: NULL, Базовый, Подробно или Производительность.
- LogPath: введите UNC-путь к папке журнала, в которую будут записываться файлы журнала, получаемые в результате выполнений пакетов в Azure-SSIS IR.
- PackageAccessDomain: введите доменные учетные данные для доступа к пакетам по UNC-пути, который указывается при вызове программы AzureDTExec.
- PackageAccessPassword: введите пароль для доступа к пакетам по UNC-пути, который указывается при вызове программы AzureDTExec.
- PackageAccessUserName: введите имя пользователя для доступа к пакетам по UNC-пути, который указывается при вызове программы AzureDTExec.
Чтобы хранить пакеты и файлы журналов в файловых системах или общих папках в локальной среде, присоедините Azure-SSIS IR к виртуальной сети, подключенной к локальной сети, чтобы она могла получать пакеты и записывать файлы журналов. См. сведения о присоединении Azure-SSIS IR к виртуальной сети.
Чтобы избежать отображения конфиденциальных значений, записанных в файл AzureDTExec.settings в виде обычного текста, мы будем кодировать их в строки с кодировкой Base64. При вызове программы AzureDTExec все строки с кодировкой Base64 декодируются обратно в исходные значения. Вы можете дополнительно защитить файл AzureDTExec.settings, ограничив количество учетных записей, которые имеют доступ к нему.
Вызов служебной программы AzureDTExec
Вы можете вызвать программу AzureDTExec в командной строке и указать соответствующие значения для конкретных параметров в вашем варианте использования.
Служебная программа установлена в каталоге {SSMS Folder}\Common7\IDE\CommonExtensions\Microsoft\SSIS\150\Binn
. Вы можете добавить путь к переменной среды PATH, чтобы он вызывался из любого места.
> cd "C:\Program Files (x86)\Microsoft SQL Server Management Studio 18\Common7\IDE\CommonExtensions\Microsoft\SSIS\150\Binn"
> AzureDTExec.exe ^
/F \\MyStorageAccount.file.core.windows.net\MyFileShare\MyPackage.dtsx ^
/Conf \\MyStorageAccount.file.core.windows.net\MyFileShare\MyConfig.dtsConfig ^
/Conn "MyConnectionManager;Data Source=MyDatabaseServer.database.windows.net;User ID=MyAdminUsername;Password=MyAdminPassword;Initial Catalog=MyDatabase" ^
/Set \package.variables[MyVariable].Value;MyValue ^
/De MyEncryptionPassword
При вызове программы AzureDTExec предоставляются те же параметры, что и при вызове dtexec. Дополнительные сведения см. в статье dtexec Utility. Сейчас поддерживаются следующие параметры:
- /F[ile]: загружает пакет, хранящийся в файловой системе, общей папке или Файлах Azure. В качестве значения этого параметра можно указать UNC-путь к файлу пакета в файловой системе, общей папке или Файлах Azure с расширением DTSX. Если указанный UNC-путь содержит пробелы, заключите весь путь в кавычки.
- /Conf[igFile]: указывает файл конфигурации, из которого происходит извлечение значений. С помощью этого параметра можно задать конфигурацию времени выполнения для пакета, отличающуюся от указанной во время разработки. Параметры можно хранить в файле конфигурации XML, а затем загрузить их перед выполнением пакета. Дополнительные сведения см. в статье Устаревшее развертывание пакетов (службы SSIS). Чтобы задать значение для этого параметра, можно указать UNC-путь к файлу конфигурации в файловой системе, общей папке или Файлах Azure с расширением dtsConfig. Если указанный UNC-путь содержит пробелы, заключите весь путь в кавычки.
- /Conn[ection]: указывает строки подключения для имеющихся диспетчеров соединений в пакете. С помощью этого параметра можно задать строки подключения времени выполнения для имеющихся диспетчеров соединений в пакете, которые отличаются от указанных во время разработки. Укажите значение для этого параметра следующим образом:
connection_manager_name_or_id;connection_string [[;connection_manager_name_or_id;connection_string]...]
. - /Set: переопределяет конфигурацию параметра, переменной, свойства, контейнера, регистратора, перечислителя Foreach или соединения в пакете. Этот параметр можно указывать несколько раз. Укажите значение для этого параметра следующим образом:
property_path;value
. Например,\package.variables[counter].Value;1
переопределяет значение переменнойcounter
на значение 1. С помощью мастера конфигурации пакета можно найти, скопировать и вставить значениеproperty_path
для элементов в пакете, значение которого необходимо переопределить. Дополнительные сведения см. в статье о мастере конфигурации пакета. - /De[crypt]: задает пароль расшифровки для пакета, настроенного на уровне защиты EncryptAllWithPassword/EncryptSensitiveWithPassword.
Примечание.
При вызове программы AzureDTExec с новыми значениями параметров создается новый конвейер, за исключением параметра /De[cript].
Связанный контент
После того как созданы и запущены уникальные конвейеры с действием "Выполнение пакета SSIS" при вызове AzureDTExec, их можно отслеживать на портале Фабрики данных. Вы также можете назначить им триггеры Фабрики данных, если вы хотите управлять ими или запланировать их с помощью Фабрики данных. Дополнительные сведения см. в статье Запуск пакета Integration Services с помощью действия выполнения пакета SSIS в Фабрике данных Azure.
Предупреждение
Созданный конвейер должен использоваться только программой AzureDTExec. Его свойства или параметры могут измениться в будущем, поэтому не изменяйте их и не используйте повторно для других целей. Изменения могут нарушить работу программы AzureDTExec. Если это произошло, удалите конвейер. Программа AzureDTExec создаст новый конвейер при следующем вызове.