top of page

Coffee and Tips Newsletter

Inscreva-se na nossa newsletter semanal

Nos vemos em breve!

Criando ETLs simples com Python

  • Foto do escritor: JP
    JP
  • 17 de mar.
  • 4 min de leitura

Atualizado: 1 de abr.


ETL
Criando ETLs simples com Python

ETL de forma simples


ETL é a sigla para Extract, Transform, Load (Extração, Transformação e Carga). Trata-se de um processo fundamental em engenharia de dados, permitindo a coleta de informações de diferentes fontes, sua padronização e armazenamento em um destino adequado, como um banco de dados ou data warehouse.


A ideia deste Post é ensinar sobre como criar ETLs de uma forma simples e prática para aqueles que estão em busca de entender os fundamentos. Para isso, iremos criar um exemplo simples, porém bem claro de como criar um ETL em Python. Mais a frente falamos dos detalhes, por enquanto, vamos entender mais a parte teórica.


As Três Etapas do ETL


  1. Extração (Extract)


    • Coleta dados de diversas fontes: No mundo Big Data existe infinitas possibilidades de extrair dados para extrair insights. Mas como assim? No fim das contas, o que um Engenheiro de Dados faz é tornar possível que através da coleta de Dados, tomadas de decisões sejam feitas. É claro que ele não faz isso sozinho, existe toda uma pipeline de dados, seja arquitetural ou negocial onde Cientista de Dados e Analista de Dados em conjunto utilizando uma plataforma de Dados, tornam os dados coletados em algo de valor.


    Mas onde extrair Dados para fazer este ETL ?

    Internet utilizando algum crawler, arquivos espalhados pelos repositórios da empresa, Banco de Dados, APIs e até o próprio Data Lake, que seria o repositório central de Dados.


  2. Transformação (Transform)


    A transformação deve ser pensada em algo que após acesso aos dados extraídos, você possa enriquece-los, trata-los para evitar duplicação ou remover informações que não sejam necessárias.


  3. Carga (Load)


    Após a extração e tratamento (Transformação) dos Dados, estes devem ser disponibilizados em algum local para que sejam consumidos. O consumo destes dados e decisões que serão tomadas irão agregar valor a todo o trabalho feito anteriormente. Essa carga pode ser feita em um novo arquivo, por exemplo um arquivo CSV, ou em um Banco de Dados, ou no local mais comum em Big Data, em um Data Warehouse.


Por que o ETL é Importante?


  • Melhora a qualidade dos dados: Um dos papeis dos ETLs é prover a qualidade dos dados após a extração da origem, ou seja, é totalmente possível aplicar qualquer tratamento na etapa de transformação.


  • Facilita a análise: Os dados ficam isolados do ambiente produtivo gerando uma facilidade de consumo e desempenho.


  • Automatiza processos: É possível automatizar toda a extração, transformação e load em determinadas horas do dia. Isso facilita acesso aos dados sem necessidade de intervenção manual.


  • Elimina altos workloads em bancos transacionais: É comum nas empresas as áreas estratégicas consumirem dados dos bancos de dados de produção, como por exemplo o principal banco da empresa usada na plataforma, para gerar relatórios e dependendo do volume podendo impactar o desempenho do banco de dados pois muitas vezes não é o melhor cenário para a extração de um volume alto de dados. Dessa forma, são criados ETLs para isolar este consumo para um local mais apropriado, como um Data Warehouse.


Ferramentas Populares de ETL


  • Talend: Solução open-source com diversos conectores.

  • Apache Nifi: Ideal para fluxos de dados em tempo real.

  • Pentaho Data Integration (PDI): Muito usado para ETLs complexos.

  • AWS Glue: Serviço gerenciado da Amazon para ETL em nuvem.

  • Google Dataflow: Focado em processamento de dados escalável.


Exemplos de ETL com Python


A ideia deste exemplo será um passo a passo de como criar um ETL usando Python. Saiba que ETL independe de linguagem de programação, mas é muito comum o uso de Python e SQL por serem linguagens que possuem uma série de vantagens mas que não entraremos nos detalhes neste Post.


Para este exemplo iremos extrair os dados de uma API da Internet de um site chamado https://jsonplaceholder.typicode.com/ onde é fornecido uma API que retorna um JSON.


Essa API retorna 100 registros fictícios relacionados a Posts onde temos o seguinte exemplo de JSON:

{
"userId": 1,
"id": 4,
"title": "eum et est occaecati",
"body": "ullam et saepe reiciendis voluptatem adipisci\nsit amet   		autem assumenda provident rerum culpa\nquis hic commodi nesciunt rem tenetur doloremque ipsam iure\nquis sunt voluptatem rerum illo velit"
}

Após a extração dos Dados, iremos efetuar um tratamento visando enriquecer mais os dados para que sejam carregados em um arquivo CSV. Finalizando estes passos, teremos um ETL simples e funcional !


Vamos ao código abaixo:



Entendendo o ETL


Perceba que é um código Python simples dividido em três etapas onde:


  1. Começamos importando as biblioteca necessárias como pandas e requests, esta última responsável por chamar a API externa. Já o pandas, temos um tutorial nesse link Análise de Dados usando Pandas: O Guia Completo para Iniciantes.


    Após a importação das bibliotecas nas 6 e 7, é iniciado a extração dos dados, onde é feito um request na API externa https://jsonplaceholder.typicode.com/posts onde irá retornar 100 registros que serão convertidos em formato JSON.


    Na linha 10 é criado um Dataframe, para entender mais sobre Dataframes, acesse o link a seguir Criando Schemas com Spark Dataframes usando PySpark. A ideia é usar o poder computacional do Pandas para manter e processar os dados em memória.


  2. Na linha 18 a 27, é feito a transformação dos dados, ou seja, renomeamos algumas colunas e normalizamos alguns dados, como por exemplo, o campo Conteudo, onde removemos espaços e quebras de linhas usando Regex.


  3. Após o dados transformado, faremos o load, ou seja, carregaremos para um destino que no caso é uma planilha CSV para que seja analisada mais tarde.


Conclusão


Veja que a principio o termo ETL parece ser algo assustador, mas é algo mais simples do que você imagina. Existem diversas formas de se criar um ETL, usando Python, SQL ou ferramentas de mercado que já fazem toda a parte de automatização. Basta avaliar e escolher a mais adequada para o seu contexto.


 

Quer Aprender Mais? Inscreva-se na nossa Newsletter semanal!


Não perca nossas dicas exclusivas de Tech e Data!



Receba semanalmente:

  • Tutoriais práticos e diretos sobre Engenharia de Software e Dados

  • Insights de tecnologia e notícias da semana




 
 
 

Comments


bottom of page