Este projeto é um desafio que implementa um pipeline ETL (Extract, Transform, Load) que lê arquivos de um bucket no Google Cloud Storage, processa e valida os dados, e os carrega em tabelas do BigQuery. Após o carregamento, o dbt é utilizado para transformar os dados no BigQuery. O projeto está preparado para ser implantado no Cloud Run utilizando o Cloud Build.
A arquitetura do projeto foi desenvolvida seguindo os princípios do SOLID e boas práticas de engenharia de software para garantir manutenção, reusabilidade e escalabilidade.
O pipeline ETL é composto pelas seguintes etapas:
- Extração : Baixa arquivos do Cloud Storage (camada bronze).
- Validação de Arquivos : Verifica se os arquivos estão corretos e não estão corrompidos.
- Ingestão de Dados: Lê os arquivos e os converte em DataFrames do Pandas.
- Validação de Dados: Verifica a consistência e qualidade dos dados.
- Carga no BigQuery: Carrega os dados validados em tabelas do BigQuery.
- Transformações com dbt: Executa modelos dbt para transformar os dados no BigQuery.
- Upload para a Camada Silver: Envia os arquivos processados para a camada silver no Cloud Storage.
- Python 3.9
- Flask : Framework web para criar a API.
- Gunicorn : Servidor WSGI para executar a aplicação Flask em produção.
- Pandas : Biblioteca para manipulação e análise de dados.
- Google Cloud Storage Client Library
- Google Cloud BigQuery Client Library
- dbt (Data Build Tool): Ferramenta para transformação de dados em SQL no BigQuery.
- Docker : Para containerização da aplicação.
- Google Cloud Run: Plataforma para executar contêineres sem servidor.
- Google Cloud Build: Serviço para implantação contínua.
- YAML : Utilizado para arquivos de configuração.
- Concurrent Futures : Biblioteca para implementar paralelismo e assincronismo.
- Git : Controle de versão.
- Google Cloud SDK (gcloud) : Ferramenta de linha de comando para interagir com os serviços do GCP.
Para mais informações, entre em contato:
Name: Guilherme Carvalho
E-mail: [email protected]