O NexusData é uma ferramenta para engenharia de dados, focada em ingestão, transformação e orquestração em uma arquitetura de Lakehouse moderna. O projeto automatiza a extração de dados da API da Steam, garantindo a integridade via contratos de qualidade e armazenamento otimizado.
O projeto utiliza uma estrutura de medalhão integrada com o que há de mais moderno no "Modern Data Stack":
- Ingestão (EL): dlt (data load tool) com suporte a auto-migration para garantir a evolução do schema.
- Orquestração: Dagster gerenciando a linhagem de assets e políticas de retry.
- Qualidade: Soda para validação de contratos e integridade dos dados na camada Bronze.
- Armazenamento: Apache Iceberg no MinIO para a camada Silver, permitindo viagens no tempo (time travel) e evolução de schema.
- Transformação: dbt (data build tool) para modelagem analítica na camada Gold.
- Infraestrutura: Terraform para provisionamento de recursos de storage e banco de dados.
- Python 3.10+
- Docker & Docker Compose
- Terraform
Clone o repositório e configure as variáveis de ambiente:
cp .env.example .env
# Preencha as credenciais no .envInstale as dependências
python -m venv .venv
source .venv/bin/activate # ou .venv\Scripts\activate no Windows
pip install -r requirements.txtSubir a Infraestrutura
docker-compose up -dMinIo, PostgreSQL e PGadmin
Provisione os Recursos com o Terraform
cd infrastructure
terraform init
terraform applyRodar o pipeline
$env:DAGSTER_HOME = "$(Get-Location)\.dagster"
dagster dev- Bronze (Raw): Ingestão via
dltdireto da API da Steam para o Postgres. - Data Quality: O Dagster dispara um
Soda Scanpara validar se os dados brutos possuem campos nulos ou tipos inválidos. - Silver (Trusted): Processamento via
PyIcebergpara desduplicação e conversão para formato tabular Iceberg no MinIO. - Gold (Analytics): Transformações
dbtpara métricas de negócio (ex: Top Games).
A camada Silver armazena os dados no formato Apache Iceberg, garantindo consistência ACID e permitindo viagens no tempo (time travel) diretamente no storage local.

O painel principal do Dagster fornece o status em tempo real de cada asset, indicando se a última materialização foi bem-sucedida ou se há alertas de qualidade pendentes.

A linhagem completa mapeia o fluxo desde a extração bruta (DLT) até as métricas finais (dbt), permitindo o rastreamento de impacto e depuração rápida de falhas.

O catálogo centraliza metadados, definições de colunas e o histórico de materialização, servindo como uma única fonte de verdade para a documentação técnica dos dados.
