Развертывание проекта служб SSIS с помощью PowerShell
Область применения: среда выполнения интеграции SSIS SQL Server в Фабрика данных Azure
Это краткое руководство описывает применение скрипта PowerShell для подключения к серверу базы данных и развертывания проекта служб SSIS в каталоге SSIS.
Необходимые компоненты
Сервер Базы данных SQL Azure прослушивает порт 1433. Если вы пытаетесь подключиться к серверу базы данных SQL Azure изнутри корпоративного брандмауэра, для успешного подключения в этом брандмауэре должен быть открыт данный порт.
Поддерживаемые платформы
Сведения, приведенные в этом кратком руководстве, можно использовать для развертывания проекта SSIS на следующих платформах:
SQL Server в Windows.
База данных SQL Azure. Дополнительные сведения о развертывании и запуске пакетов в Azure см. в разделе Перенос рабочих нагрузок SQL Server Integration Services в облако.
Сведения, приведенные в этом кратком руководстве, не могут быть использованы для развертывания пакета SSIS на SQL Server в Linux. Дополнительные сведения о запуске пакетов на Linux см. в разделе Извлечение, преобразование и загрузка данных в Linux с помощью служб SSIS.
Получение сведений о подключении для базы данных SQL Azure
Для развертывания проекта в базе данных SQL Azure вам нужны сведения, необходимые для подключения к базе данных каталога служб SSIS (SSISDB). В описанных ниже процедурах вам потребуется полное имя сервера и имя для входа.
- Войдите на портал Azure.
- Выберите Базы данных SQL в меню слева, а затем на странице Базы данных SQL — базу данных SSISDB.
- На странице Обзор для базы данных просмотрите полное имя сервера. Чтобы увидеть параметр Щелкните, чтобы скопировать, наведите указатель мыши на имя сервера.
- Если вы забыли данные для входа на сервер Базы данных SQL Azure, перейдите на соответствующую страницу, чтобы просмотреть имя администратора сервера. При необходимости вы можете сбросить пароль.
- Щелкните Показать строки подключения к базам данных.
- Просмотрите полную строку подключения ADO.NET.
Поддерживаемые методы проверки подлинности
См. методы проверки подлинности для развертывания.
Поставщик SSIS PowerShell
Предоставьте соответствующие значения для переменных в начале следующего скрипта, а затем выполните скрипт, чтобы развернуть проект служб SSIS.
Примечание.
В следующем примере для развертывания в SQL Server на локальном компьютере используется проверка подлинности Windows. Используйте командлет New-PSDive
, чтобы установить соединение с использованием проверки подлинности SQL Server. Если вы подключаетесь к серверу базы данных SQL Azure, вы не можете использовать проверку подлинности Windows.
# Variables
$TargetInstanceName = "localhost\default"
$TargetFolderName = "Project1Folder"
$ProjectFilePath = "C:\Projects\Integration Services Project1\Integration Services Project1\bin\Development\Integration Services Project1.ispac"
$ProjectName = "Integration Services Project1"
# Get the Integration Services catalog
$catalog = Get-Item SQLSERVER:\SSIS\$TargetInstanceName\Catalogs\SSISDB\
# Create the target folder
New-Object "Microsoft.SqlServer.Management.IntegrationServices.CatalogFolder" ($catalog,
$TargetFolderName,"Folder description") -OutVariable folder
$folder.Create()
# Read the project file and deploy it
[byte[]] $projectFile = [System.IO.File]::ReadAllBytes($ProjectFilePath)
$folder.DeployProject($ProjectName, $projectFile)
# Verify packages were deployed.
dir "$($catalog.PSPath)\Folders\$TargetFolderName\Projects\$ProjectName\Packages" |
SELECT Name, DisplayName, PackageId
Сценарий PowerShell
Предоставьте соответствующие значения для переменных в начале следующего скрипта, а затем выполните скрипт, чтобы развернуть проект служб SSIS.
Примечание.
В следующем примере для развертывания в SQL Server на локальном компьютере используется проверка подлинности 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"
$ProjectFilePath = "C:\Projects\Integration Services Project1\Integration Services Project1\bin\Development\Integration Services Project1.ispac"
$ProjectName = "Integration Services Project1"
# 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"]
# Create the target folder
$folder = New-Object $SSISNamespace".CatalogFolder" ($catalog, $TargetFolderName,
"Folder description")
$folder.Create()
Write-Host "Deploying " $ProjectName " project ..."
# Read the project file and deploy it
[byte[]] $projectFile = [System.IO.File]::ReadAllBytes($ProjectFilePath)
$folder.DeployProject($ProjectName, $projectFile)
Write-Host "Done."
Следующие шаги
- Рассмотрите другие варианты развертывания пакета.
- Выполните развернутый пакет. Для выполнения пакета можно использовать различные средства и языки. Дополнительные сведения см. в следующих статьях:
- Выполнение пакета служб SSIS с помощью SSMS
- Выполнение пакета служб SSIS с помощью Transact-SQL (SSMS)
- Выполнение пакета служб SSIS с помощью Transact-SQL (Visual Studio Code)
- Выполнение пакета служб SSIS из командной строки
- Выполнение пакета служб SSIS с помощью PowerShell
- Выполнение пакета служб SSIS с помощью C#