From: | Luca Ferrari <fluca1978(at)gmail(dot)com> |
---|---|
To: | Lorusso Domenico <domenico(dot)l76(at)gmail(dot)com> |
Cc: | pgsql-it-generale(at)lists(dot)postgresql(dot)org |
Subject: | Re: Search in historical table |
Date: | 2023-06-07 06:37:28 |
Message-ID: | CAKoxK+5jHu2MQ+u3dCvEuC2xs2HEj4bOGGEccYYoqMNTv4-rvQ@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-it-generale |
On Tue, Jun 6, 2023 at 11:04 PM Lorusso Domenico <domenico(dot)l76(at)gmail(dot)com> wrote:
>
> Prima ho una domanda filosofica, per rappresentare un periodo temporale cosa è meglio? 2 timestamp o un timestamp range?
>
Premessa: non sono un esporto delle serie temporali, qui forse
potrebbe intervenire qualche altra persona.
Detto questo, il range è di fatto una coppia di dati, nel tuo caso di
timestamp. Lato teorico, non vi è quindi differenza. Lato pratico, un
range ti forza a usarlo correttamente, ad esempio ad impostare gli
estremi assieme senza correre il rischio di non impostarne uno o di
impostare la fine prima dell'inizio e cose analoghe.
> Dopo di che devo usare questi periodi temporali per fare ricerche (in letteratura si parla di funzione di copertura dello spazio (bi temporale). cioè insomma, una query potrebbe essere secondo le informazioni del db da tempo T1 a tempo T2 come è stata l'evoluzione del dato rispetto per come la vedeva l'utente nel periodo che va da T3 a T4.
>
Chiaro (credo), ma quindi tu memorizzeresti solo (T1, T2) mentre (T3,
T4) sarebbe il criterio di ricerca. Se ho capito bene.
> Questo è il caso limite e se non i due periodi non sono sovrapposti non estrae righe.... a meno che non esistano le correzioni o le prenotazioni.
>
Quando parlavo di sovrapposizione intendevo rispetto al
partizionamento: non sapendo come sarà il tuo flusso dati, devi
cercare di fare in modo che T1,T2 cadano sempre e solo in una tabella.
Ad esempio se partizioni per anno-mese, T1,T2 devono stare nello
stesso mese.
> Ma al di là di questo, la domanda è come usare un indice che sappia intersecare periodi temporali? ho visto che si parla di GIST ma non lo conosco...
GiST è una delle cose che conosco veramente poco, quindi qui non posso aiutarti.
Ma il mio sospetto è che un tsrange con un btree sopra possa renderti
comunque soddisfatto.
Luca
From | Date | Subject | |
---|---|---|---|
Next Message | Gianni Ciolli | 2023-09-18 06:55:08 | Evento su PostgreSQL in Italia |
Previous Message | Lorusso Domenico | 2023-06-06 21:04:19 | Re: Search in historical table |