Partilhar via


Executar um pacote SSIS com o PowerShell

Aplica-se a:SQL Server SSIS Integration Runtime em 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 SSIS.

Pré-requisitos

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

Plataformas suportadas

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

Não é possível usar as informações neste início rápido para executar um pacote SSIS no Linux. Para saber mais sobre como executar pacotes no Linux, veja Extrair, transformar e carregar dados no Linux com 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 banco de dados do Catálogo SSIS (SSISDB). Você precisa do nome do servidor totalmente qualificado e das informações de login nos procedimentos que se seguem.

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

Provedor do PowerShell SSIS

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

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

(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 valores apropriados para as variáveis na parte superior do script a seguir e execute o script para executar o pacote SSIS.

Observação

O exemplo a seguir usa a Autenticação do Windows. Para usar a autenticação do SQL Server, substitua o Integrated Security=SSPI; argumento por User ID=<user name>;Password=<password>;. Se você estiver se conectando a um servidor do 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óximos passos