TimescaleDB rollups
Pipeline di aggregazione per serie temporali su PostgreSQL e TimescaleDB: grafici istantanei a ogni zoom, dati grezzi conservati solo per poche ore.
Il problema
I dati dei sensori arrivano fitti, irregolari e con buchi. Le dashboard vogliono risposte immediate sia sugli ultimi dieci minuti sia sugli ultimi due anni; lo spazio su disco vorrebbe liberarsi presto dei dati grezzi.
Cosa fa
Una cascata di aggregati continui (minuto, ora, giorno, settimana, mese), ognuno costruito sul livello sotto: ogni aggiornamento rilegge solo il livello precedente, già piccolo. Le medie sono pesate sul tempo, così un’ondata di letture ravvicinate non falsa il risultato, e ogni livello ha la sua durata di conservazione.
Tutto in SQL, con dati di esempio realistici e query pronte: parte con un solo
docker compose up. È la versione generica di un sistema che uso in produzione
per la telemetria di dispositivi IoT.