Olá pessoal, tudo certo!

Neste post quero mostrar para vocês uma forma de visualizar no processo de ETL a transformação que uma determinada tarefa está executando. Para isso, precisamos habilitar o recurso de Data Viewer.

Antes de mostrar como habilitar o recurso e como ele funciona, preciso deixar algumas coisas claras sobre o SSIS.

O primeiro ponto é que toda transformação que ocorre aqui é feita in-memory, isso quer dizer que ele utiliza buffers de memória onde ele aloca blocos de dados e processa a transformação.

O segundo ponto é que ele trabalha com blocos de 10.000 linhas ou buffers de 10mb por tarefas podendo ocorrer em paralelo ou não. Isso vai variar das tarefas utilizadas.

NOTA: se em um determinado processo estiver ocorrendo uma transformação com 5 tarefas em paralelo ele irá processar cerca de 50k de linhas ao mesmo tempo. O fato dele trabalhar com 10k linhas, é aplicado em cada tarefa e não em todo o processo.

Esclarecido esse detalhe, vamos ver como ativar o data view.

Para este post, vocês podem pegar um processo de ETL já criado e utilizar para o exemplo, não precisando criar um novo do zero para isso.

Esse é o processo de ETL que irei utilizar e na imagem abaixo, veja como ativar o recurso.

O Data Viewer deve ser habilitado entre os processos que se deseja visualizar, como feito no exemplo. Quero analisar como o fluxo de dados ocorre entre a tarefa  de extração de dados na fonte e o ordenamento.

Uma vez habilitado o Data Viewer basta executar o processo que ele irá aparecer, como na imagem abaixo:

Como é entre a task de extração e ordenamento, não há nenhuma transformação no momento, mas podemos perceber o seguinte:

  • No quadrante preto: as primeiras 9000 linhas que serão analisadas. Como dito no início do post, ele trabalha com esse bloco de 10k.
  • Sublinhado em preto: como na task de extração de dados telefônicos não há uma análise utilizando o Data Viewer os registros correspondentes foram liberados.
  • Em azul: o símbolo de “play” e o “Detach”. O símbolo de play irá avançar para o próximo bloco de linhas, caso ele exista. E o “detach” irá liberar o bloco inteiro, finalizando o Data Viewer.
  • Quadrante Vermelho: a quantidade de linhas sendo analisadas em “Rows Displayed” e quando apertar o play, teremos no total rows a quantidade de linhas liberadas e a quantidade de buffers.

Perceba que antes da execução da tarefa “JoinPersonPhone” temos 9216 linhas “em espera” isso porque, ainda não foram liberadas as linhas da primeira tarefa “TabPersonPerson” para o ordenamento, como ocorreu com a TabPhone.

Se o Data Viewer estiver aberto, todas as outras tarefas posteriores ficarão em espera até que a análise seja finalizada. Cuidado para não travar o processo de ETL esquecendo de desativar o visualizador.

Se ao abrir o visualizador e constatar que o fluxo, a operação e os dados estão corretos, basta clicar em Detach  e o processo continuará normalmente.

Abaixo, o exemplo do Data Viewer  na tarefa do Merge Join

E para desabilitar o Data Viewer basta clicar novamente com o botão direito e clicar em desabilitar.

Outro ponto que quero chamar atenção é na opção “Resolve References” . Esta permite entender como as colunas estão mapeadas e avançam para a próxima etapa.

No exemplo abaixo, temos as colunas que saíram da tarefa de Join do lado source seguindo para próxima etapa no lado destination.

Se nesse processo houver algum erro de mapeamento, é possível corrigir aqui.

Na imagem acima por exemplo, temos a coluna “AccountNumber” sem um destino. Poderíamos resolver excluindo a coluna selecionando a caixa de diálogo, clicando em “Preview Changes”  e OK ou então, arrastar a coluna fora do mapeamento para sua respectiva de direito.

Para evitar isso, tenha muita atenção nos processos de mapeamento.

Uma vez solucionado, pode prosseguir o processo de ETL sem problemas.

E só um adendo: basta clicar com o botão direito na seta azul entre as tarefas desejadas ou que acusarem algum tipo de erro.

Para este post quis chamar atenção para dois pequenos recursos que podem auxiliar a solução de problemas que podem ocorrer durante o ETL.

O recurso de visualização chamado Data Viewer é um importante aliado no que tange ao entendimento do que está ocorrendo e como as colunas estão sendo transformadas durante a execução de tarefas chaves.

Já a opção de visualizar o mapeamento durante a execução habilita a correção de possíveis erros durante tarefas de mapeamento ou se achar que existem colunas demais em um determinado processamento.

Embora sejam importantes aliados no tratamento de dados, tenha cuidado para não travar o processo de ETL e ter problemas no seu ambiente. Lembre-se que enquanto não forem fechados, as tarefas ficarão em espera.