DataARTIGO

Utilitários DTExec e DTExcUI

Algumas vezes a extração de dados torna-se um processo tão criterioso e minucioso que necessitamos executar instruções de extração, transformação e carga de dados fora de um processo do SQL Server.

Para esses casos, podemos executar este processo via agendamento em um job do Windows Server ou até mesmo chamando a partir de uma execução de algum aplicativo, seja um aplicativo agendado ou executado pelo usuário final. Em alguns casos, até o próprio usuário final pode ter a necessidade de executar um pacote, por exemplo, a carga de lista de preços para filiais no final de cada mês.

O fato é que não podemos exigir que os pacotes do SSIS estejam sempre presos aos processos do SQL Server, para isso o SQL Server nos dá dois utilitários – o DTExec.exe e o DTExecUI.exe.

Estes utilitários permitem executar pacotes criados no SSIS através de linhas de comando. No DTExec.exe podemos colocar a execução do pacote em um arquivo batch, o DTExecUi.exe, que por sua vez permite a execução através de uma interface gráfica e amigável.

A exemplificação da execução dos pacotes com esses dois utilitários irá necessitar de um pacote. Por isso, vou criar um pacote que faz a extração do banco de dados Northwind de um SQL Server 2000 para um banco de dados North2005 em servidor SQL Server 2005.

Se você não estiver familiarizado com a criação de pacotes acompanhe o exemplo abaixo, lembrando que esse é um pacote simples e o objetivo, neste artigo, não é explicar como criar pacotes no SSIS.
.

Figura 1 - Selecionar o Import Data para o banco de dados North2005.


Figura 1 – Selecionar o Import Data para o banco de dados North2005.

Esse comando irá chamar um utilitário de importação de dados do SQL Server. Perceba que ele é um wizard que só depende de leitura para executar. No primeiro passo, selecione o nome do servidor SQL Server de origem. Em meu exemplo, o nome é Barth2000, informe também as credenciais para autenticação e selecione o banco de dados Northwind.

Figura 2 - A origem dos dados.


Figura 2 – A origem dos dados.

Figura 3 - Destino dos dados.

Figura 3 – Destino dos dados.

O segundo passo nos remete à escolha do destino.

Já no terceiro passo, selecione a opção Copy data from one or more tables or views e siga para a próxima tela.

Selecione todos os objetos disponíveis e avance para o próximo passo, onde chegamos ao ponto em que vamos escolher a opção de criar o pacote SSIS.

Figura 4 - Salva o processo de importação em um pacote SSIS.

Figura 4 – Salva o processo de importação em um pacote SSIS.

Quando avançarmos, o SQL Server irá solicitar como será o nível de proteção do pacote, para fins de boa prática, selecionei com senha.

Figura 5 - Nível de proteção do pacote

Figura 5 – Nível de proteção do pacote

Figura 6 - Dados de para o SQL Server salvar o pacote.


Figura 6 – Dados para o SQL Server salvar o pacote.

Após preencher os dados para o SQL Server ter conhecimento de onde e com que autenticação salvar o pacote, clique em Finish e o SQL Server irá executar as rotinas do SSIS Package. É só aguardar ao término e clicar em close. Importante lembrar que ao salvarmos esse pacote no SQL Server este ficará gravado no banco de dados MSDB. Para validar essa informação, faça o select abaixo no banco MSDB.

Figura 7 - Verificando a gravação do pacote.


Figura 7 – Verificando a gravação do pacote.

Executando o DTExecUI.exe

O DTExecUi.exe pode ser chamado de diversas formas, neste artigo vou exemplificar duas formas de chamar o utilitário.

A maneira mais simples é a partir do Iniciar/Executar do Windows digitando DTExecUI.exe, isso irá chamar o utilitário.

Outra maneira de chamar é a partir do Management Studio, veja os passos abaixo:

1. Chame o Management Studio

2. Na tela de conexão (Connect to Server) selecione Integration Services no campo Server Type.

Figura 8 - Connect Server do Management Studio.

Figura 8 – Connect Server do Management Studio.

3. Expandindo a pasta Stored Packages e MSDB, iremos encontrar o package que criamos chamado Pacote.

Figura 9 - Stored Packages.

Figura 9 – Stored Packages.

4. Ao clicar sobre o Pacote com o botão direito teremos a opção Run Package. Este comando irá executar o DTExecUi.exe.

Figura 10 - Run Package chama o DTExecUI.exe.

Figura 10 – Run Package chama o DTExecUI.exe.

Executando o Pacote através do DTExecUI.exe

O DTExecUI é dividido em guias de configuração, vou explicar as principais configurações dentro deste aplicativo para executar o pacote.

  • General: Esta guia solicita informações sobre o armazenamento do pacote.
  • Configurations: permite informar arquivos de configuração pré-definidos para a execução de um pacote.
  • Command Files: permite informar arquivos de comando que são utilizados durante a execução do pacote.
  • Connection Managers: Permite editar as chaves de conexão usadas pelos pacotes.
  • Execution Options: usado para informar as opções de tempo de execução do pacote, incluindo o máximo de execuções concorrentes.
  • Reporting: indica quais informações devem ficar registradas para posterior relatório de execução.
  • Logging: informa a string de conexão para os provedores de log.
  • Set Values: atribui valores às variáveis do pacote.
  • Verification: define os critérios de verificação do pacote.
  • Command Line: exibe ou edita a linha de comando gerada pelos atributos de todas as outras guias.

Após ver sobre as opções que o utilitário nos oferece, vamos executar o pacote. Para execução do pacote, siga os passos descritos abaixo:

1. Execute o DTExecUI.exe e na guia geral preencha o nome do servidor e autenticação (nesse artigo estou executando no próprio servidor e com autenticação integrada).

Figura 11 - Configuração básica da localização do pacote.

Figura 11 – Configuração básica da localização do pacote.

2. Selecione o pacote no item SSIS Package, veja a imagem abaixo.

Figura 12 - Selecionando o SSIS Package.

Figura 12 – Selecionando o SSIS Package.

3. Para execução desse pacote não precisaremos configurar outros parâmetros, porém vale o tempo de olhar a guia Command Line que mostra a linha de comando para executar o mesmo.

Figura 13 - Linha de comando de execução do SSIS Package.

Figura 13 – Linha de comando de execução do SSIS Package.

É bom lembrar que é possível editar essa linha apenas marcando a opção Edit the command line manually.

Para executar o SSIS Package agora, basta acionar o botão Execute. O DTExecUi irá exibir uma tela de acompanhamento da execução.

Figura 14 - Package Execution Progress.

Figura 14 – Package Execution Progress.

Executando o Pacote através do DTExec.exe

Agora que já vimos como executar o SSIS Package através da interface gráfica ficará mais fácil de perceber como é a utilização do utilitário de linha de comando.

Este utilitário tem os mesmos parâmetros da interface gráfica. Para estudar todas as possibilidades de parâmetros, consulte o BOL no link http://msdn.microsoft.com/pt-br/library/ms162810.aspx, neste link há todas as informações de como passar os parâmetros, tal qual fizemos no tópico anterior.

O que vale orientar aqui é esta tabela com os códigos de retorno do utilitário.

Para executar o pacote via linha de comando, abra o prompt de comando e siga a imagem 15 para execução.

Figura 15 - Execução através do prompt de comando.

Figura 15 – Execução através do prompt de comando.

O comando acima irá disparar a execução do SSIS Package e ao final irá exibir um sumário da execução.

Figura 16 - Execução do SSIS Package.

Figura 16 – Execução do SSIS Package.

Perceba que para construir essa linha de comando foram copiados os parâmetros que o DTExecUI gerou, veja a figura 13. Em casos de maior complexidade e de não ser possível executar o pacote através do utilitário gráfico, pode ser uma boa solução a construção de parâmetros desta forma.

Há a possibilidade de colocarmos a chamada dessa linha de comando dentro de um batch t-sql, para isso basta utilizar a extend stored procedure xp_cmdshell.

Figura 17 - Execução através Extend Stored Procedure.

Figura 17 – Execução através Extend Stored Procedure.

Importante lembrar que para executar esse comando deve-se primeiro ter a opção que permite a execução de Extend Stored Procedure ativa no Surface Area Configuration.

Conclusão

Diversas vezes na rotina de atividades de administrador de um banco de dados temos que executar, criar e auxiliar a execução de ETLs. Para facilitar a vida do nosso usuário final, seja ele um programador ou um gerente de custos, podemos utilizar esses aplicativos para que os mesmos não tenham que tornar-se especialistas em SQL Server e tão pouco nós (DBAs) sejamos incumbidos de trabalhos operacionais que não fazem parte das atividades de administração e desenvolvimento em banco de dados.

é Analista de Sistemas certificado Microsoft, possui as certificações MCP, MCDBA, MCAD, MCSD com diversos anos de experiência em desenvolvimento em plataforma Microsoft com banco de dados SQL Server. Para maiores informações acesse o site www.crespi.pro.br.

Ver perfil