Выполнение пакета служб SSIS с помощью PowerShell
Область применения: среда выполнения интеграции SSIS SQL Server в Фабрика данных Azure
В этом кратком руководстве описывается применение скрипта PowerShell для подключения к серверу базы данных и запуска пакета служб SSIS.
Необходимые компоненты
Сервер Базы данных SQL Azure прослушивает порт 1433. Если вы пытаетесь подключиться к серверу базы данных SQL Azure изнутри корпоративного брандмауэра, для успешного подключения в этом брандмауэре должен быть открыт данный порт.
Поддерживаемые платформы
Сведения, приведенные в этом кратком руководстве, можно использовать для выполнения пакета SSIS на следующих платформах:
SQL Server в Windows.
Среда выполнения интеграции SSIS в Фабрике данных Azure, где каталог SSIS (SSISDB) размещен в Управляемом экземпляре SQL Azure. Дополнительные сведения о развертывании и запуске пакетов в Azure см. в разделе Перенос рабочих нагрузок SQL Server Integration Services в облако.
Сведения, приведенные в этом кратком руководстве, не могут быть использованы для выполнения пакета SSIS в Linux. Дополнительные сведения о запуске пакетов на Linux см. в разделе Извлечение, преобразование и загрузка данных в Linux с помощью служб SSIS.
Получение сведений о подключении для базы данных SQL Azure
Для запуска пакета в базе данных SQL Azure вам нужны сведения, необходимые для подключения к базе данных каталога служб SSIS (SSISDB). В описанных ниже процедурах вам потребуется полное имя сервера и имя для входа.
- Войдите на портал Azure.
- Выберите Базы данных SQL в меню слева, а затем на странице Базы данных SQL — базу данных SSISDB.
- На странице Обзор для базы данных просмотрите полное имя сервера. Чтобы увидеть параметр Щелкните, чтобы скопировать, наведите указатель мыши на имя сервера.
- Если вы забыли данные для входа на сервер Базы данных SQL Azure, перейдите на соответствующую страницу, чтобы просмотреть имя администратора сервера. При необходимости вы можете сбросить пароль.
- Щелкните Показать строки подключения к базам данных.
- Просмотрите полную строку подключения ADO.NET.
Поставщик SSIS PowerShell
Поставщик PowerShell служб SSIS можно использовать для подключения к каталогу служб SSIS и выполнения пакетов в нем.
Ниже приведен простой пример того, как выполнить пакет служб SSIS в каталоге пакетов с помощью поставщика PowerShell для служб SSIS.
(Get-ChildItem SQLSERVER:\SSIS\localhost\Default\Catalogs\SSISDB\Folders\Project1Folder\Projects\'Integration Services Project1'\Packages\ |
WHERE { $_.Name -eq 'Package.dtsx' }).Execute("false", $null)
Сценарий PowerShell
Предоставьте соответствующие значения для переменных в начале следующего скрипта, а затем выполните скрипт, чтобы запустить пакет служб SSIS.
Примечание.
В следующем примере используется проверка подлинности Windows. Чтобы использовать проверку подлинности SQL Server, замените аргумент Integrated Security=SSPI;
на User ID=<user name>;Password=<password>;
. Если вы подключаетесь к серверу базы данных SQL Azure, вы не можете использовать проверку подлинности Windows.
# Variables
$SSISNamespace = "Microsoft.SqlServer.Management.IntegrationServices"
$TargetServerName = "localhost"
$TargetFolderName = "Project1Folder"
$ProjectName = "Integration Services Project1"
$PackageName = "Package.dtsx"
# Load the IntegrationServices assembly
$loadStatus = [System.Reflection.Assembly]::Load("Microsoft.SQLServer.Management.IntegrationServices, "+
"Version=14.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91, processorArchitecture=MSIL")
# Create a connection to the server
$sqlConnectionString = `
"Data Source=" + $TargetServerName + ";Initial Catalog=master;Integrated Security=SSPI;"
$sqlConnection = New-Object System.Data.SqlClient.SqlConnection $sqlConnectionString
# Create the Integration Services object
$integrationServices = New-Object $SSISNamespace".IntegrationServices" $sqlConnection
# Get the Integration Services catalog
$catalog = $integrationServices.Catalogs["SSISDB"]
# Get the folder
$folder = $catalog.Folders[$TargetFolderName]
# Get the project
$project = $folder.Projects[$ProjectName]
# Get the package
$package = $project.Packages[$PackageName]
Write-Host "Running " $PackageName "..."
$result = $package.Execute("false", $null)
Write-Host "Done."
Следующие шаги
- Рассмотрите другие варианты выполнения пакета.