Pular para o conteúdo

Retenção

Dado Retenção
Leituras brutas 30 dias
Série agregada 1m 1 ano
Série agregada 10m 5 anos
Série agregada 1h e 1d sem prazo definido para expurgo

A lógica: o dado bruto é volumoso e perde utilidade rápido, já que uma estação de 8 segundos produz mais de dez mil pontos por dia e ninguém consulta o segundo exato de três meses atrás. O agregado é pequeno, e é o que sustenta comparação histórica.

GET /stations/{id}/readings tem horizonte curto. Pedir um from anterior ao início da retenção bruta devolve o que existe, sem erro: a resposta simplesmente começa depois do que você pediu. Confira o observedAt do primeiro item antes de concluir que houve lacuna.

Para arquivo histórico, use a série. Se o seu caso é guardar o passado do seu lado, consuma resolution=10m ou 1h periodicamente e grave. Uma rotina diária puxando o dia anterior é suficiente e barata.

Para não perder nada em tempo real, use o relay. A fila AMQP entrega cada leitura conforme ela chega, e o que você grava fica sob a sua retenção, não a nossa.

Um período sem leituras dentro da janela retida significa falha de sensor, de link ou de energia na estação, não expurgo. As duas situações se distinguem pelo sampleCount do bloco agregado: zero amostras é lacuna real; ausência do bloco inteiro, no começo da série, é retenção.