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


Выполнение пакетов 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.

Настройка меню dtexec с поддержкой Azure

Это действие открывает окно AzureDTExecConfig, которое необходимо открыть с правами администратора для записи в файл AzureDTExec.settings. Если вы не запускали среду SSMS от имени администратора, откроется окно контроля учетных записей (UAC). Введите пароль администратора, чтобы получить повышенные привилегии.

Настройка параметров dtexec с поддержкой Azure

В окне 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 создаст новый конвейер при следующем вызове.