Olá pessoal! Espero que estejam bem!

No post de hoje quero mostrar de forma prática como podemos utilizar o SSIS para consumir ou armazenar dados em fontes textuais!

Este é um processo bem simples mas que se mostra bem útil no dia a dia, além de, o arquivo ser compatível basicamente com qualquer software do mercado! Então, vamos ver como funciona!

O primeiro passo é claro, criar a boa e velha data flow task dentro do nosso control flow e acessar as opções de data flow.

Vamos criar uma query no banco de dados AdventureWorks e este resultado, armazenar no arquivo TXT.

Abaixo, a subquery que eu criei para buscar somente os funcionários da empresa do banco de dados.

A query irá retornar alguns registros dos funcionários. Com esta query pronta, vamos passar a execução dela para o SSIS e criar o nosso pequeno fluxo e armazenar em TXT.

Como podemos ver na imagem acima, criamos nossa conexão. passamos o formato de acesso para “SQL command” e após colar a query na box, apliquei um preview. Depois veja se as colunas estão corretas e vamos para a próxima task.

Não esqueça de adicionar a task de conversão para garantir a conformidade dos dados!

Após a conversão dos dados, vamos criar a task para armazenar o resultado da query no arquivo TXT.

TASK FLAT FILE DESTINATION

Na opção de SSIS ToolBox, procure esta task para que possamos escrever os dados.

Abaixo, temos a tela inicial da task de flat file onde configuramos nosso arquivo de destino para o resultado da query no início do post.

Ao clicar em New, abriremos uma próxima tela de configuração onde teremos quatro opções e escolham a primeira: Delimited.  Feito isso, vamos avançar.

Na janela de configuração do flat file connection  vamos configurar:

  • O nome da conexão (circulado em azul)
  • A descrição da conexão (circulado em cinza)
  • O destino no diretório desejado junto com o nome pro arquivo (circulado em  vermelho)
  • E não esqueçam de marcar “Column name in the first data row”  (circulado em preto). Esta caixa de diálogo garante que a primeira linha do arquivo são os nomes das colunas.

Após, clique em columns mas não precisa alterar nada. Só quero destacar que neste tipo de arquivo criado temos a opção de alterar na fonte e passar para o TXT. Se por exemplo, eu quiser adicionar mais uma coluna na minha query ou alterar alguma configuração no connection manager. 

Para validar as alterações basta clicar no botão na parte inferior “reset column”. Mas tome cuidado, qualquer alteração feita e validada neste arquivo demandará atualização nas demais tasks que utilizam este arquivo.

E abaixo, as opções de delimitadores para column e row delimiter. 

Eu mantenho o padrão que vem no arquivo, não tenho e nunca tive problemas com esse tipo, mas se quiser alterar e testar, fiquem a vontade!

Ao selecionar a forma como as colunas e as  linhas serão delimitadas no arquivo, clique em Advanced. 

Ao abrir a tela, reparem no seguinte:

Em preto, temos as colunas que vieram da task de conversão assim como as colunas do banco originadas da consulta. Como ambas estão no mesmo formato, pode selecionar e excluir um grupo de colunas para não ficar redundante.

Em vermelho, temos as informações das colunas como: Data type, tamanho, separador e etc.

Em azul, temos três opções para entender:

  • New – é possível definir qual coluna sofrerá o insert primeiro e adicionar colunas ao arquivo, caso seja necessário. 
  • Delete –  simplesmente deleta uma coluna do grupo.
  • Suggest type – serve para utilizar os data types escolhidos pelo próprio SSIS baseado em uma amostragem de scan que a ferramenta realiza. Além disso, ele irá sugerir sempre o menor tamanho possível, cuidado!

Deletem as colunas que são oriundas da operação de conversão e clique em Ok para a tela de configuração inicial. Uma vez nela, clique em mappings e verifique se as configurações estão ok.

Após, teremos nosso connection manager concluído e podemos clicar em ok.

Execute a task e veja o resultado.

E aqui, o arquivo criado no diretório que eu escolhi.

TXT COMO FONTE DE DADOS

Criamos nosso arquivo TXT no diretório desejado e agora, vamos para a próxima etapa que consiste na fase de extração dos dados deste para inserir em uma tabela.

Crie um novo data flow, renomeie e utilize a task chamada: Flat File Source.

Com a task criada, hora de criar a conexão com o diretório e buscar o arquivo.

Perceba que como estamos no mesmo projeto e no mesmo pacote, o diretório criado na conexão do processo anterior já está configurado, bastando apenas verificar as colunas.

Com a task devidamente configurada no data flow, basta criar uma tarefa de “Ole DB destination”  e conectar o banco de destino usado para este exemplo.

NOTA: Como os arquivos já estão padronizados para o SSIS e é um exemplo, não se faz necessário a tarefa de conversão.

Na janela de connection manager da tarefa “OLE DB Destination” crie a conexão com o banco e crie a tabela para este insert.

Ao criar a tabela, não esqueça de conferir na aba mappings se as colunas estão correspondendo umas às outras.

Ao final, execute a task 

E vamos conferir no banco de dados!

Um fato interessante: execute o comando truncate table e o nome da sua tabela, una as duas tasks de control flow criadas no pacote e execute o pacote inteiro!

Se na criação da task “flat file source” marcou a caixa de diálogo “overwrite~” sempre que este pacote for executado, o SSIS irá sobrescrever o arquivo sem criar duplicidade, diferente do excel.

Assim sendo, termino este post em que mostro como pesquisar dados com comando SQL(revisão), criar um arquivo flat e utilizar este mesmo como fonte de dados.

Além disso, vimos a sua grande vantagem sobre os arquivos de Excel que é o fato dele sempre sobrescrever um arquivo antigo sem repetir dados e as diferentes formas que possuímos para delimitar um arquivo.

OLÁ!

Se chegou até aqui e gostou do pequeno tutorial, deixe seu like e compartilhe. Ajude o blog a alcançar mais pessoas!

Caso queira receber em primeira mão esse tipo de conteúdo, se inscreva abaixo:

SIGA NAS REDES SOCIAIS!

Espero que tenham gostado, Saúde!!