Trabalhando com o componente “Merge Join” e “Sort” – SSIS

 

Nesse post vou mostrar-lhe como usar a transformação merge join para unir duas tabelas e cujo destino é uma unica tabela. Você também pode usar a transformação Merge Join para juntar dados a partir de planilhas Excel, arquivos de texto ou valores separados por vírgulas (CSV), tabelas de banco de dados ou de outras fontes.

O componente Merge Join funciona de forma semelhante ao join utilizado em T-SQL

Nessa demonstração eu utilizei duas tabelas do banco de dados AdventureWorks 2012,  tabelas “Customer” e “Territory”.

Abra o Visual Studio e crie um novo projeto: File -> New -> Project -> “Integration Services Project..Business Intelligence

Screenshot_1

1 – Arraste o componente Data Flow Task pois dentro dele iremos adicionar as fontes de transformação. Dê um clique duplo no componente e uma nova aba irá aparecer.

Screenshot_1

2 – Agora dentro dessa aba do Data Flow iremos utilizar os componentes abaixo para realizarmos nossa atividade. Arraste os componentes para área conforme imagem abaixo.

Screenshot_6

3 – Dê um clique duplo no componente “Ole db Destination” e depois crie uma nova conexão no botão “New” nesse caso selecionei o banco de dados AdventureWorks2012 e logo abaixo escolhi tabela que irei usar “dbo.customer”

Screenshot_4

4 – O mesmo procedimento realizado com o outro componente “Ole db Source 1” no entanto selecionei ou tabela “dbo.territory”

Screenshot_6

5 – Agora precisamos selecionar as colunas que deseja recuperar.  se há colunas que você não deseja incluir, você deve desmarcar as colunas do “Available External Columns” na aba Columns

Screenshot_5

6 – O mesmo procedimento anterior na outra conexão.

Screenshot_7

7 – ligue os componentes “Ole db Source” nos componentes “sort” 

Screenshot_2

Dê um clique duplo no componente “Sort” para abrir o “Sort Transformation Editor”. É preciso selecionar pelo menos uma coluna para a classificação. Selecionei o TerritoryID, isso significa que os dados serão classificados com base nessa coluna.

Screenshot_9

8 – O mesmo procedimento anterior realizado no outro componente “Sort”

Screenshot_8

9 – Quando conectarmos os componentes, uma caixa de diálogo “Input Output Selection” aparecerá, serão exibidas duas opções: Output Input.

A seleção de saída “Output” carrega por default uma saída do tipo “OLE DB Source Output”, então deixemos essa opção selecionada. No campo Input, selecionaremos a opção “Merge Join Left Input”

Screenshot_3

Quando conectarmos o segundo componente (Sort) ao componente “Merge Join”, a caixa de diálogo “Input Output Selection” não aparecerá, pois a opção de “Input” haverá somente uma opção, a “Merge Join Right Input” que ficará automaticamente para o segundo.

10 – Agora que temos nossos dados de origem ordenados e as fontes de dados conectados a transformação Merge Join. Clique duas vezes para abrir o “Merge Join Transformation Editor” 

Repare que as colunas selecionadas são incluídas nas janelas mais baixas. Você pode fornecer um alias de saída de cada coluna, se quiser.

Uma vez que você configurou o Merge Join, clique em “Ok” para fechar a caixa de diálogo. Agora você está pronto para adicionar o seu destino de dados para o fluxo de dados.

Screenshot_24

Observe que a sua primeira configuração no “Merge Join Transformation Editor” é o Join Type lista um drop-down. A partir desta lista, você pode selecionar um dos tipos seguintes de JOIN:

  • Left outer join: Inclui todas as linhas da tabela da esquerda, mas apenas linhas correspondentes da tabela direita. Você pode usar o Swap Inputs opção de mudar quem será a tabela da esquerda e quem da direita, 
  • Inner join: Inclui linhas somente quando os dados jogos entre as duas tabelas.
  • Full outer join: Inclui todas as linhas de ambas as tabelas.

11 – O último passo na criação desse fluxo de dados é o componente Ole Db Destination para que possamos salvar os nossos dados mesclados para uma nova tabela.  Dê dois cliques no destino para abrir o “Ole Db Destination Editor”.

Screenshot_1

12 – Selecione “Table or view” se já não estiver selecionado. Em seguida, vamos criar uma tabela de destino para manter o nosso conjunto de resultados. Clique no New botão ao lado do “Name of the table or the view”  uma caixa de diálogo é aberta. Screenshot_16

13 – Nele uma definição de tabela é gerada automaticamente que reflete as colunas passadas no fluxo de dados. Você pode renomear a tabela se desejar.

Screenshot_17

14 – Clique em Ok para fechar a caixa de diálogo. Quando você volta para o Ole Db Destination Editor, vá para a página  Mappings para garantir que as colunas estão devidamente mapeada. 

Screenshot_20

15 – Clique em Ok para fechar o “Ole Db Destination Editor”. Temos agora configurado um destino, o que resta a fazer agora é executá-lo em “Start” e ver o resultado. (Renomeei o nome dos componentes)

final

16 – Resultado da tabela criada no banco de dados “AprendendoIntegrationServices” com as devidas colunas.

Screenshot_23

17 – Resultado do join das tabelas “customer” e “territory”

Screenshot_5

É isso então, valeu pela visita !!
Espero ajudar.

Share on FacebookTweet about this on TwitterShare on LinkedIn


Escreva um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *