Udostępnij przez


Uruchamianie pakietu usług SSIS przy użyciu programu PowerShell

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

W tym przewodniku Szybki start pokazano, jak używać skryptu programu PowerShell do nawiązywania połączenia z serwerem bazy danych i uruchamiania pakietu usług 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ą uruchamianie pakietu usług SSIS na następujących platformach:

Nie można użyć informacji w tym przewodniku szybkiego startu, aby uruchomić pakiet SSIS 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 uruchomić pakiet w usłudze Azure SQL Database, uzyskaj informacje o połączeniu potrzebne do połączenia z bazą danych Katalogu SSIS (SSISDB). Potrzebujesz w pełni kwalifikowanej nazwy serwera i informacji logowania w poniższych procedurach.

  1. Zaloguj się do portalu Azure.
  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. Kliknij pozycję Pokaż parametry połączenia bazy danych.
  6. Sprawdź pełny string połączenia ADO.NET.

Dostawca SSIS PowerShell

Możesz użyć dostawcy programu PowerShell usług SSIS, aby nawiązać połączenie z wykazem usług SSIS i wykonywać w nim pakiety.

Poniżej przedstawiono podstawowy przykład wykonywania pakietu SSIS w katalogu pakietów przy użyciu dostawcy PowerShell dla SSIS.

(Get-ChildItem SQLSERVER:\SSIS\localhost\Default\Catalogs\SSISDB\Folders\Project1Folder\Projects\'Integration Services Project1'\Packages\ |
WHERE { $_.Name -eq 'Package.dtsx' }).Execute($false, $null)

Skrypt programu PowerShell

Podaj odpowiednie wartości zmiennych w górnej części poniższego skryptu, a następnie uruchom skrypt, aby uruchomić pakiet usług SSIS.

Uwaga

W poniższym przykładzie użyto uwierzytelniania systemu Windows. 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"
$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."

Następne kroki