Executar pacotes do SQL Server Integration Services com o utilitário dtexec habilitado para Azure

APLICA-SE A: Azure Data Factory Azure Synapse Analytics

Gorjeta

Experimente o Data Factory no Microsoft Fabric, uma solução de análise tudo-em-um para empresas. O Microsoft Fabric abrange tudo, desde a movimentação de dados até ciência de dados, análises em tempo real, business intelligence e relatórios. Saiba como iniciar uma nova avaliação gratuitamente!

Este artigo descreve o utilitário de pedido de aviso de comando dtexec (AzureDTExec) ativado pelo Azure. Ele é usado para executar pacotes do SQL Server Integration Services (SSIS) no Azure-SSIS Integration Runtime (IR) no Azure Data Factory.

O utilitário dtexec tradicional vem com o SQL Server. Para obter mais informações, consulte utilitário dtexec. Ele geralmente é invocado por orquestradores ou agendadores de terceiros, como ActiveBatch e Control-M, para executar pacotes SSIS localmente.

O utilitário AzureDTExec moderno vem com uma ferramenta do SQL Server Management Studio (SSMS). Ele também pode ser invocado por orquestradores ou agendadores de terceiros para executar pacotes SSIS no Azure. Ele facilita o levantamento e a mudança ou migração de seus pacotes SSIS para a nuvem. Após a migração, se você quiser continuar usando orquestradores ou agendadores de terceiros em suas operações diárias, eles agora podem invocar AzureDTExec em vez de dtexec.

O AzureDTExec executa seus pacotes como Executar atividades do Pacote SSIS em pipelines do Data Factory. Para obter mais informações, consulte Executar pacotes SSIS como atividades do Azure Data Factory.

AzureDTExec pode ser configurado via SSMS para usar um aplicativo Microsoft Entra que gera pipelines em sua fábrica de dados. Ele também pode ser configurado para acessar sistemas de arquivos, compartilhamentos de arquivos ou Arquivos do Azure onde você armazena seus pacotes. Com base nos valores fornecidos para suas opções de invocação, o AzureDTExec gera e executa um pipeline exclusivo do Data Factory com uma atividade Executar Pacote SSIS nele. Invocar AzureDTExec com os mesmos valores para suas opções executa novamente o pipeline existente.

Pré-requisitos

Para usar o AzureDTExec, baixe e instale a versão mais recente do SSMS, que é a versão 18.3 ou posterior. Faça o download a partir deste site.

Configurar o utilitário AzureDTExec

A instalação do SSMS em sua máquina local também instala o AzureDTExec. Para definir suas configurações, inicie o SSMS com a opção Executar como administrador . Em seguida, selecione Ferramentas>Migrar para o Azure Configurar DTExec habilitado para Azure.>

Configure Azure-enabled dtexec menu

Esta ação abre uma janela AzureDTExecConfig que precisa ser aberta com privilégios administrativos para que ela grave no arquivo AzureDTExec.settings . Se você não tiver executado o SSMS como administrador, uma janela UAC (Controle de Conta de Usuário) será aberta. Introduza a sua palavra-passe de administrador para elevar os seus privilégios.

Configure Azure-enabled dtexec settings

Na janela AzureDTExecConfig, insira suas definições de configuração da seguinte maneira:

  • ApplicationId: insira o identificador exclusivo do aplicativo Microsoft Entra que você cria com as permissões certas para gerar pipelines em seu data factory. Para obter mais informações, consulte Criar um aplicativo e uma entidade de serviço do Microsoft Entra por meio do portal do Azure.
  • AuthenticationKey: insira a chave de autenticação para seu aplicativo Microsoft Entra.
  • TenantId: insira o identificador exclusivo do locatário do Microsoft Entra, sob o qual seu aplicativo Microsoft Entra é criado.
  • DataFactory: insira o nome do seu data factory no qual pipelines exclusivos com a atividade Executar Pacote SSIS são gerados com base nos valores das opções fornecidas quando você invoca o AzureDTExec.
  • IRName: insira o nome do IR do Azure-SSIS em seu data factory, no qual os pacotes especificados no caminho UNC (Convenção de Nomenclatura Universal) serão executados quando você invocar o AzureDTExec.
  • PipelineNameHashStrLen: introduza o comprimento das cadeias hash a gerar a partir dos valores das opções introduzidos quando invoca AzureDTExec. As cadeias de caracteres são usadas para formar nomes exclusivos para pipelines do Data Factory que executam seus pacotes no IR do Azure-SSIS. Normalmente, um comprimento de 32 caracteres é suficiente.
  • ResourceGroup: insira o nome do grupo de recursos do Azure no qual seu data factory foi criado.
  • SubscriptionId: insira o identificador exclusivo da assinatura do Azure, sob a qual seu data factory foi criado.
  • LogAccessDomain: insira a credencial de domínio para acessar sua pasta de log em seu caminho UNC quando você escrever arquivos de log, o que é necessário quando LogPath é especificado e LogLevel não é nulo.
  • LogAccessPassword: insira a credencial de senha para acessar sua pasta de log em seu caminho UNC quando você escrever arquivos de log, o que é necessário quando LogPath é especificado e LogLevel não é nulo.
  • LogAccessUserName: insira a credencial de nome de usuário para acessar sua pasta de log em seu caminho UNC quando você escrever arquivos de log, o que é necessário quando LogPath é especificado e LogLevel não é nulo.
  • LogLevel: insira o escopo selecionado do log das opções nulas, básicas, detalhadas ou de desempenho predefinidas para suas execuções de pacote no IR do Azure-SSIS.
  • LogPath: insira o caminho UNC da pasta de log, no qual os arquivos de log de suas execuções de pacote no IR do Azure-SSIS são gravados.
  • PackageAccessDomain: insira a credencial de domínio para acessar seus pacotes no caminho UNC especificado quando você invoca o AzureDTExec.
  • PackageAccessPassword: insira a credencial de senha para acessar seus pacotes no caminho UNC especificado quando você invoca o AzureDTExec.
  • PackageAccessUserName: insira a credencial de nome de usuário para acessar seus pacotes no caminho UNC especificado quando você invoca o AzureDTExec.

Para armazenar seus pacotes e arquivos de log em sistemas de arquivos ou compartilhamentos de arquivos locais, associe seu IR do Azure-SSIS a uma rede virtual conectada à sua rede local para que ele possa buscar seus pacotes e gravar seus arquivos de log. Para obter mais informações, consulte Associar um IR do Azure-SSIS a uma rede virtual.

Para evitar mostrar valores confidenciais gravados no arquivo AzureDTExec.settings em texto sem formatação, codificamo-los em cadeias de caracteres de codificação Base64. Quando você invoca AzureDTExec, todas as cadeias de caracteres codificadas em Base64 são decodificadas de volta para seus valores originais. Você pode proteger ainda mais o arquivo AzureDTExec.settings limitando as contas que podem acessá-lo.

Invoque o utilitário AzureDTExec

Você pode invocar AzureDTExec no prompt de linha de comando e fornecer os valores relevantes para opções específicas em seu cenário de caso de uso.

O utilitário está instalado em {SSMS Folder}\Common7\IDE\CommonExtensions\Microsoft\SSIS\150\Binn. Você pode adicionar seu caminho à variável de ambiente 'PATH' para que ele seja invocado de qualquer lugar.

> cd "C:\Program Files (x86)\Microsoft SQL Server Management Studio 18\Common7\IDE\CommonExtensions\Microsoft\SSIS\150\Binn"
> AzureDTExec.exe  ^
  /F \\MyStorageAccount.file.core.windows.net\MyFileShare\MyPackage.dtsx  ^
  /Conf \\MyStorageAccount.file.core.windows.net\MyFileShare\MyConfig.dtsConfig  ^
  /Conn "MyConnectionManager;Data Source=MyDatabaseServer.database.windows.net;User ID=MyAdminUsername;Password=MyAdminPassword;Initial Catalog=MyDatabase"  ^
  /Set \package.variables[MyVariable].Value;MyValue  ^
  /De MyEncryptionPassword

Invocar AzureDTExec oferece opções semelhantes como invocar dtexec. Para obter mais informações, consulte dtexec Utility. Aqui estão as opções que são suportadas atualmente:

  • /F[ile]: Carrega um pacote armazenado no sistema de arquivos, no compartilhamento de arquivos ou nos Arquivos do Azure. Como valor para essa opção, você pode especificar o caminho UNC para seu arquivo de pacote no sistema de arquivos, compartilhamento de arquivos ou Arquivos do Azure com sua extensão .dtsx. Se o caminho UNC especificado contiver espaço, coloque aspas ao redor de todo o caminho.
  • /Conf[igFile]: Especifica um arquivo de configuração do qual extrair valores. Usando essa opção, você pode definir uma configuração de tempo de execução para seu pacote que difere daquela especificada em tempo de design. Você pode armazenar diferentes configurações em um arquivo de configuração XML e, em seguida, carregá-las antes da execução do pacote. Para obter mais informações, consulte Configurações de pacotes SSIS. Para especificar o valor dessa opção, use o caminho UNC para seu arquivo de configuração no sistema de arquivos, compartilhamento de arquivos ou Arquivos do Azure com sua extensão dtsConfig. Se o caminho UNC especificado contiver espaço, coloque aspas ao redor de todo o caminho.
  • /Conn[ection]: Especifica cadeias de conexão para gerenciadores de conexões existentes em seu pacote. Usando essa opção, você pode definir cadeias de conexão em tempo de execução para gerenciadores de conexões existentes em seu pacote que diferem das especificadas em tempo de design. Especifique o valor para esta opção da seguinte forma: connection_manager_name_or_id;connection_string [[;connection_manager_name_or_id;connection_string]...].
  • /set: Substitui a configuração de um parâmetro, variável, propriedade, contêiner, provedor de log, enumerador Foreach ou conexão em seu pacote. Esta opção pode ser especificada várias vezes. Especifique o valor para esta opção da seguinte forma: property_path;value. Por exemplo, \package.variables[counter].Value;1 substitui o valor da counter variável como 1. Você pode usar o assistente de Configuração de Pacote para localizar, copiar e colar o valor de property_path itens em seu pacote cujo valor você deseja substituir. Para obter mais informações, consulte Assistente de configuração de pacote.
  • /De[crypt]: Define a palavra-passe de desencriptação para o seu pacote que está configurado com o nível de proteção EncryptAllWithPassword EncryptSensitiveWithPassword/.

Nota

Invocar AzureDTExec com novos valores para suas opções gera um novo pipeline, exceto para a opção /De[cript].

Depois que pipelines exclusivos com a atividade Executar Pacote SSIS neles são gerados e executados quando você invoca o AzureDTExec, eles podem ser monitorados no portal do Data Factory. Você também pode atribuir gatilhos do Data Factory a eles se quiser orquestrar/programá-los usando o Data Factory. Para obter mais informações, consulte Executar pacotes SSIS como atividades do Data Factory.

Aviso

Espera-se que o pipeline gerado seja usado apenas pelo AzureDTExec. Suas propriedades ou parâmetros podem mudar no futuro, portanto, não os modifique ou reutilize para outros fins. As modificações podem quebrar o AzureDTExec. Se isso acontecer, exclua o pipeline. O AzureDTExec gera um novo pipeline na próxima vez que for invocado.