Re: Search in historical table

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

In response to

Browse pgsql-it-generale by date

  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