Io uso Python sqlalchemy per memorizzare il mio modello in un database MySql. Uno dei miei oggetti ha un campo 'stato' (per semplicità supponiamo che ci siano due stati: DISPONIBILE e NON DISPONIBILE).
Ci sono diversi micro servizi che possono modificare gli stati degli oggetti - come il servizio API, le attività periodiche, le attività in background, ecc. Gli stati sono aggiornati con le query UPDATE, il che significa che attualmente non ho modo di ottenere stati storici per ogni oggetto. Gli stati possono essere aggiornati con la frequenza di più volte al secondo o, meno frequentemente, una volta all'anno.
Il mio obiettivo è tracciare il tempo trascorso da un oggetto in ogni stato. Ad esempio:
- Nelle ultime 24 ore, l'istanza A ha trascorso 6,5 ore nello stato DISPONIBILE e 17,5 ore nello stato NON DISPONIBILE
- Negli ultimi 6 mesi, l'istanza B ha trascorso un totale di 95,9 giorni nello stato DISPONIBILE e 84,1 giorni nello stato NON DISPONIBILE
Come progetteresti un'architettura per questo? Creo una tabella separata in MySql per archiviare gli stati storici? O forse un database NoSql è meglio per questa attività? Quali tabelle / struttura di oggetti useresti qui? Preferisco affidarmi a soluzioni open-source o addirittura commerciali piuttosto che svilupparmi.
TIA