Abordaremos de forma resumida a arquitetura da ferramenta SQL Server Integration Service (SSIS), uma evolução do antigo dts da versão 2000. Essa solução hoje não se encontra na quadro de ferramentas líderes do mercado como o DataStage da IBM e o Power Center da Informática, porém vem se popularizando nos últimos anos entres as corporações por ser de fácil acesso, intuitivo e de baixo custo.
A imagem abaixo mostra o conhecido quadrante mágico de Gartner, que apresenta como se encontram as ferramentas de ETLs no mercado:
Observando o quadrante challengers, notamos que a ferramenta da Microsoft não está no topo das ferramentas lideres do mercado, porém está em constante ascensão.
Ao instalar a versão completa do SQL Server, estará disponível o Business Intelligence Development Studio (BIDS) ou Visual Data Tools, que é a ferramenta onde o desenvolvedor de ETL construirá as cargas de ETL. Existem versões do SSIS para 32 bits e 64 bits e há algumas limitações para o funcionamento de alguns controles que apenas são executados em servidores de 32 ou de 64 bits.
PRINCIPAIS COMPONENTES DO SSIS
Na imagem a seguir, é possível observar como funciona em uma visão macro a arquitetura do SSIS:
Disponível através do BIDS corresponde a toda ferramenta gráfica onde os pacotes são desenvolvidos.
Mecanismos de tempo de execução
Compõem recursos como execução de pacotes, pontos de interrupção, conexões e transações.
Tarefas e outros executáveis
Containers e todos outros controles adicionados na área do Control Flow (área principal do fluxo completo do ETL no SSIS), manipuladores de eventos.
Mecanismos de Fluxo de Dados e componentes de Fluxo de Dados
Também conhecido como Pipeline, possuem recursos como buffer em memória que extraem dados de arquivos e/ou banco de dados relacionais. Também gerenciam e transformam esses dados e carregam para diferentes destinos tornando-os disponíveis em outros processos.
O modo Designer do Integration Service, é uma ferramenta gráfica onde o desenvolvedor adiciona controles visuais para dentro da área chamada de Control Flow (Controle de Fluxo). No Controle de Fluxo, podem-se realizar diversas tarefas como a limpeza de tabelas, atribuição de valores a variáveis, envio de e-mail, interação com Cubos do Analysis Services, chamadas a Web Services, envio e recebimento de arquivos via FTP, além de operações com arquivos do Windows, como copiar, deletar, renomear e criar novos diretórios. Há uma variedade de tarefas disponíveis com suporte a controles de fácil configuração dentro da tela de Designer do SSIS:
Visão geral do Integration Services – SSIS
Na imagem acima se encontra na área central o Fluxo de Controle ou Control Flow onde adicionaremos controles de Tarefas simples, a partir da Toolbox à esquerda, os controles serão arrastados para a área do Control Flow.
Na parte inferior se tem os Gerenciadores de Conexões ou Connection Manager que é o local onde vamos configurar todas as conexões, dentro do Integration Services. Existem diversos drivers de conexões para diferentes plataformas como: banco de dados Oracle, Teradata, MySql, Access, como também provider para conexão com planilhas excel e arquivos Texto.
Para quem já desenvolveu no ambiente .NET terá uma maior facilidade em se familiarizar com a forma de criar cargas dentro do SSIS. Assim como em outros tipos de ferramentas .NET, temos na parte esquerda a Toolbox, é a partir dela que escolheremos os controles desejados, que serão arrastados para área do Control Flow, é dessa forma que criaremos as instâncias dos controles dentro do Projeto.
Todos os controles da Toolbox possuem características parecidas que são configuráveis de forma visual, porém existe um controle especial que está organizado para realizar a carga do ETL propriamente dita, esse componente chama-se Data Flow, e é dentro dele que iremos construir o Fluxo dos dados (Leitura da origem, transformação e carregamento para o target final)
Ao dar um duplo clique no Data Flow, abriremos um área exclusiva onde agora os controles disponíveis na toolbox serão diferentes, comparando com o conceito de ETL (Extract Transformation Load), eles estão separados em três grupos de componentes organizados em: