Olá pessoal!
Neste post vou falar um pouco sobre SQL Server Data Tools no SQL Server 2012.
A partir da versão do SQL Server 2012 não encontramos mais o SQL Server Business Intelligence Development Studio para desenvolvimento de projetos SSIS, SSAS e SSRS. Nesta nova versão passaremos a utilizar o SQL Server Data Tools.
Nas versões anteriores o desenvolvimento era realizado nas seguinte forma:
- Enterprise Manager – DTS – Data Transformation Services
SQL Server 7.0 e 2000 - Visual Studio
SQL Server 2005, 2008, 2008 R2
No decorrer deste post vamos utilizar os serguintes componentes:
- Data Flow Task
Referência: http://technet.microsoft.com/pt-br/library/ms141122.aspx - Source Assistant
Referência: http://technet.microsoft.com/pt-br/library/ff929138.aspx - Destination Assistant
Referência: http://technet.microsoft.com/pt-br/library/ff929116.aspx - Sort
Referência: http://technet.microsoft.com/pt-br/library/ms140182.aspx - Merge Join
Referência: http://technet.microsoft.com/pt-br/library/ms141775.aspx - Conditional Split
Referência: http://technet.microsoft.com/pt-br/library/ms137886.aspx - Recordset Destination
Referência: http://technet.microsoft.com/pt-br/library/cc879316.aspx - Script Task (c#)
Referência: http://technet.microsoft.com/pt-br/library/ms141752.aspx
*** No final do post consta um vídeo demonstrando o funcionamento.
Vamos para atividade:
- Abrir SQL Server Data Tools:
- Clicar em FIle > New > Project;
- Criar projeto;
1 – Integration Services Project
2 – Nome do projeto
3 – Local onde será salvo o projeto
4 – Nome da solução
5 – Clicar em Ok
- Projeto após a criação;Com o projeto criado podemos observar cinco áreas muito importantes .
– SSIS Toolbox
– Área de Design
– Connection Managers
– Variables
– Solution Explorer
Cenário: Vamos importar dos dados de uma arquivo texto, validar a existência dos dados, registros que existem no banco de dados serão atualizados e registros que não constam na base de dados serão incluídos.
- Primeiro componente que iremos utilizar será o Data Flow Task;
Neste componente colocaremos todo o nosso fluxo de integração. Arraste o componente Data Flow Task para área de Design.Os componentes utilizado podem ser renomeados conforme a necessidade da sua aplicação. Nesta demonstração não vou renomear nenhum componente para que fique fácil identificar o componente que vou estar utilizando.*** observe que quando estamos na área de Control Flow temos alguns componentes específicos desta área de Control Flow no SSIS Toolbox. Quando passarmos para área de Data Flow aparecerão outros componentes.
- Dê um duplo clique sobre o componente Data Flow Task para ir para área de Design do componente;*** Observe no SSIS Toolbox os componentes.
- Dê um duplo sobre Source Assistant;
- Selecione 1- Flat File , 2- New e clique em Ok;
- Selecione o arquivo, formato e delimitador;
- Clique em Column para visualizar as colunas e clique em Ok;
- Dê um duplo clique novamente em Source Assistant;
- Selecione 1 – SQL Server, 2 – New e clique em 3 – Ok;
- Informe a instância, tipo de autenticação, selecione o banco de dados;
- Teste a conexão e clique em Ok;
- Na área de Design aparecerá co componente OLE DB Source;Observe que o componente está sinalizando erro.
- Dê um duplo clique sobre o componente OLE DB Source e selecione a tabela;
- Verifique as colunas e clique em Ok;
- A sinalização de erro não aparece mais;
- Após as configurações das origens dos dados, podemos observar as conexões configuradas.
- Vamos adicionar dois componentes Sort;
- Selecione os componentes Flat File e Ole DB. Um por vez e ligue o fluxo Azul (sucesso) com o componente Sort.
- Dê um duplo clique sobre os componentes Sort e selecione a coluna ID e clique em Ok;
- Após a configuração do Sort;
- Incluir o componente de Merge Join;
- Selecionar o Fluxo do Sort 1 e ligar ao Merge Join;Aparecerá a janela Input Output Selection.
- Selecione Merge Join Left Input e clique em Ok;
- Ligue o outro componente Sort ao Merge Join;
- Dê um duplo clique no componente Merge Join, realize as configurações abaixo e clique em Ok;
- Adicione o componente Conditional Split e ligue o componente Merge Join ao Conditional Split;
- Vamos verificar as inclusões e atualizações;
Condições: se o retorno da coluna ID_DB for nulo, indica que é um novo registro e se id for diferente de nulo será uma atualização.
- Próxima etapa será criar uma variável do tipo objetos para receber as informações dos dados que devem ser atualizados;Na aba de variáveis clique no ícone para inclusão.
- Com o retorno do componente de condição o que for inclusão vamos utilizar o Destination Assistant.Dê um duplo clique sobre Destination Assistant;
Selecionar a conexão já criada e clique em Ok;
- Será criado na área de Design OLE DB Destination;
- Ligue o Conditional Split ao OLE DB Destination, selecione o output “NOVO” (registros novos) e clique em Ok;
- Selecione a tabela de destino;
- Verifique o mapeamento das colunas e clique em Ok;
- Após a configuração a área de Design tem que estar da seguinte forma:
- Agora a próxima etapa será tratar as atualizações. Vamos adicionar um Recordset Destination;
- Ligue o Conditional Split ao Recordset Destination, selecione o output “Atualizacao” e clique em Ok;
- Após a associação dos componentes;
- Dê um duplo clique sobre o Recordset Destination, selecione a variável que criamos anteriormente;
Selecione as colunas que vamos utilizar nas atualizações e clique em Ok;
- Após as configurações;
- Retorne a aba de Control Flow e adicione o componente Script Task;
- Ligue o Data Flow Task ao Script Task, dê um duplo clique sobre o Script Task, selecione a linguagem C#, informe a variável que carregamos lá no Recordset Destination e clique em Edit Script;
- Ao clicar em Edit Script abrirá o Visual Studio para que seja feito o desenvolvimento em C#;
- No C# podemos utilizar os Namespaces do framework .NET. Neste exemplo estarei usando o namespace System.Data.SQLClient para realizar as atualizações e o namespace Oleddb.Data.Oledb para ler a variável com os dados.Poderia utilizar a mesma conexão já configurada na Package e um único namespace para fazer tudo, mas é ideia é mostrar que podemos utilizar outros componentes.
- Abaixo script capturando as informações da variável e atualizando os registros no banco de dados;
Salve o desenvolvimento e feche o Visual Studio e clique em Ok para fechar o Script Task.
- Área de Design estará da seguinte forma;
Abaixo vídeo demonstrando o funcionamento:
Até mais!!!