ETL – Extrair, Transformar e Carregar

Atualmente nos deparamos com uma base imensa de informações na internet, disponível em várias formas: textos, imagens, gráficos, tabelas, números e outros elementos. Por esse motivo, os sistemas de informação ao redor do mundo devem ser capazes de lidar com esse montante de informações e apresentá-las de forma consolidada e compreensível.
Como isso é possível? Simples, através do processo de ETL!

Introdução

O termo ETL vem do inglês “Extract, Transform, Load” e representa um conjunto de funções para extrair dados de diversos sistemas e armazená-los em uma base principal. Este processo é oriundo da área de Business Intelligence, extremamente útil para a continuidade de negócios das empresas.

A ideia por trás do ETL é coletar dados de diferentes fontes, mas que sejam pertinentes a uma única regra de negócio. Após coletados, os dados sofrem uma transformação para entrarem em um padrão aceitável pelo contêiner ou sistema de destino. Por fim, após tratados, os dados são carregados em Data Warehouses – depósitos de dados que armazenam informações consolidadas. Entre esses três estágios, talvez a transformação seja a fase de maior custo, já que, se o formato dos dados extraídos estiverem muito incompatíveis com a estrutura de armazenamento do Data Warehouse, várias regras de transformação deverão ser aplicadas.

Quando falamos em processos de ETL em grandes empresas, estamos nos referindo à vários Gigabytes ou até Terabytes de informação, processados em curtos períodos de tempo para atualização dos depósitos de dados. Como exemplo, podemos citar sistemas estatísticos, redes sociais e portais governamentais, nos quais aceitam documentos ou dados de uma fonte externa.

O LinkedIn, por exemplo, permite que o usuário se cadastre na rede utilizando o login do Facebook que, obviamente, consta em outra base. Nessa integração, o LinkedIn provavelmente aplica um pequeno processo de ETL para transformar os dados disponíveis no Facebook em informações necessárias para o cadastro. Do mesmo modo, ele também pode descartar informações desnecessárias.

Embora utilizado em grandes mecanismos, o ETL não se restringe somente ao armazenamento de dados em Data Warehouses, mas também em bancos de dados relacionais utilizados por softwares. Nós, desenvolvedores, estamos sujeitos a criar processos de ETL em nossos softwares quando for necessário realizar uma leitura de dados que estão compostos em outros locais, como arquivos de texto, planilhas eletrônicas ou documentos XML.

Exemplo de ETL

Para facilitar a compreensão deste artigo, o código abaixo apresenta um processo básico de ETL ao carregar informações de uma planilha do Excel.
Em primeiro lugar, vale lembrar que é necessário avaliar o volume de dados e definir as classes, ferramentas e recursos necessários para a operação. No exemplo a seguir, imagine que a planilha contenha os campos “Código”, “Nome”, “Sexo” e “Crédito”. Logo, criaremos uma classe:

A declaração das nossas funções serão as seguintes:

Por fim, o código principal que irá executar o processo de ETL será este:

1) Extração

A primeira fase consiste em extrair as informações que estão na planilha. No código abaixo, o método extrai os dados da linha indicada pelo parâmetro e preenche uma instância da classe que criamos:

2) Transformação

Temos um problema! Na planilha, o sexo masculino está armazenado como 1 e o sexo feminino como 2, porém, na nossa base de dados, os armazenamos como ‘M’ e ‘F’, respectivamente. Além disso, é necessário gravar o nome da pessoa em maiúsculas e realizar um acréscimo de 5% no crédito que consta na planilha.

A etapa de transformação atende justamente as situações mencionadas acima. Nós temos um padrão na base de dados e não desejamos que as informações fiquem incompatíveis ou ilegíveis, dificultando a busca de dados ou a geração de relatórios. Portanto, é necessário realizar esse tratamento para que os dados obedeçam aos nossos padrões:

3) Carga

Bem, agora que os dados estão coerentes, finalmente podemos armazená-los no nosso banco de dados:

Apesar de bem simples, o exemplo acima demonstra os passos realizados em um processo de ETL. Acredito que você já tenha desenvolvido algo parecido, não é? A propósito, um exemplo de importação de planilha do Excel pelo Delphi está disponível na página de Exemplos!

 

Agora faça o seguinte: extraia as informações deste artigo, transforme-as conforme sua compreensão e carregue-as na sua mente para nunca mais esquecer o que é ETL! 🙂

Abraço, leitores!


André Celestino