Extract, Transform, Load (ETL)

Extract, Transform, Load (ETL): O que é?

É fato que as informações produzidas por uma empresa, mesmo que uma empresa de TI, estão muito além de um banco dados estruturado e a junção dessas informações de fontes diversas constitui ferramenta auxiliar na tomada de decisões. Um dos processos para unir as informações em uma única fonte, de forma coerente, é o chamado ETL (do inglês Extract, Transform and Load) cujas etapas veremos a seguir.

O ETL geralmente é associado à alimentação de Data Warehouses, mas ele não se limita a isso e deve ser usado como ferramenta de suporte a qualquer extração de dados que necessite algo mais que mover bytes de um canto para outro. Mas vamos às etapas deste processo:

Extract

A primeira etapa do processo consiste em extrair os dados gerados por outros sistemas dentro da empresa, sejam esses sistemas CRMs, ERPs, logs de máquinas, etc. As fontes variam de acordo com o negócio, empresa e principalmente o contexto dos dados a serem armazenados.

Nesta fase, o contato quase direto com outros sistemas da empresa, principalmente com os OLTP (do inglês, On-line Transaction Processing), requer um cuidado a mais com volumes extraídos e horários, de forma a não causar lentidão ou mesmo interrupção de outras operações.

Uma vez que os dados são extraídos de seus sistemas principais, eles devem ser armazenados em um repositório intermediário, ficando disponível para a manipulação da próxima etapa.

ETL: Extract
ETL: Extract

Transform

Uma vez que os dados podem vir de fontes diferentes a segunda etapa consiste em uniformizar tipos e dados, equiparando padrões e eliminando redundâncias, agregando, unindo ou segmentando dados de acordo com a necessidade do negócio.

Lendo à partir do banco intermediário (stagging), o processo deve ficar mais rápido e elimina-se o risco de interferência nos sistemas operacionais da empresa, mas pode se dizer, que é a fase mais delicada do processo pois, apesar de todas as ferramentas para esse processo, neste momento podem estar, inclusive, regras de negócio, ou seja, é onde está a maior possibilidade de erro humano.

ETL: Transform
ETL: Transform

Load

A etapa final é a de armazenamento dos dados transformados, que varia de acordo com a proposta inicial do ETL que pode ser a desde a migração dos dados de um sistema para outro, a disponibilidade para sistemas de BI, relatórios periódicos ou mesmo relatórios pontuais, enfim, a finalidade definirá a estratégia de armazenamento.

Em caso de migração para outros sistemas, novamente é necessário o cuidado para não gerar interrupções ou mesmo demora no tempo de resposta que possam impactar na operação. Existem medidas paliativas, como o bloqueio de outras operações no banco de destino, desligamento temporário de índices, etc., mas tais medidas devem variar de acordo com volume e relevância dos dados em questão.

Outro caso comum do uso de ETL é para armazenamento em Data Warehouses ou Data Marts onde os são armazenados em padrão dimensional, em geral temos um fato (entidade principal, que agrega referência de todas as outras entidades envolvidas) e várias dimensões (entidades relacionadas ao fato).

Como deve ter ficado claro, o ETL consiste em um processo de extração qualificada de dados e apesar da simplicidade do conceito, existem aspectos de devem ser ponderados antes iniciar um processo como por exemplo

ETL: Load
ETL: Load
  • Delimitação clara do contexto – parece óbvio, mas é fundamental que fique muito clara a questão a ser tratada, pois qualquer sistema com um mínimo de complexidade, tem necessidades específicas que exigem a priorização por contexto, de forma que a falta dessa delimitação resulta em desperdício de tempo ou mesmo falta de dados.
  • Viabilidade dos dados: uma vez delimitado o contexto, é necessário saber se as informações desejadas estão de fato disponíveis (lembrando que o ETL pode envolver sistemas externos à empresa) e se essa disponibilidade de dados se  estende ao intervalo de dados desejados (em caso de relatórios retroativos).
  • Segurança: considerando todos os dados de todas as fontes a serem utilizadas no processo é importante ter em mente em alguns casos serão necessárias permissões de acesso que podem onerar o tempo de desenvolvimento do projeto ou até mesmo impedir.
  • Prazo: após determinada a viabilidade dos dados, os níveis de acesso necessários, infraestrutura, ferramentas necessárias e o tempo de desenvolvimento, o prazo para a execução (principalmente se for um relatório pontual) pode não ser compatível com o desejado.

Outras Considerações

Tratando-se de um conceito há tanto utilizado, existem hoje no mercado aplicações em vários níveis de maturidade atendendo a uma gama considerável de necessidades, desde softwares proprietários e visuais, como o Pentaho, a frameworks open source, como o Pygrametl.

Leave a Reply

Your email address will not be published. Required fields are marked *