ENTENDA O PROCESSO DE ETL EM BUSINESS INTELLIGENCE

ENTENDA O PROCESSO DE ETL EM BUSINESS INTELLIGENCE

Em meu último artigo sobre Conceitos Básicos de Business Intelligence (BI), prometi fazer uma publicação para tratar exclusivamente de ETL, o processo mais importante e trabalhoso dentro do mundo de BI. Para se ter uma ideia de sua dimensão, existem diversas ferramentas no mercado focadas somente em cuidar dessa parte devido a sua complexidade.

A sigla significa Extract (extrair), Transform (transformar) e Load (carregar). O nome já explica o seu funcionamento: é necessário extrair informações de uma fonte de dados, fazer transformações quando necessário e, então, realizar o carregamento dos dados transformados no Data Warehouse. Em outras palavras, pode-se dizer que as informações são extraídas do sistema OLTP e carregadas no sistema OLAP.

O ETL sempre busca a automação dos processos. Portanto, uma vez definido, ele será executado sem precisar de nenhuma interação após ser iniciado. Inclusive, os dias e horários de seu funcionamento podem ser programados. Confira as descrições detalhadas de cada etapa abaixo:

Extract (Extração)

É a primeira etapa do processo. Nessa parte, é preciso se conectar a cada fonte de dados (que podem ser muitas e de diferentes tipos) e determinar a melhor forma de extrair essas informações. Essa decisão implica principalmente no processamento dos sistemas em que os insumos são extraídos.

Recomenda-se que as informações extraídas sejam alocadas na Staging Area, um tipo de banco de dados intermediário. Dependendo do projeto, é possível fazer a extração sem contar com a Staging Area. No entanto, sua utilização alivia o sistema de produção. Sem ela, os processos de transformação vão consumir o servidor de produção. Por isso, é comum a Staging Area ficar alocada em outro servidor para não impactar o ambiente principal de trabalho.

Além disso, nem sempre todos os dados do Data Source são necessários. Então, a Staging Area pode lidar somente com o que é relevante, gerando um ganho computacional na hora de realizar as transformações. E como os insumos podem vir de diferentes fontes, as janelas de oportunidade (horários) para a extração podem ser diferentes. Com a Staging Area, é possível alocá-los em seus respectivos horários e depois tratá-los, sem precisar conciliar as janelas de extração.

Transform (Transformação)

É a fase onde as informações são efetivamente tratadas para que possam ser inseridas no Data Warehouse. A etapa de transformação demanda de um grande poder computacional devido aos processos realizados, que são:

Cálculos: criar colunas calculadas que fazem cálculos ou mesclas entre colunas.

Limpeza dos dados: Trocar valores nulos por 0, ponto por virgula, minúsculo para maiúsculo, retirar pontuação, etc.

Padronizar a base: como os dados podem vir de fontes distintas, podem haver divergências na forma como as informações são identificadas. Caso os dados não sejam padronizados, ocorrerão inconsistências na base.

Joins: mesclar informações de tabelas diferentes que possuam uma chave que relacione ambas.

Split/União: para a criação de chaves de relacionamento pode ser necessário o split de informações em uma tabela ou a união de colunas em uma só.

Load (Carga)

Após a extração e transformação dos dados, resta apenas carregá-los no Data Warehouse. Nesse ponto, é preciso definir se as tabelas do Data Warahouse devem ser limpas e carregadas por completo todas as vezes que o processo rodar. Também pode ser possível optar pela função merge, que inclui, transforma e/ou exclui os locais em que os dados sofreram modificações, o que deixa a etapa de carregamento mais rápida. Caso o método merge seja escolhido, a utilização do conceito Slow Changing Dimension pode ser necessária caso o projeto precise de um histórico de atualizações.

O ETL antes do ETL

É importante lembrar que nem sempre teremos uma base OLTP pronta esperando pelo processo. Pelo contrário, tem se tornado cada vez mais comum realizar processos para que as informações sejam levadas para um banco de dados. Isso acontece por causa do crescimento exponencial da era dos dados. As empresas querem/precisam recolher insumos o quanto antes e acabam pulando a etapa da criação de um sistema que vai alimentar um banco de dados OLTP. Ou a informação se encontra em um lugar que a extração deve ser feita de forma diferente.

Confira dois exemplos recorrentes abaixo:

1 - A empresa não priorizou a criação de uma base consistente e diversos arquivos de Excel com as informações necessárias precisam ser levados ao banco para só depois ser realizado o ETL ao criar e preencher o Data Warehouse.

2 – A extração de dados via API, que demanda o auxílio de uma linguagem de programação antes de levar as informações ao banco de dados e executar o ETL.

Isso nem sempre é abordado em artigos relacionados a Business Intelligence, até porque algumas pessoas entendem que isso é trabalho exclusivo do engenheiro de dados. Mas a verdade é que o analista de BI muitas vezes vai enfrentar situações similares, principalmente no mercado brasileiro. Então, aqui vai uma dica: prepare-se para ser um profissional completo e que consiga realizar um projeto de BI do começo ao fim, e isso inclui aprender linguagem de programação (assunto que ficará para um próximo texto).

Obrigado pela atenção! Espero que tenham gostado da leitura.