Delen via


Een SSIS-project implementeren met PowerShell

van toepassing op:SQL Server SSIS Integration Runtime in Azure Data Factory

In deze quickstart ziet u hoe u een PowerShell-script gebruikt om verbinding te maken met een databaseserver en een SSIS-project te implementeren in de SSIS-catalogus.

Vereiste voorwaarden

Een Azure SQL Database-server luistert op poort 1433. Als u verbinding probeert te maken met een Azure SQL Database-server vanuit een bedrijfsfirewall, moet deze poort zijn geopend in de firewall van het bedrijf om verbinding te kunnen maken.

Ondersteunde platforms

U kunt de informatie in deze quickstart gebruiken om een SSIS-project te implementeren op de volgende platforms:

U kunt de informatie in deze quickstart niet gebruiken om een SSIS-pakket te implementeren in SQL Server op Linux. Zie Gegevens extraheren, transformeren en laden in Linux met SSIS voor meer informatie over het uitvoeren van pakketten op Linux.

Voor Azure SQL Database haalt u de verbindingsgegevens op

Als u het project wilt implementeren in Azure SQL Database, haalt u de verbindingsgegevens op die u nodig hebt om verbinding te maken met de SSIS Catalog-database (SSISDB). U hebt de volledig gekwalificeerde servernaam en aanmeldingsgegevens nodig in de procedures die volgen.

  1. Meld u aan bij het Azure-portaal.
  2. Selecteer SQL-databases in het linkermenu en selecteer vervolgens de SSISDB-database op de pagina SQL-databases .
  3. Controleer op de pagina Overzicht voor uw database de volledig gekwalificeerde servernaam. Als u de optie Klik om te kopiƫren wilt zien, beweegt u de muisaanwijzer boven de servernaam.
  4. Als u de aanmeldingsgegevens van uw Azure SQL Database-server bent vergeten, gaat u naar de pagina SQL Database-server om de naam van de serverbeheerder weer te geven. U kunt het wachtwoord indien nodig opnieuw instellen.
  5. Selecteer Databaseverbindingsreeksen weergeven.
  6. Controleer de volledige ADO.NET verbindingsreeks.

Ondersteunde verificatiemethode

Raadpleeg verificatiemethoden voor implementatie.

SSIS PowerShell-provider

Geef de juiste waarden op voor de variabelen boven aan het volgende script en voer vervolgens het script uit om het SSIS-project te implementeren.

Opmerking

In het volgende voorbeeld wordt Windows-verificatie gebruikt om te implementeren in een on-premises SQL Server. Gebruik de New-PSDive cmdlet om een verbinding tot stand te brengen met behulp van SQL Server-verificatie. Als u verbinding maakt met een Azure SQL Database-server, kunt u geen Windows-verificatie gebruiken.

# 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-script

Geef de juiste waarden op voor de variabelen boven aan het volgende script en voer vervolgens het script uit om het SSIS-project te implementeren.

Opmerking

Voor het volgende script is de Assembly Microsoft.Data.SqlClient vereist. Installeer het vanuit het NuGet-pakket en zorg ervoor dat het DLL-bestand toegankelijk is voor PowerShell. U kunt het met Add-Type -Path "path\to\Microsoft.Data.SqlClient.dll" laden voordat u het script uitvoert.

In het volgende voorbeeld wordt Windows-verificatie gebruikt om te implementeren in een on-premises SQL Server. Als u SQL Server-verificatie wilt gebruiken, vervangt u het Integrated Security=SSPI; argument door User ID=<user name>;Password=<password>;. Als u verbinding maakt met een Azure SQL Database-server, kunt u geen Windows-verificatie gebruiken.

# 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."