É um software de integração dentro do Visual Studio que permite corrigir, integrar, transformar e mover dados de diversas fontes para uma única base facilitando análise, predição e entendimento dos acontecimentos de uma organização.

O SSIS (Integration Services) permite conexão com diversas plataformas e bancos de dados podendo tanto exportar quanto importar  para diversos fornecedores, on-premisses e cloud, nos mais variados formatos, desde que estejam de acordo com a tabela destino.

Abaixo, a tela inicial do SSIS onde vamos criar o primeiro projeto de E.T.L. Basta digitar na barra de pesquisa o nome “integration services” e escolher a opção “integration services project”.

O interessante desta ferramenta é sua variedade de conexão, tendo inclusive Hadoop e diversos outros drivers de conexão como ADO, ADO.NET, ODBC etc.

Componentes do SSIS.

Abaixo, vamos entender quais são os principais componentes que o SSIS possui e como eles interagem entre si. Cada componente possui uma função base  e podemos dividir entre 3 grandes áreas que se completam e fazem o processo de ETL acontecer.

Abaixo, os dois primeiros grandes processos do SSIS: Package e Control Flow, circulado em vermelho e preto. 

Apenas para entendimento de hierarquia.

Nota: A medida que formos avançando, vamos ver que é possível agrupar packages dentro de packages para criar um fluxo mais automatizado. 

Package

É o que agrupa todas as tarefas do SSIS como control flow, data flow, variáveis etc. Podemos criar entre as packages fluxos dependentes entre packages que possuem seus próprios controls e data flows interagindo entre si transformando dados e automatizando processos administrativos do banco de dados, inclusive.

Control flow

É o que controla a execução das tasks. Seria a tarefa macro do pacote onde dentro, teríamos as tarefas menores.

Control flow permite criar uma gama de processos que vão desde a transformação simples até auditoria dos dados, passando por tarefas de controle de qualidade, mudanças, envio de emails, backups e outros processos administrativos do banco de dados.

Abaixo, a visão geral das tasks que são do grupo de control flow

Como podemos ver, temos uma grande variedade de  tasks para o grupo de control flow.

Um fato interessante é que no grupo de control flow chamo atenção na imagem, circulado em vermelho, para as tasks de container. Explicando de forma bem simplificada, estas tasks permitem agrupar outras menores aplicando uma sequência lógica ou até mesmo looping para transformação ou qualquer tarefa necessária.

Variáveis e parâmetros

Variáveis

As variáveis assim como no banco de dados são recursos que permitem armazenar um determinado valor ou objeto para ser utilizado em um processo. de atualização ou até mesmo mudança de pacote.

Seu armazenamento de valor costuma se dinâmico e ocorre muito entre os processos de transformação dos pacotes.

Parâmetros

São como as variáveis, mas atuam a nível de pacote passando os dados de um para outro. geralmente de um pacote pai para o pacote filho. O parâmetro filho não pode alterar ou modificar um pacote passado

Sempre pense no pacote do SSIS como um todo. Contendo control flow, data flow, variáveis parâmetros, conexões e etc.

Iremos ver e utilizar variáveis e parâmetros num futuro próximo!

Gerenciador de Conexão

Valor de string que contém o usuário e a senha da conexão com a fonte de dados, caso seja necessário. Cada conexão fica atrelado em um gerenciador.

As  conexões podem ser criadas a nível de projeto ou dentro de uma tarefa em especifica. Quando criamos uma conexão no nível de pacote, somente aquele pacote irá ‘ver’ a conexão ali estabelecida diferente do que ocorre quando temos uma conexão padrão para o projeto.

Veja abaixo alguns tipos de conexão que podemos criar dentro do SSIS. Imagem resumida.

Quando for criar uma conexão, basta clicar com o botão direito e ‘new connection manager’. 

Dentro do gerenciador de conexão temos:

  • Fonte de dados – local onde os dados são extraídos.
  • Destino – local onde os dados serão carregados

Cargas no D.W

Há duas formas de se executar uma carga no D.W:

  • Completa
    • ocorre apenas uma vez, na criação do d.w
    • pode ser feito como forma de teste de carga ou restauração de um banco
    • se houver grandes alterações no banco ou nos schemas das tabelas e será necessário um novo processo de ETL com uma nova carga completa
  • Incremental
    • é o processo padrão após a carga completa do d.w
    • passa a carregar apenas os dados que foram modificados após a primeira carga
    • a frequência da carga dependerá da volumetria de dados, recursos, capacidade etc.
    • a carga incremental utiliza muito os recursos de SCD para controle de atualização.

Sempre que houver uma carga no D.W controla por algum tipo de SCD que na tabela fato está constando a referência e aquele registro ainda não foi inserido na dimensão, temos um modelo de SCD chamado inferido.

Na foto abaixo, vemos um exemplo básico de como se organiza um fluxo de dados para uma carga em um banco transacional ou um data warehouse.

Os dois últimos apresentam erro pois não possuem uma conexão estabelecida. Reparem que uma mesma task pode ter diversas conexões com diferentes tasks e algumas inclusive, permitem que você carregue os dados em diferentes fontes ao mesmo tempo!

Este foi  um post bem simples que eu quis trazer para vocês para introduzir a ferramenta de ETL SSIS. No post abordo os conceitos de packages e control flow e para o próximo, vamos falar sobre o último componente que é o data flow!

Também tentarei mostrar um exemplo prático de como funciona um fluxo de dados desde sua importação até o destino final!

Espero que tenham gostado, saúde!