ETL PROCESSOS
```markdown
Processos ETL e Transformações
O Node-RED atua como o motor central de ETL (Extract, Transform, Load).
Estratégia
- Extração (Extract)
- Dados recolhidos de sensores MQTT.
-
Publicação periódica dos valores de produção, stock e paragem.
-
Transformação (Transform)
- Normalização dos dados.
- Cálculo de acumulados.
-
Validação e filtragem de outliers.
-
Carregamento (Load)
- Inserção e atualização dos dados em SQLite3.
- Geração de logs e relatórios.
Exemplos de Transformações
| Tipo | Operação | Descrição |
|---|---|---|
| Limpeza | Eliminar valores nulos | Ignorar mensagens sem payload válido |
| Normalização | Converter tipos | Garantir que todos os valores são float |
| Agregação | Somar produção acumulada | acumulado += msg.payload.producao |
| Regex | Extrair ID do produto | /produto-(\d+)/ |
| Filtro | Ignorar paragens < 2s | if (msg.payload.paragem >= 2) |
Jobs Node-RED
Os fluxos Node-RED incluem:
- MQTT In → Function → SQLite Out
- Function → Python Exec → Email Out
Esses fluxos são documentados visualmente no ficheiro flows.json e explicados no relatório final.