Compartir a través de


Implementar un proyecto de SSIS con PowerShell

Se aplica a:SQL Server SSIS Integration Runtime en Azure Data Factory

En este inicio rápido se muestra cómo usar un script de PowerShell para conectarse a un servidor de bases de datos e implementar un proyecto de SSIS en el catálogo de SSIS.

Prerrequisitos

Un servidor de Azure SQL Database escucha en el puerto 1433. Si está intentando conectarse a un servidor de Azure SQL Database desde un firewall corporativo, este puerto debe estar abierto en el firewall corporativo para poder conectarse correctamente.

Plataformas compatibles

Puede usar la información que aparece en este inicio rápido para implementar un proyecto de SSIS en las siguientes plataformas:

No puede usar la información que aparece en este inicio rápido para implementar un paquete de SSIS en SQL Server en Linux. Para más información sobre cómo ejecutar paquetes en Linux, vea Extract, transform, and load data on Linux with SSIS (Extraer, transformar y cargar datos en Linux con SSIS).

Para Azure SQL Database, obtener la información de conexión

Para implementar el proyecto en Azure SQL Database, debe obtener la información de conexión necesaria para conectarse a la base de datos del catálogo de SSIS (SSISDB). Necesita el nombre completo y la información de inicio de sesión del servidor en los procedimientos siguientes.

  1. Inicie sesión en Azure Portal.
  2. Seleccione Bases de datos SQL en el menú izquierdo y, después, seleccione la base de datos SSISDB en la página Bases de datos SQL.
  3. En la página Introducción de la base de datos, compruebe el nombre completo del servidor. Mantenga el puntero del ratón sobre el nombre del servidor para ver la opción Haga clic para copiar.
  4. Si olvida la información de inicio de sesión del servidor de Azure SQL Database, navegue a la página del servidor de SQL Database para ver el nombre del administrador del servidor. Si es necesario, puede restablecer la contraseña.
  5. Haga clic en Mostrar las cadenas de conexión de la base de datos.
  6. Revise la cadena de conexión ADO.NET completa.

Método de autenticación compatible

Consulte Métodos de autenticación para la implementación.

Proveedor PowerShell de SSIS

Proporcione los valores adecuados para las variables en la parte superior del script siguiente y, a continuación, ejecute el script para implementar el proyecto de SSIS.

Nota:

En el ejemplo siguiente se usa la autenticación de Windows para efectuar una implementación en un servidor de SQL Server local. Use el cmdlet New-PSDive para establecer una conexión con autenticación de SQL Server. Si se va a conectar a un servidor de Azure SQL Database, no puede usar la autenticación de 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

Script de PowerShell

Proporcione los valores adecuados para las variables en la parte superior del script siguiente y, a continuación, ejecute el script para implementar el proyecto de SSIS.

Nota:

En el ejemplo siguiente se usa la autenticación de Windows para efectuar una implementación en un servidor de SQL Server local. Para usar la autenticación de SQL Server, reemplace el argumento Integrated Security=SSPI; por User ID=<user name>;Password=<password>;. Si se va a conectar a un servidor de Azure SQL Database, no puede usar la autenticación de 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."

Pasos siguientes