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

APLICA-SE A: Azure Data Factory Azure Synapse Analytics

Dica

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

Este artigo descreve o utilitário de prompt de comando dtexec (AzureDTExec) habilitado para 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 saber mais, veja dtexec Utility. Geralmente, ele é invocado por orquestradores ou agendadores de terceiros, como ActiveBatch e Control-M, para executar pacotes do 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 do SSIS no Azure. Ele facilita o levantamento e o deslocamento ou a migração de seus pacotes do SSIS para a nuvem. Após a migração, se você quiser continuar usando os 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 atividades de execução de pacote SSIS em pipelines Data Factory. Para obter mais informações, consulte Executar pacotes do SSIS como atividades do Azure Data Factory.

O AzureDTExec pode ser configurado por meio do SSMS para usar um aplicativo do Microsoft Entra que gera pipelines em seu data factory. Ele também pode ser configurado para acessar sistemas de arquivos, compartilhamentos de arquivos ou arquivos do Azure em que você armazena seus pacotes. Com base nos valores que você fornece para suas opções de invocação, o AzureDTExec gera e executa um pipeline de Data Factory exclusivo com uma atividade de execução de 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. Baixe-o neste site.

Configurar o utilitário AzureDTExec

Instalar o SSMS em seu computador 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

Essa ação abre uma janela AzureDTExecConfig que precisa ser aberta com privilégios administrativos para gravar no arquivo AzureDTExec.settings. Se você não tiver executado o SSMS como administrador, uma janela de Controle de conta de usuário (UAC) será aberta. Insira sua senha de administrador para elevar seus privilégios.

Configure Azure-enabled dtexec settings

Na janela AzureDTExecConfig, insira as 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 do Microsoft Entra e uma entidade de serviço por meio do portaldo Azure.
  • AuthenticationKey: insira a chave de autenticação do aplicativo Microsoft Entra.
  • TenantId: insira o identificador exclusivo do locatário do Microsoft Entra, no qual o aplicativo Microsoft Entra é criado.
  • DataFactory: Insira o nome do seu data factory no qual os pipelines exclusivos com a atividade Executar Pacote do SSIS são gerados com base nos valores das opções fornecidas ao invocar o AzureDTExec.
  • IRName: Insira o nome do Azure-SSIS IR no 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: Insira o comprimento das cadeias de caracteres de hash a serem geradas a partir dos valores das opções que você fornece ao invocar o AzureDTExec. As cadeias de caracteres são usadas para formar nomes exclusivos para pipelines Data Factory que executam seus pacotes no Azure-SSIS IR. Geralmente, um comprimento de 32 caracteres é suficiente.
  • ResourceGroup: Insira o nome do grupo de recursos do Azure no qual o data factory foi criado.
  • SubscriptionId: Insira o identificador exclusivo da assinatura do Azure na qual o seu data factory foi criado.
  • LogAccessDomain: Insira a credencial do domínio para acessar a sua pasta de logs no caminho UNC quando você grava arquivos de log. Isso será necessário quando LogPath for especificado e LogLevel não for nulo.
  • LogAccessPassword: Insira a credencial de senha para acessar a sua pasta de logs no caminho UNC quando você grava arquivos de log. Isso será necessário quando LogPath for especificado e LogLevel não for nulo.
  • LogAccessUserName: Insira a credencial do nome de usuário para acessar a sua pasta de logs no caminho UNC quando você grava arquivos de log. Isso será necessário quando LogPath for especificado e LogLevel não for nulo.
  • LogLevel: Insira o escopo selecionado de registro em log das opções predefinidas nulo, Básico, Detalhado ou Desempenho das execuções de pacote no Azure-SSIS IR.
  • LogPath: Insira o caminho UNC da pasta de log na qual os arquivos de log das suas execuções de pacote no Azure-SSIS IR são gravados.
  • PackageAccessDomain: Insira a credencial de domínio para acessar seus pacotes no caminho UNC que é especificado quando você invoca o AzureDTExec.
  • PackageAccessPassword: Insira a credencial de senha para acessar os seus pacotes no caminho UNC que é especificado quando você invoca o AzureDTExec.
  • PackageAccessUserName: Insira a credencial de nome de usuário para acessar os seus pacotes no caminho UNC que é especificado quando você invoca o AzureDTExec.

Para armazenar seus pacotes e arquivos de log em sistemas de arquivos ou compartilhamentos de arquivos locais, ingresse seu Azure-SSIS IR em 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, confira Criar um Azure-SSIS IR em uma rede virtual.

Para evitar a exibição de valores confidenciais gravados no arquivo AzureDTExec.Settings em texto sem formatação, nós os codificamos 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.

Invocar o utilitário AzureDTExec

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

O utilitário é 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 saber mais, veja dtexec Utility. Aqui estão as opções com suporte no momento:

  • /F[ile] : Carrega um pacote armazenado no sistema de arquivos, compartilhamento de arquivos ou arquivos do Azure. Como o valor dessa opção, você pode especificar o caminho UNC para o 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 qualquer espaço, coloque o caminho inteiro entre aspas.
  • /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 o pacote que difere da especificada em tempo de design. É possível armazenar configurações diferentes em um arquivo de configuração XML e, em seguida, carregá-las antes da execução de seu pacote. Para obter mais informações, consulte Configurações do pacote SSIS. Para especificar o valor para essa opção, você pode usar 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 qualquer espaço, coloque o caminho inteiro entre aspas.
  • /Conn[ection] : Especifica as cadeias de conexão para os gerenciadores de conexões existentes em seu pacote. Usando essa opção, você pode definir cadeias de conexão de tempo de execução para os gerenciadores de conexões existentes em seu pacote que diferem daqueles especificados em tempo de design. Especifique o valor para essa opção da seguinte maneira: 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 dentro de um pacote. Essa opção pode ser especificada várias vezes. Especifique o valor para essa opção da seguinte maneira: property_path;value. Por exemplo, \package.variables[counter].Value;1 substitui o valor de counter variável como 1. Você pode usar o assistente de configuração de pacotes para localizar, copiar e colar o valor de property_path para itens em seu pacote cujo valor você deseja substituir. Para obter mais informações, consulte Assistente de configuração de pacotes.
  • /De[crypt] : Define a senha de descriptografia para o pacote que é configurado com o nível de proteçãoEncryptAllWithPassword/EncryptSensitiveWithPassword.

Observação

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

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 Data Factory. Você também pode atribuir gatilhos Data Factory a eles se desejar orquestrá-los/agendá-los usando Data Factory. Para obter mais informações, consulte Executar pacotes do SSIS como atividades do Data Factory.

Aviso

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