images

Conceitos Processo ETL

O ETL (Extract, Transform e Load) é um processo para extrair dados de um sistema de origem, sendo esses dados processados, modificados, e posteriormente inseridos numa base de dados esta etapa é uma das fases mais críticas de um Data Warehouse, pois envolve a fase de movimentação dos dados. A mesma se dá basicamente em três passos, extração, transformação e carga dos dados, esses passos são os mais trabalhosos, complexos e também muito detalhados num Data Warehouse, embora tenhamos várias ferramentas que nos auxiliam na execução desse trabalho.

A figura 1 descreve de forma geral o processo de ETL. A camada inferior representa o armazenamento dos dados que são utilizados em todo o processo. No lado esquerdo pode-se observar os dados “originais” provenientes, na maioria dos casos, de Banco de Dados ou, então, de ficheiros com formatos heterogéneos, por exemplo de texto. Os dados provenientes destas fontes são obtidos, por rotinas de extração que fornecem informação igual ou modificada, relativamente à fonte de dados original. Posteriormente, esses dados são propagados para a Data Staging Area (DSA) onde são transformados e limpos antes de serem carregados para o Data Warehouse. O Data Warehouse é representado na parte direita da figura 1 e tem como objetivo o armazenamento dos dados. O carregamento dos dados no Data Warehouse, é realizado através das atividades de carga representadas na parte superior direita da figura 1.

clip_image002

Figura 1: Processo ETL

O primeiro passo a ser tomado no processo de ETL é simplesmente a definição das fontes de dados. As origens podem ser várias e também em diferentes formatos, onde poderemos encontrar desde os sistemas transacionais das empresas até planilhas, arquivos textos, arquivos do tipo DBF, etc.

Definidas as fontes, partimos para o segundo passo que consiste em transformar e limpar esses dados. Além da limpeza, temos de fazer na maioria das vezes uma transformação, pois os dados provêm de vários sistemas, e por isso, geralmente uma mesma informação tem diferentes formatos. Quando levamos esses dados para o Data Warehouse, deve-se ter uma padronização, ou seja, quando o usuário for consultar o Data Warehouse, ele não pode ver informações iguais em formatos diferentes, então quando fazemos o processo de ETL, transformamos esses dados e deixamos num formato uniforme sugerido pelo próprio usuário.

A seguir são apresentados alguns dos fatores que devem ser analisados antes de começar a fase de extração dos dados:

  • A extração de dados do ambiente transacional para o ambiente de Data Warehouse demanda uma mudança na tecnologia. Os dados são transferidos de bancos de dados hierárquicos, para um Data Warehouse;
  • A seleção de dados do ambiente transacional pode ser muito complexa, pois muitas vezes é necessário selecionar vários campos para compor um único campo no Data Warehouse;
  • Outro fator que deve ser levado em conta é que dificilmente há o modelo de dados dos sistemas antigos, e se existem não estão documentados;
  • Os dados são reformatados. Por exemplo: um campo data do sistema operacional do tipo DD/MM/AAAA pode ser passado para o outro sistema do tipo ano e mês como AAAA/MM;
  • Quando há vários arquivos de entrada, a escolha das chaves deve ser feita antes que os arquivos sejam intercalados. Isso significa que se diferentes estruturas de chaves são usados nos diferentes arquivos de entrada, então deve-se optar por apenas uma dessas estruturas;
  • Os arquivos devem ser gerados obedecendo a mesma ordem das colunas estipuladas no ambiente de Data Warehouse;
  • Podem haver vários resultados. Dados podem ser produzidos em diferentes níveis de resumo pelo mesmo programa de criação do Data Warehouse;
  • Valores default devem ser fornecidos. As vezes pode existir um campo no Data Warehouse que não possui fonte de dados, então a solução é definir um valor padrão para estes campos.

No mercado existem muitas ferramentas capazes de executar processos de ETL, a tabela 1 apresenta uma visão geral da evolução destas ferramentas.

Ano

Título

Significado

Início de 1990

Codificação manual de ETL

Código personalizados escritos à mão

1993-1997

A primeira geração de ferramentas de ETL

Código baseado em ferramentas ETL

1999-2001

Segunda geração de ferramentas ETL

Código baseado em ferramentas ETL

2003-2010

Ferramentas atuais de ETL

A maioria das ferramentas eficientes

Tabela 1: Gerações de ETL

A seleção de uma ferramenta de ETL adequada é uma decisão muito importante a ser tomada. A ferramenta de ETL opera no núcleo do DW, com a extração de dados de múltiplas fontes e a sua transformação. Estas características tornam-na numa ferramenta acessível para os analistas de sistemas de informação.

Ao contrário de outros componentes de uma arquitetura de Data Warehouse, é muito difícil mudar de uma ferramenta ETL para outra, devido à falta de normas, definições de dados e regras de transformação.

Ao selecionar uma ferramenta de ETL devem ser tomados em consideração os seguintes pontos:

  • Suporte à plataforma: Deve ser independente de plataforma, podendo assim correr em qualquer uma.
  • Tipo de fonte independente: Deve ser capaz de ler diretamente da fonte de dados, independentemente do seu tipo, saber se é uma fonte de RDBMS (Relational Database Management System), ficheiro simples ou um ficheiro XML.
  • Apoio funcional: Deve apoiar na extração de dados de múltiplas fontes, na limpeza de dados, e na transformação, agregação, reorganização e operações de carga.
  • Facilidade de uso: Deve ser facilmente usada pelo utilizador.
  • Paralelismo: Deve apoiar as operações de vários segmentos e execução de código paralelo, internamente, de modo que um determinado processo pode tirar proveito do paralelismo inerente da plataforma que está sendo executada. Também deve suportar a carga e equilíbrio entre os servidores e capacidade de lidar com grandes volumes de dados. Quando confrontados com cargas muito elevadas de trabalho, a ferramenta deve ser capaz de distribuir tarefas entre múltiplos servidores.
  • Apoio ao nível do debugging: Deve apoiar o tempo de execução e a limpeza da lógica de transformação. O utilizador deve ser capaz de ver os dados antes e depois da transformação.
  • Programação: Deve apoiar o agendamento de tarefas ETL aproveitando, assim, melhor o tempo não necessitando de intervenção humana para completar uma tarefa particular. Deve também ter suporte para programação em linha de comandos usando programação externa.
  • Implementação: Deve suportar a capacidade de agrupar os objetos ETL e implementa-los em ambiente de teste ou de produção, sem a intervenção de um administrador de ETL.
  • Reutilização: Deve apoiar a reutilização da lógica de transformação para que o utilizador não precise reescrever, várias vezes, a mesma lógica de transformação outra vez.

Fontes:

http://www.evolve.mb.ca/dw/etlreport.pdf

http://inforum.org.pt/INForum2010/papers/sistemas-inteligentes/Paper080.pdf

http://www.angelicatoffano.pro.br/upload_arquivos/pt/etl.pdf

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s