Trabalhando com o componente "Merge Join" e "Sort" - SSIS - Necti
Posted on 14 de abril de 2017 14 de abril de 2017 by joaovilar.silva
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"
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.
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.
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"
4 – O mesmo procedimento realizado com o outro componente "Ole db Source 1" no entanto selecionei ou tabela "dbo.territory"
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
6 – O mesmo procedimento anterior na outra conexão.
7 – ligue os componentes "Ole db Source" nos componentes "sort"
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.
8 – O mesmo procedimento anterior realizado no outro componente "Sort"
9 – Quando conectarmos os componentes, uma caixa de diálogo "Input Output Selection" aparecerá, serão exibidas duas opções: Output e 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"
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.
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".
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.
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.
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.
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)
16 – Resultado da tabela criada no banco de dados "AprendendoIntegrationServices" com as devidas colunas.
17 – Resultado do join das tabelas "customer" e "territory"
É isso então, valeu pela visita !!
Posted in Business Intelligence e Integration ServicesTagged Backup Banco de dados SQL Server, Integrations Services, SQL Server