Gestisco un servizio di applicazione Django con un'API che si nutre di un frontend javascript. I dati sono specificatamente per grafici e grafici, quindi i dati restituiti sono di un numero abbastanza grande per ogni chiamata.
-
Il frontend specifica alcuni parametri di cui vogliono iniziare e terminare i dati, incluso il fuso orario. per es.
GET /pets?start_date=2015-01-01T05%3A00%3A00.000Z&end_date=2016-01-01T05%3A00%3A00.000Z?company_id=345&group_by=pet_type
-
I dati che sta recuperando sono dati aggregati. Abbiamo creato tabelle che memorizzano questi dati aggregati per le prestazioni. per esempio. sostanzialmente queste sono tabelle denormalizzate, che sono tabelle stellari .
-
Abbiamo suddiviso le date su cui stiamo interrogando per le prestazioni in un'altra tabella e ci uniamo su queste tabelle per interrogare intervalli di tempo specifici. per es.
actual_date day month year day_of_year quarter
2015-04-10 10 4 2015 69 2
....
Tutte le date sono memorizzate in UTC.
Penserei ingenuamente che il frontend richiederebbe in UTC e il servizio potrebbe restituire i dati in UTC. Tuttavia questa è una quantità enorme di dati grafici per chiamata, quindi il frontend che esegue questo calcolo non è ottimale.
La domanda diventa, se il frontend richiede i dati in un determinato fuso orario, come restituire i dati aggregati specifici per quel fuso orario?