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à.
Esecuzione di query sulla cronologia delle revisioni
Amazon QLDB archivia la cronologia completa di ogni documento in una tabella. Puoi vedere tutte e tre le revisioni del documento di immatricolazione del veicolo che hai precedentemente inserito, aggiornato ed eliminatoAggiornamento ed eliminazione di documenti interrogando la funzione di cronologia integrata.
Funzione di cronologia
La funzione di cronologia in QLDB è un'estensione PartiQL che restituisce le revisioni dalla vista definita dal sistema della tabella. Quindi, include sia i tuoi 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
nome_tabella
| 'tabella_id
'-
Il nome o l'ID della tabella. Un nome di tabella è un identificatore PartiQL che è possibile indicare con virgolette doppie o senza virgolette. L'ID di tabella è una stringa letterale che deve essere racchiusa tra virgolette singole. Per ulteriori informazioni sull'utilizzo degli ID di tabella, consultaInterrogazione della cronologia delle tabelle inattive.
- `ora di
inizio
`, `ora difine
` -
(Facoltativo) Specifica l'intervallo di tempo durante il quale le revisioni erano attive. Questi parametri non specificano l'intervallo di tempo durante il quale le revisioni sono state salvate nel giornale in una transazione.
L'ora di inizio e di fine sono valori letterali del timestamp Ion che possono essere indicati con contrassegni (
`...`
). Per ulteriori informazioni, consulta Interrogazione di 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. deve essere in formato
data e ora e in formato UTC. -
L'ora di inizio deve essere inferiore o uguale all'ora di fine e può essere qualsiasi data passata arbitraria.
-
L'ora di fine deve essere minore o uguale alla data e l'ora UTC.
-
Se si specifica un'ora di inizio ma non un'ora di fine, l'interrogazione imposta come ora di fine la data e l'ora correnti. Se non si specifica nessuno dei due, l'interrogazione restituisce l'intera cronologia.
-
- '
id
' -
(Facoltativo) L'ID del documento per il quale si desidera interrogare la cronologia delle revisioni, indicato da virgolette singole.
Suggerimento
Come procedura consigliata, qualifica un'interrogazione cronologica con un intervallo di date (ora di inizio e ora di fine) e un ID del documento (metadata.id
). In QLDB, ogniSELECT
query viene elaborata in una transazione ed è soggetta a un limite di timeout della transazione.
Le interrogazioni relative alla cronologia non utilizzano gli indici creati su una tabella. La cronologia QLDB è indicizzata solo in base all'ID del documento e al momento non è possibile creare indici di cronologia aggiuntivi. Le interrogazioni cronologiche che includono un'ora di inizio e un'ora di fine ottengono il vantaggio della qualificazione dell'intervallo di date.
Esempio di query sulla cronologia
Per consultare la cronologia del documento di immatricolazione del veicolo, utilizzaid
quello precedentemente salvatoAggiornamento ed eliminazione di documenti. Ad esempio, la seguente query di cronologia restituisce tutte le revisioni dell'ID del documentoADR2Ll1fGsU4Jr4EqTdnQF
che sono state attive tra2019-06-05T00:00:00Z
e2019-06-05T23:59:59Z
.
Nota
Ricorda che i parametri dell'ora di inizio e di fine non specificano l'intervallo di tempo in cui le revisioni sono state salvate nel giornale in una transazione. Ad esempio, se una revisione è stata salvata prima2019-06-05T00:00:00Z
ed è rimasta attiva dopo l'ora di inizio, questa query di esempio restituirà quella revisione nei risultati.
Assicurati di sostituire l'id
ora 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 apparire 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 elemento è stato modificato e con quale transazione. Da questi dati, puoi visualizzare quanto segue:
-
Il documento è identificato in modo univoco dal sistema assegnato
id
:ADR2Ll1fGsU4Jr4EqTdnQF
. Si tratta di un UUID rappresentato in una stringa codificata in Base62. -
Un'
INSERT
istruzione crea la revisione iniziale di un documento (versione0
). -
Ogni aggiornamento successivo crea una nuova revisione con lo stesso documento
id
e un numero di versione incrementato. -
Il
txId
campo indica la transazione in cui è stata salvata ogni revisione etxTime
indica quando ciascuna di esse è stata confermata. -
Un'
DELETE
istruzione crea una nuova ma definitiva revisione di un documento. Questa revisione finale contiene solo metadati.
Per sapere come eliminare definitivamente una revisione, procedi aRedazione delle revisioni dei documenti.