Usando o componente Unpivot no SSIS

Hoje vamos ver um exemplo de como usar o componente UNPIVOT no SSIS. Mas o que é UNPIVOT? O UNPIVOT é utilizado para transformar colunas em linhas, o processo inverso do PIVOT que transforma linhas em colunas. Imagine o seguinte cenário, você está trabalhando com um arquivo texto onde cada linha possui o código do cliente e três colunas de telefone (residencial, comercial e celular).

unpivot_0

Você deve carregar esses dados em uma tabela no banco de dados que possui a seguinte estrutura: código do cliente, tipo do telefone (residencial, comercial ou celular) e o número do telefone. Veja que enquanto no arquivo texto temos três telefones por linha para cada cliente, no banco de dados temos um telefone por linha para cada cliente com o tipo do telefone. Para resolver essa situação, vamos transformar esses dados do arquivo texto utilizando o componente UNPIVOT, vamos lá…

Abra o SQL Server Data Tools e crie um novo projeto do SSIS. Adicione no projeto a tarefa Data Flow Task e clique duas vezes (editar) para definir o fluxo.

unpivot_1

Agora vamos usar o componente Flat File Source para ler nosso arquivo texto. Adicione o componente no projeto, crie uma nova conexão para o arquivo (Flat File Connection Manager) e você terá algo assim:

unpivot_2

Veja que temos quatro colunas, uma com o código do cliente e outras três com o telefone, sendo cada coluna um tipo de telefone. Adicione no projeto o componente Unpivot e conecte o componente Flat File Source com ele. Clique duas vezes no componente para editar.

Vamos selecionar as colunas que vamos transformar em linha, no caso as colunas “TEL_RES”, “TEL_COM” e “TEL_CEL”. Agora vamos definir em Destination Column o nome da nova coluna que receberá esses dados, nesse caso será “TELEFONE”.

Você pode definir um novo valor para cada coluna que se tornará linha ou deixar o nome original da coluna, nesse caso vamos alterar o valor em Pivot Key Value para cada coluna com os tipos “RESIDENCIAL”, “COMERCIAL” e “CELULAR”. Agora com os novos valores vamos definir em Pivot Key Value Column Name o nome da nova coluna que irá representar o tipo do telefone, nesse caso com o nome “TIPO”.

unpivot_3

Tudo pronto, vamos adicionar no projeto o componente OLE DB Destination conectar o componente Unpivot com ele e definir a conexão com o banco de dados SQL Server e a tabela que receberá esses dados, logo após vamos definir o mapeamento das colunas conforme abaixo.

unpivot_4

Execute o projeto.

unpivot_5

Agora o resultado da transformação.

unpivot_6

Até a próxima…

Um comentário sobre “Usando o componente Unpivot no SSIS

Deixe um comentário...

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s