Pular para conteúdo

Fluxo de dados

Visão geral

O projeto organiza os dados em camadas lógicas para manter clareza entre coleta, validação e consumo analítico.

flowchart LR
    A[OpenSky API] --> B[Bronze: JSONL bruto]
    B --> V[Beam: validação]
    V --> C[Silver: Parquet validado]
    C --> D[Gold: latest + traffic]
    D --> E[Streamlit Dashboard]
    V --> F[Arquivos rejeitados]
    C --> G[Relatórios JSON]
    D --> G

Bronze

A camada Bronze guarda um arquivo por execução, com uma linha por resposta. Cada envelope contém o payload validado pelo cliente e metadados de ingestão; states: null é convertido em lista vazia antes da gravação.

Silver

A camada Silver converte cada vetor do OpenSky em um esquema estável e útil para análise. Essa etapa também separa os registros inválidos, preservando a qualidade dos dados.

Gold

A camada Gold contém duas visões:

  • latest: snapshot mais recente por aeronave;
  • traffic: agregações sobre todas as observações dos arquivos de entrada, sem janelas temporais Beam.

Rejeitados

Aplicações reais precisam preservar dados problemáticos para auditoria. A etapa de rejeição garante que uma linha ruim não se perca sem contexto.

Observabilidade

Cada etapa registra métricas e status em arquivos JSON para permitir rastreio de execução, debugging e produção de relatórios.