ETL
Introdução
O Processo de ETL consiste em enviar dados de uma base para outra (ou para um data lake) da forma mais otimizada possível e realizando as devidas formatações e transformações.
Ferramentas
- Apache Airflow - Ferramenta de orquestração de pipelines
- Apache Spark - Ferramenta de processamento de dados
- PySpark - Biblioteca Python para processamento de dados
- MiniO - Object Storage
- PostgreSql - Banco de dados relacional
Passos Executados
-
Através do Apache Airflow nós realizamos a chamada de uma Dag (processo de pipeline que neste caso será utilizado para realizar o envio de dados de uma base de dados de Ecommerce para uma base de dados dimensional), possibilitando assim, melhor análise dos dados. A Dag ETL (Dag configurada no Airflow para realizar esta operação) realizará a chamada do processo etl_get_data que tem como objetivo buscar os dados do banco PostgreSql e criar arquivos
.csv
contendo 1000 dados cada, facilitando assim a leitura destes. -
Após o processo etl_get_data ser concluido, realizamos a chamada do processo etl_leading, que tem como objetivo ler os arquivos
.csv
contendo os dados do banco e enviar eles para o MiniO que neste contexto servirá como Object Storage. Estes arquivos são salvos no MiniO no formatoparquet
. -
Sendo concluido o processo da camada leading, o Airflow realiza a chamada do processo etl_bronze que tem como objetivo ler os arquivos
parquet
e criar uma Delta Table destes, otimizando assim as consultas subsequentes. -
Posteriormente, será chamado o processo etl_silver que será responsável pela transformação dos dados nos padrões necessários
-
Último processo dentro da arquitetura medalhão, o etl_gold, que enviará os dados que estão nas tabelas delta para o banco dimensional PostgreSql.