Interrogare la cronologia delle revisioni - Database Amazon Quantum Ledger (Amazon) QLDB

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Interrogare la cronologia delle revisioni

Importante

Avviso di fine del supporto: i clienti esistenti potranno utilizzare Amazon QLDB fino alla fine del supporto il 31/07/2025. Per ulteriori dettagli, consulta Migrare un Amazon QLDB Ledger ad Amazon Aurora Postgre. SQL

Amazon QLDB memorizza la cronologia completa di ogni documento in una tabella. Puoi vedere tutte e tre le revisioni del documento di immatricolazione del veicolo che hai inserito, aggiornato ed eliminato in precedenza Aggiornamento ed eliminazione dei documenti interrogando la funzione di cronologia integrata.

Funzione di cronologia

La funzione history in QLDB è un'estensione PartiQL che restituisce le revisioni dalla vista definita dal sistema della tabella. Quindi, include sia i dati che i metadati associati nello stesso schema della vista confermata.

Sintassi

SELECT * FROM history( table_name | 'table_id' [, `start-time` [, `end-time` ] ] ) AS h [ WHERE h.metadata.id = 'id' ]
Argomenti
table_name | 'table_id'

Il nome o l'ID della tabella. Un nome di tabella è un identificatore PartiQL che è possibile indicare con virgolette doppie o senza virgolette. Un ID di tabella è una stringa letterale che deve essere racchiusa tra virgolette singole. Per ulteriori informazioni sull'utilizzo della tabellaIDs, consulta. Interrogazione della cronologia delle tabelle inattive

`start-time`, `end-time`

(Facoltativo) Specifica l'intervallo di tempo durante il quale le revisioni sono state attive. Questi parametri non specificano l'intervallo di tempo durante il quale le revisioni sono state inserite nel giornale di registrazione di una transazione.

L'ora di inizio e di fine sono valori letterali del timestamp ionico che possono essere indicati con backticks (). `...` Per ulteriori informazioni, consulta Interrogare Ion con PartiQL in Amazon QLDB.

Questi parametri temporali hanno il seguente comportamento:

  • L'ora di inizio e l'ora di fine sono entrambe incluse. Devono essere nel formato di data e ora ISO8601 e nel formato Coordinated Universal Time (). UTC

  • L'ora di inizio deve essere inferiore o uguale all'ora di fine e può essere qualsiasi data arbitraria del passato.

  • L'ora di fine deve essere inferiore o uguale alla data e all'ora correntiUTC.

  • Se si specifica un'ora di inizio ma non un'ora di fine, la query imposta come impostazione predefinita l'ora di fine sulla data e l'ora correnti. Se non si specifica nessuna delle due, la query restituisce l'intera cronologia.

'id'

(Facoltativo) L'ID del documento per il quale desiderate interrogare la cronologia delle revisioni, indicato da virgolette singole.

Suggerimento

È consigliabile qualificare una query cronologica con un intervallo di date (ora di inizio e ora di fine) e un ID del documento (). metadata.id InQLDB, ogni SELECT query viene elaborata in una transazione ed è soggetta a un limite di timeout della transazione.

Le interrogazioni cronologiche non utilizzano gli indici creati su una tabella. QLDBla cronologia viene indicizzata solo in base all'ID del documento e al momento non è possibile creare indici cronologici aggiuntivi. Le interrogazioni cronologiche che includono l'ora di inizio e l'ora di fine ottengono il vantaggio della qualificazione per intervalli di date.

Esempio di interrogazione cronologica

Per interrogare la cronologia del documento di immatricolazione del veicolo, utilizza id quella in cui hai salvato in precedenzaAggiornamento ed eliminazione dei documenti. Ad esempio, la seguente query cronologica restituisce tutte le revisioni dell'ID del documento ADR2Ll1fGsU4Jr4EqTdnQF che sono mai state attive tra il 2019-06-05T00:00:00Z e2019-06-05T23:59:59Z.

Nota

Ricorda che i parametri relativi all'ora di inizio e di fine non specificano l'intervallo di tempo in cui le revisioni sono state salvate nel giornale di registrazione di una transazione. Ad esempio, se una revisione è stata salvata in precedenza 2019-06-05T00:00:00Z ed è rimasta attiva dopo quell'ora di inizio, questa query di esempio restituirà quella revisione nei risultati.

Assicurati di sostituire l'idora di inizio e l'ora di fine con i tuoi valori, a seconda dei casi.

SELECT * FROM history(VehicleRegistration, `2019-06-05T00:00:00Z`, `2019-06-05T23:59:59Z`) AS h WHERE h.metadata.id = 'ADR2Ll1fGsU4Jr4EqTdnQF' --replace with your id

I risultati della query dovrebbero essere simili ai seguenti.

{ blockAddress:{ strandId:"JdxjkR9bSYB5jMHWcI464T", sequenceNo:14 }, hash:{{B2wYwrHKOWsmIBmxUgPRrTx9lv36tMlod2xVvWNiTbo=}}, data: { VIN: "1HVBBAANXWH544237", LicensePlateNumber: "LS477D", State: "WA", City: "Tacoma", PendingPenaltyTicketAmount: 42.20, ValidFromDate: 2011-10-26T, ValidToDate: 2023-09-25T, Owners: { PrimaryOwner: { PersonId: "KmA3XPKKFqYCP2zhR3d0Ho" }, SecondaryOwners: [] } }, metadata:{ id:"ADR2Ll1fGsU4Jr4EqTdnQF", version:0, txTime:2019-06-05T20:53:321d-3Z, txId:"HgXAkLjAtV0HQ4lNYdzX60" } }, { blockAddress:{ strandId:"JdxjkR9bSYB5jMHWcI464T", sequenceNo:17 }, hash:{{LGSFZ4iEYWZeMwmAqcxxNyT4wbCtuMOmFCj8pEd6Mp0=}}, data: { VIN: "1HVBBAANXWH544237", LicensePlateNumber: "LS477D", State: "WA", PendingPenaltyTicketAmount: 42.20, ValidFromDate: 2011-10-26T, ValidToDate: 2023-09-25T, Owners: { PrimaryOwner: { PersonId: "KmA3XPKKFqYCP2zhR3d0Ho" }, SecondaryOwners: [] }, City: "Bellevue" }, metadata:{ id:"ADR2Ll1fGsU4Jr4EqTdnQF", version:1, txTime:2019-06-05T21:01:442d-3Z, txId:"9cArhIQV5xf5Tf5vtsPwPq" } }, { blockAddress:{ strandId:"JdxjkR9bSYB5jMHWcI464T", sequenceNo:19 }, hash:{{7bm5DUwpqJFGrmZpb7h9wAxtvggYLPcXq+LAobi9fDg=}}, metadata:{ id:"ADR2Ll1fGsU4Jr4EqTdnQF", version:2, txTime:2019-06-05T21:03:76d-3Z, txId:"9GslbtDtpVHAgYghR5FXbZ" } }

L'output include attributi di metadati che forniscono dettagli su quando ogni articolo è stato modificato e con quale transazione. Da questi dati, puoi vedere quanto segue:

  • Il documento è identificato in modo univoco grazie al sistema assegnato:id. ADR2Ll1fGsU4Jr4EqTdnQF Questo è rappresentato in una UUID stringa con codifica Base62.

  • Una INSERT dichiarazione crea la revisione iniziale di un documento (versione). 0

  • Ogni aggiornamento successivo crea una nuova revisione con lo stesso documento id e un numero di versione incrementato.

  • Il txId campo indica la transazione che ha eseguito il commit di ogni revisione e txTime mostra quando è stato eseguito il commit di ciascuna revisione.

  • Una DELETE dichiarazione crea una revisione nuova ma definitiva di un documento. Questa revisione finale contiene solo metadati.

Per informazioni su come eliminare definitivamente una revisione, procedi a. Redazione delle revisioni dei documenti