Introdução

A quantidade de dados produzida diariamente é imensa e continua crescendo. O maior desafio das empresas e órgãos publicos é conseguir ter esses dados disponíveis para utilização de maneira integrada, enriquecida e que possam extrair valor deles. Isso só é possivel graças ao que chamamos de ETL – Extract, Transform and Load.
É sobre isso que iremos tratar nesse texto e o foco dele é para quem ainda não conhece, ou conhece pouco ETL.

O que é ETL?

Quando começamos a adentrar no mundo dos dados é comum ouvirmos ou lermos alguns termos como, data warehouse, business intelligence, data mart, ciência de dados, olap e assim por diante. Uma das siglas que sempre aparece é o ETL, nosso tema de hoje.

Como falamos acima, ETL é o processo de extrair dados de diversas fontes não importando seu formato, transforma-los, limpa-los e enriquece-los e por fim carrega-los em um destino, geralmente um data warehouse ou data mart.
Os processos de ETL também permitem carregar os data lakes.

Abaixo vocês podem ver um desenho simplificado de um processo de ETL.

Então vamos lá.
Irei explicar agora o que significa cada letra da sigla.

Extract

Em tradução livre, nada mais é do que a extração dos dados das fontes que serão utilizadas segundo as necessidades do projeto.
Essas fontes podem ser com dados estruturados ou não estruturados e virem de aplicações, bancos de dados, arquivos texto, planilhas, redes sociais, sensores e etc.

A extração pode ser dividida em dois tipos:

a) extração total
b) extração parcial

Transform

Nessa etapa é feita a transformação dos dados, que consiste em filtrar, limpar, integrar e enriquecer os dados.
Também podem ocorrer processos de padronização de formatos dos dados, complemento/correção de informações que não estão completas e vários outros tipos de trabalho para que os dados possam ficar bem preparados para o usuário final utilizá-los.

Load

Após a transformação os dados estarão prontos para serem carregados no seu destino.
Em sua maioria, mas não obrigatoriamente, os destinos são bancos de dados que possuem uma modelagem específica para receberem cargas de grandes volumes de dados e otimizados para consultas. Esses bancos são chamados de data warehouse ou data mart.
Os dados após carregados são utilizados para processos de analytics, reporting, machine learning ou inteligência artificial.

Onde usar ETL?

O processo de ETL pode ser utilizado em várias frentes e projetos.
Vamos listar alguns para que vocês possam ter a idéia melhor sobre isso.

Data Warehousing

Esse é o tipo de uso mais comum e onde começou a difusão das ferramentas de ETL.
Muitas empresas e órgãos públicos utilizam ferramentas ou técnicas de ETL para extrair, transformar e carregar os dados em seus data warehouses com o objetivo de te-los preparados para tomarem melhores decisões.
Quando os dados estão disponíveis no data warehouse permite que as equipes de analytics possam gerar os relatórios, gráficos e dashboards para disponibilizarem aos usuários de negócio tomarem suas decisões.
O data warehousing ainda desempenha um papel importante dentro das organizações centradas em dados.

Machine Learning e Inteligência Artificial

O combustível dessas tecnologias são os dados e como falamos acima crescem exponencialmente.
No passado a armazenagem era um ponto de dor, porém com o surgimento do armazenamento em nuvem, juntando com o poder de processamento facilita a implementação e uso dessas novas tecnologias.
As ferramentas de ETL são fundamentais para carregar os dados na nuvem e se bem utilizadas, podem gerar grande economia levando somente os dados necessários.
Enfim, para que machine learning e inteligência artificial possam acontecer, é necessário que os dados sejam disponibilizados devidamente tratados, integrados e enriquecidos para serem utilizados nesses processos.

Migração de dados

Migração é o processo de levar os dados de um sistema/local para outro, quando há alguma mudança de storage, banco de dados ou de aplicação. As ferramentas de ETL tem importante papel aqui pois podem migrar os dados mais rapidamente, corrigir erros e também higienizar a base de dados, facilitando o trabalho da equipe de migração.
Isso também pode gerar uma grande economia de recursos financeiros.

Porque usar ETL?

Há inúmeros motivos para utilizar ferramentas de ETL.
Parece meio óbvio, mas entre os principais pontos está a rapidez para extrair, transformar, enriquecer e carregar dados de diversas fontes e levar para um destino. Quem já escreveu muitas linhas de código para fazer isso irá entender bem o que estou falando.
Em sua maioria essas ferramentas tem a interface de desenvolvimento gráfica e muitos objetos prontos para realizar as funções mais utilizadas nesses processos, por isso aceleram o desenvolvimento.

Também gostaria de ressaltar a infinidade de conectores para praticamente todos os tipos de plataforma de dados, estarem prontos para serem utilizados. Por exemplo, você pode extrair e carregar dados de DB2, Oracle, MSSQL Server, Postgres, MySQL, MongoDB, Cloudera, Google Cloud, AWS, Azure, midias sociais e assim por diante.
Outro ponto importante é que elas, em sua maioria, possuem um servidor para processar essa quantidade enorme de dados e isso irá acelerar o processo de carga permitindo assim disponibilizar os dados mais rapidamente para os usuários de negócios fazerem suas análises.
E quem tem os dados mais rapido nas mãos, pode ter vantagem competitiva.

ETL pipeline

Lembra que falamos acima em processos de ETL?
Pois então, os pipelines de dados ou pipelines de ETL, são o conjunto de objetos que compõem um processo de ETL como a imagem abaixo.

Pipeline de ETL com Pentaho
Exemplo de pipeline de ETL com Pentaho

Os pipelines de ETL são responsáveis por conectar nos sistemas de origem, sejam legados ou não e executados continuamente de acordo com a periodicidade definida pelos requisitos de negócio, de maneira que os dados estejam sempre atualizados, tratados e prontos para o uso.
Com uma infinidade de conectores para bancos de dados estruturados ou não, várias transformações prontas e facilidade para construir esses processos, os pipelines são importantes para o sucesso de uma implementação de ETL.

O que considerar ao me preparar para usar uma ferramenta de ETL?

Quando decidimos trabalhar com ETL, nos vem a mente qual seria a melhor ferramenta para aprendermos. Esse pode ser o pontapé inicial para uma transição ou uma nova carreira. Eu sempre costumo brincar que a melhor ferrramenta é aquela que conhecemos ou aprendemos rápido.

Vamos fazer um apanhado geral do que eu levaria em consideração se estivesse começando hoje.
Acredito que o devemos começar fazendo uma análise do mercado buscando informações sobre quais ferramentas são mais utilizadas e quais estão demandando mais profissionais. Parece obvio, mas devemos começar por ele.
Isso irá dar uma filtrada na quantidade de ferramentas que temos disponiveis e não se perder num mar de opções.

Depois ver o poder de ETL da plataforma, ou seja, quantidade de conectores, se é necessário escrever código, se tem ambiente de desenvolvimento gráfico, se tem escalabilidade, o quão abrangente ela é em relação a engenharia de dados e quanto tempo está no mercado.

Também iria conversar com amigos ou formadores de opinião sobre o assunto e as ferramentas.
Usaria a internet a meu favor e assistiria alguns videos, leria alguns artigos e conversaria com formadores de opinião sobre as plataformas.
Hoje em dia está muito tranquilo de chamar alguem numa rede social e trocar uma idéia sobre esse mercado, serviços e produtos.

E por fim, não se limitando somente a esses pontos, ver se há facilidade para aprender essa ferramenta, ou seja, se tem bastante material disponivel para que possamos utilizar, se há versão trial ou versão free para testar e cursos disponíveis também.
Os cursos podem ser disponibilizados pelo fabricante, comunidade ou por experts que oferecem esse serviço.

Acredito que se eu fosse começar hoje nessa área iria seguir esses passos e chegaria a uma short list de onde começar. Espero que isso te proporcione um norte de por onde começar.

Algumas ferramentas de ETL para vocês olharem

Para finalizar o nosso artigo, vou colocar aqui algumas sugestões (com os links dos sites) de boas ferramentas de ETL para que vocês possam dar uma olhadinha antes de começarem a estudar. Vamos lá.

1) Pentaho – Ferramenta adquirida pela Hitachi Vantara em 2016, tem opção de download da versão trial e também tem versão open source.

2) SAP Data Services – Da fabricante alemã SAP. Não possui versão open source e não localizei opção de versão trial.

3) Oracle Data Integration – Da fabricante americana Oracle. Possui opção para download de versão trial

4) Infosphere Information Server – Da fabricante americana IBM. Não localizei opção para download de versão trial.

5) Powercenter – Da fabricante americana Informatica. Não encontrei opção para download de versão trial.

6) Talend – Da fabricante americada de mesmo nome. Possui opção para download de versão trial.

Considerações finais

E assim chegamos ao final de mais um texto onde tentei trazer informações detalhadas para vocês.
Espero que com isso, você consiga ter uma visão melhor do que é ETL, qual sua utilidade e principalmente se trabalhar com essa tecnologia é para você.
Tentarei escrever com mais frequência sobre os assuntos ligados a esse mundo de dados. Fiquem atentos.
Até o próximo!