Partilhar via


Tutorial: Implementar e executar um pacote SQL Server Integration Services (SSIS) no Azure

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

Este tutorial mostra-lhe como implementar um projeto de SQL Server Integration Services (SSIS) para o Catálogo SSIS na Azure SQL Database, executar um pacote no Azure-SSIS Integration Runtime e monitorizar o pacote em execução.

Pré-requisitos

Instale a versão mais recente do SQL Server Management Studio (SSMS).

Também certifique-se de que configurou a base de dados SSISDB no Azure e provisionou o Azure-SSIS Integration Runtime. Para informações sobre como provisionar SSIS no Azure, consulte Deploy SQL Server Integration Services packages to Azure.

Para Azure SQL Database, obtenha a informação de ligação

Para executar o pacote na Azure SQL Database, obtenha a informação de ligação necessária para se ligar à base de dados do Catálogo SSIS (SSISDB). Necessita do nome completo do servidor e das informações de login nos procedimentos que se seguem.

  1. Inicie sessão no portal do Azure.
  2. Selecione Bases de Dados SQL no menu à esquerda e depois selecione a base de dados SSISDB na página de bases de dados SQL .
  3. Na página de Visão Geral da sua base de dados, consulte o nome do servidor totalmente qualificado. Para ver a opção Clique para copiar , passe o rato sobre o nome do servidor.
  4. Se esquecer as informações de login do servidor Azure SQL Database, aceda à página do servidor SQL Database para ver o nome do administrador do servidor. Podes repor a palavra-passe se for necessário.

Liga-te à base de dados SSISDB

Use o SQL Server Management Studio para se ligar ao Catálogo SSIS no seu servidor Azure SQL Database. Para mais informações e capturas de ecrã, consulte Ligar à base de dados do Catálogo SSISDB no Azure.

Aqui estão as duas coisas mais importantes a lembrar. Estes passos são descritos no procedimento seguinte.

  • Insira o nome totalmente qualificado do servidor Azure SQL Database no formato mysqldbserver.database.windows.net.
  • Selecione SSISDB como base de dados da ligação.

Importante

Um servidor de base de dados Azure SQL Database escuta na porta 1433. Se estiver a tentar ligar-se a um servidor Azure SQL Database a partir de um firewall corporativo, esta porta deve estar aberta no firewall corporativo para que se ligue com sucesso.

  1. Abra o SQL Server Management Studio.

  2. Liga-te ao servidor. Na caixa de dialogo Ligar ao Servidor, introduza as seguintes informações:

    Configuração Valor sugerido Description
    Tipo de servidor Mecanismo de Banco de Dados Este valor é obrigatório.
    Nome do servidor O nome totalmente qualificado do servidor O nome deve estar neste formato: mysqldbserver.database.windows.net. Se precisar do nome do servidor, consulte Ligar à base de dados do Catálogo SSISDB no Azure.
    Authentication Autenticação do SQL Server Não podes ligar-te à Azure SQL Database com autenticação Windows.
    Iniciar sessão A conta de administrador do servidor A conta que especificou quando criou o servidor.
    Senha A palavra-passe da sua conta de administrador do servidor A palavra-passe que especificaste quando criaste o servidor.
  3. Liga-te à base de dados SSISDB. Selecione Opções para expandir a caixa de diálogo Ligar ao Servidor. Na caixa de diálogo expandida Ligar ao Servidor , selecione o separador Propriedades da Ligação . No campo Ligar à base de dados , selecione ou introduza SSISDB.

  4. Em seguida, selecione Conectar. A janela do Object Explorer é aberta no SSMS.

  5. No Object Explorer, expanda os Catálogos de Serviços de Integração e depois expanda o SSISDB para visualizar os objetos na base de dados do Catálogo SSIS.

Implemente um projeto com o Assistente de Implementação

Para saber mais sobre a implementação de pacotes e sobre o Assistente de Implementação, consulte Projetos e Pacotes de Serviços de Integração (SSIS ) e Assistente de Implementação de Serviços de Integração.

Observação

A implementação no Azure suporta apenas o modelo de implementação do projeto.

Iniciar o Assistente de Implementação de Serviços de Integração

  1. No Explorador de Objetos no SSMS, com o nó Catálogos de Serviços de Integração e o nó SSISDB expandidos, expanda uma pasta de projeto.

  2. Selecione o nó Projetos.

  3. Clique com o botão direito no nó Projetos e selecione Implementar projeto. O Assistente de Implementação de Serviços de Integração abre-se. Pode implementar um projeto a partir de uma base de dados do Catálogo SSIS ou do sistema de ficheiros.

    Implementar um projeto a partir do SSMS

    A caixa de diálogo do Assistente de Implementação do SSIS abre-se

Implemente um projeto com o Assistente de Implementação

  1. Na página de Introdução do Assistente de Implementação, reveja a introdução. Selecione Seguinte para abrir a página Selecionar Fonte .

  2. Na página Selecionar Fonte , selecione o projeto SSIS existente a implementar.

    • Para implementar um ficheiro de implementação de projeto que criou, selecione ficheiro de implementação de projeto e introduza o caminho para o ficheiro .ispac.
    • Para implementar um projeto que reside num catálogo SSIS, selecione o catálogo de Serviços de Integração e depois introduza o nome do servidor e o caminho para o projeto no catálogo. Apenas os projetos que residem em SSISDB alojado por SQL Server podem ser reimplementados nesta etapa.
    • Selecione Próximo para ver a página de Selecionar Destino .
  3. Na página Selecionar Destino , selecione o destino do projeto.

    • Insira o nome do servidor totalmente qualificado no formato <server_name>.database.windows.net.
    • Forneça informações de autenticação e depois selecione Conectar.
    • Depois seleciona Explorar para selecionar a pasta de destino no SSISDB.
    • Depois, selecione Seguinte para abrir a página de Avaliação . (O botão Next só está ativado depois de selecionar Conectar.)
  4. Na página de Avaliação , revê as definições que selecionaste.

    • Pode alterar as suas escolhas selecionando Anterior, ou selecionando qualquer um dos passos no painel esquerdo.
    • Selecione Implantar para iniciar o processo de implantação.

    Observação

    Se receber a mensagem de erro Não há agente trabalhador ativo. (.Net SqlClient Data Provider), certifique-se de que o Runtime de Integração Azure-SSIS está em execução. Este erro ocorre se tentar ativar enquanto o Azure-SSIS IR está em estado parado.

  5. Após a conclusão do processo de implementação, abre-se a página de Resultados . Esta página mostra o sucesso ou fracasso de cada ação.

    • Se a ação falhou, selecione Falhou na coluna Resultado para mostrar uma explicação do erro.
    • Opcionalmente, seleciona Guardar Relatório... para guardar os resultados num ficheiro XML.
    • Selecione Fechar para sair do assistente.

Implementar um projeto com PowerShell

Para implementar um projeto com PowerShell para SSISDB na Azure SQL Database, adapte o seguinte script às suas necessidades. O script enumera as pastas filhas sob $ProjectFilePath e os projetos em cada pasta filha, depois cria as mesmas pastas no SSISDB e desdobra os projetos nessas pastas.

Este script requer o SQL Server Data Tools versão 17.x ou o SQL Server Management Studio instalados no computador onde executa o script.

# Variables
$ProjectFilePath = "C:\<folder>"
$SSISDBServerEndpoint = "<servername>.database.windows.net"
$SSISDBServerAdminUserName = "<username>"
$SSISDBServerAdminPassword = "<password>"

# Load the IntegrationServices Assembly
[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SqlServer.Management.IntegrationServices") | Out-Null;

# Store the IntegrationServices Assembly namespace to avoid typing it every time
$ISNamespace = "Microsoft.SqlServer.Management.IntegrationServices"

Write-Host "Connecting to server ..."

# Create a connection to the server
$sqlConnectionString = "Data Source=" + $SSISDBServerEndpoint + ";User ID="+ $SSISDBServerAdminUserName +";Password="+ $SSISDBServerAdminPassword + ";Initial Catalog=SSISDB"
$sqlConnection = New-Object System.Data.SqlClient.SqlConnection $sqlConnectionString

# Create the Integration Services object
$integrationServices = New-Object $ISNamespace".IntegrationServices" $sqlConnection

# Get the catalog
$catalog = $integrationServices.Catalogs['SSISDB']

write-host "Enumerating all folders..."

$folders = ls -Path $ProjectFilePath -Directory

if ($folders.Count -gt 0)
{
    foreach ($filefolder in $folders)
    {
        Write-Host "Creating Folder " + $filefolder.Name + " ..."

        # Create a new folder
        $folder = New-Object $ISNamespace".CatalogFolder" ($catalog, $filefolder.Name, "Folder description")
        $folder.Create()

        $projects = ls -Path $filefolder.FullName -File -Filter *.ispac
        if ($projects.Count -gt 0)
        {
            foreach($projectfile in $projects)
            {
                $projectfilename = $projectfile.Name.Replace(".ispac", "")
                Write-Host "Deploying " + $projectfilename + " project ..."

                # Read the project file, and deploy it to the folder
                [byte[]] $projectFileContent = [System.IO.File]::ReadAllBytes($projectfile.FullName)
                $folder.DeployProject($projectfilename, $projectFileContent)
            }
        }
    }
}

Write-Host "All done." 

Executar um pacote

  1. No Explorador de Objetos no SSMS, seleciona o pacote que queres executar.

  2. Clique com o botão direito e selecione Executar para abrir a caixa de diálogo Executar Pacote .

  3. Na caixa de diálogo Executar Pacote, configure a execução do pacote usando as definições nas abas Parâmetros, Gestores de Ligação e Avançado.

  4. Seleciona OK para executar o pacote.

Monitorizar o pacote em execução no SSMS

Para ver o estado das operações de Serviços de Integração atualmente em execução no servidor de Serviços de Integração, como implantação, validação e execução de pacotes, utilize a caixa de diálogo Operações Ativas no SSMS. Para abrir a caixa de diálogo Operações Ativas , clique com o botão direito em SSISDB e depois selecione Operações Ativas.

Também pode selecionar um pacote no Object Explorer, clicar com o botão direito e selecionar Relatórios, depois Relatórios Padrão e depois Todas as Execuções.

Para mais informações sobre como monitorizar pacotes em execução no SSMS, consulte Monitorizar Pacotes em Execução e Outras Operações.

Monitorizar a atividade de Executar o Pacote SSIS

Se estiver a executar um pacote como parte de um pipeline Azure Data Factory com a atividade Executar Pacote SSIS, pode monitorizar as execuções do pipeline na interface Data Factory. Depois podes obter o ID de execução do SSISDB a partir da saída da execução da atividade e usar o ID para verificar registos de execução mais completos e mensagens de erro no SSMS.

Obtenha o ID de execução do pacote no Data Factory

Monitorizar o tempo de execução de integração Azure-SSIS

Para obter informações de estado sobre o Azure-SSIS Integration Runtime em que os pacotes estão a correr, use os seguintes comandos PowerShell. Para cada um dos comandos, forneça os nomes da Data Factory, da Azure-SSIS IR e do grupo de recursos.

Para mais informações, consulte Monitor Azure-SSIS runtime de integração.

Obtenha metadados sobre o Azure-SSIS Integration Runtime

Get-AzDataFactoryV2IntegrationRuntime -DataFactoryName $DataFactoryName -Name $AzureSsisIRName -ResourceGroupName $ResourceGroupName

Obtenha o estado do Runtime de Integração Azure-SSIS

Get-AzDataFactoryV2IntegrationRuntime -Status -DataFactoryName $DataFactoryName -Name $AzureSsisIRName -ResourceGroupName $ResourceGroupName

Próximos passos