Udostępnij przez


Wdrażanie projektu usług SSIS przy użyciu programu PowerShell

Dotyczy:SQL Server SSIS Integration Runtime w ramach usługi Azure Data Factory

W tym szybkim przewodniku pokazano, jak używać skryptu programu PowerShell do nawiązywania połączenia z serwerem bazy danych i wdrażania projektu SSIS do katalogu SSIS.

Wymagania wstępne

Serwer usługi Azure SQL Database nasłuchuje na porcie 1433. Jeśli próbujesz nawiązać połączenie z serwerem usługi Azure SQL Database z poziomu zapory firmowej, ten port musi być otwarty w zaporze firmowej, aby pomyślnie nawiązać połączenie.

Obsługiwane platformy

Informacje przedstawione w tym przewodniku Szybki start umożliwiają wdrożenie projektu usług SSIS na następujących platformach:

Nie można użyć informacji z tego samouczka, aby wdrożyć pakiet SSIS na serwerze SQL Server w systemie Linux. Aby uzyskać więcej informacji na temat uruchamiania pakietów w systemie Linux, zobacz Wyodrębnianie, przekształcanie i ładowanie danych w systemie Linux przy użyciu usługi SSIS.

W przypadku usługi Azure SQL Database uzyskaj informacje o połączeniu

Aby wdrożyć projekt w Azure SQL Database, uzyskaj informacje o połączeniu potrzebne do połączenia się z bazą danych Katalogu SSIS (SSISDB). Potrzebujesz w pełni kwalifikowanej nazwy serwera i informacji logowania w poniższych procedurach.

  1. Zaloguj się do witryny Azure Portal.
  2. Wybierz pozycję Bazy danych SQL z menu po lewej stronie, a następnie wybierz bazę danych SSISDB na stronie Bazy danych SQL .
  3. Na stronie Przegląd bazy danych przejrzyj w pełni kwalifikowaną nazwę serwera. Aby wyświetlić opcję Kliknij, aby skopiować , umieść kursor na nazwie serwera.
  4. Jeśli zapomnisz informacje logowania serwera usługi Azure SQL Database, przejdź do strony serwera usługi SQL Database, aby wyświetlić nazwę administratora serwera. W razie potrzeby możesz zresetować hasło.
  5. Wybierz pozycję Pokaż parametry połączenia bazy danych.
  6. Sprawdź pełny string połączenia ADO.NET.

Obsługiwana metoda uwierzytelniania

Zapoznaj się z metodami uwierzytelniania na potrzeby wdrażania.

Dostawca PowerShell dla SSIS

Podaj odpowiednie wartości zmiennych w górnej części poniższego skryptu, a następnie uruchom skrypt, aby wdrożyć projekt SSIS.

Uwaga / Notatka

W poniższym przykładzie użyto uwierzytelniania systemu Windows do wdrożenia w lokalnym programie SQL Server. New-PSDive Użyj polecenia cmdlet , aby nawiązać połączenie przy użyciu uwierzytelniania programu SQL Server. Jeśli łączysz się z serwerem usługi Azure SQL Database, nie możesz użyć uwierzytelniania systemu 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

Skrypt programu PowerShell

Podaj odpowiednie wartości zmiennych w górnej części poniższego skryptu, a następnie uruchom skrypt, aby wdrożyć projekt SSIS.

Uwaga / Notatka

Poniższy skrypt wymaga zestawu Microsoft.Data.SqlClient . Zainstaluj go z pakietu NuGet i upewnij się, że biblioteka DLL jest dostępna dla programu PowerShell. Można go Add-Type -Path "path\to\Microsoft.Data.SqlClient.dll" załadować przed uruchomieniem skryptu.

W poniższym przykładzie użyto uwierzytelniania systemu Windows do wdrożenia w lokalnym programie SQL Server. Aby użyć uwierzytelniania programu SQL Server, zastąp Integrated Security=SSPI; argument argumentem User ID=<user name>;Password=<password>;. Jeśli łączysz się z serwerem usługi Azure SQL Database, nie możesz użyć uwierzytelniania systemu 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 Microsoft.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."