Executar um pacote do SSIS com o PowerShell

Aplica-se a: SQL Server SSIS Integration Runtime no Azure Data Factory

Este guia de início rápido demonstra como usar um script do PowerShell para se conectar a um servidor de banco de dados e executar um pacote do SSIS.

Pré-requisitos

Um servidor do Banco de Dados SQL do Azure escuta na porta 1433. Se estiver tentando se conectar a um servidor de Banco de Dados SQL do Azure em um firewall corporativo, essa porta deverá estar aberta no firewall corporativo para que você se conecte com êxito.

Plataformas com suporte

Você pode usar as informações neste guia de início rápido para executar um pacote do SSIS nas seguintes plataformas:

Você não pode usar as informações neste guia de início rápido para executar um pacote do SSIS no Linux. Para obter mais informações sobre como executar pacotes no Linux, veja Extrair, transformar e carregar dados no Linux com o SSIS.

Para o Banco de Dados SQL do Azure, obtenha as informações de conexão

Para executar o pacote no Banco de Dados SQL do Azure, obtenha as informações de conexão necessárias para se conectar ao SSISDB (banco de dados de catálogo do SSIS). Você precisa das informações de logon e de nome do servidor totalmente qualificado nos procedimentos a seguir.

  1. Entre no portal do Azure.
  2. Selecione Bancos de Dados SQL no menu à esquerda e selecione o banco de dados do SSISDB na página Bancos de dados SQL.
  3. Na página Visão geral do banco de dados, examine o nome totalmente qualificado do servidor. Para ver a opção Clique para copiar, passe o mouse sobre o nome do servidor.
  4. Se você esquecer suas informações de logon do servidor de Banco de Dados SQL do Azure, navegue até a página do servidor de Banco de Dados SQL para exibir o nome do administrador de servidor. Você pode redefinir a senha, se necessário.
  5. Clique em Mostrar cadeias de conexão de banco de dados.
  6. Examine a cadeia de conexão ADO.NET completa.

Provedor do PowerShell do SSIS

Você pode usar o Provedor do PowerShell do SSIS para se conectar a um catálogo do SSIS e executar pacotes dentro dele.

Abaixo está um exemplo básico de como executar um pacote do SSIS em um catálogo de pacotes com o Provedor do PowerShell do SSIS.

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

Script do PowerShell

Forneça os valores adequados para as variáveis na parte superior do script a seguir e, em seguida, execute o script para executar o pacote do SSIS.

Observação

O exemplo a seguir usa a Autenticação do Windows. Para usar a autenticação do SQL Server, substitua o argumento Integrated Security=SSPI; com User ID=<user name>;Password=<password>;. Se você estiver se conectando a um servidor de Banco de Dados SQL do Azure, não poderá usar a autenticação do 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."

Próximas etapas