Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Abfragen des Revisionsverlaufs
Wichtig
Hinweis zum Ende des Supports: Bestandskunden können Amazon QLDB bis zum Ende des Supports am 31.07.2025 nutzen. Weitere Informationen finden Sie unter Migrieren eines Amazon QLDB-Ledgers zu Amazon
Amazon QLDB speichert den vollständigen Verlauf jedes Dokuments in einer Tabelle. Sie können mithilfe einer Abfrage der integrierten Verlaufsfunktion alle drei Revisionen des Kfz-Zulassungsdokuments anzeigen, die Sie zuvor in Dokumente aktualisieren und löschen eingefügt, aktualisiert oder gelöscht haben.
Funktion „Verlauf“
Die History-Funktion in QLDB ist eine PartiQL-Erweiterung, die Revisionen aus der systemdefinierten Ansicht Ihrer Tabelle zurückgibt. Sie enthält Ihre Daten und die zugehörigen Metadaten in demselben Schema wie die bestätigte Ansicht.
Syntax
SELECT * FROM history( table_name
| 'table_id
' [, `start-time
` [, `end-time
` ] ] ) AS h
[ WHERE h.metadata.id = 'id
' ]
Argumente
table_name
| 'table_id
'-
Entweder der Tabellenname oder die Tabellen-ID. Ein Tabellenname ist eine PartiQL-Kennung, die Sie mit doppelten Anführungszeichen oder keinen Anführungszeichen bezeichnen können. Eine Tabellen-ID ist ein Zeichenfolgenliteralwert, der in einfache Anführungszeichen eingeschlossen werden muss. Weitere Informationen zur Verwendung von Tabellen IDs finden Sie unterDen Verlauf inaktiver Tabellen abfragen.
- `
start-time
`, `end-time
` -
(Optional) Gibt den Zeitraum an, in dem alle Revisionen aktiv waren. Diese Parameter geben nicht den Zeitraum an, in dem Revisionen im Rahmen einer Transaktion in das Journal übernommen wurden.
Die Start- und Endzeiten sind Ion-Zeitstempelliterale, die mit Backticks () gekennzeichnet werden können.
`...`
Weitere Informationen hierzu finden Sie unter Abfragen von Ion mit PartiQL in Amazon QLDB.Diese Zeitparameter haben das folgende Verhalten:
-
Die Startzeit und die Endzeit sind beide inklusive. Sie müssen im ISO 8601
-Datums- und Zeitformat und in koordinierter Weltzeit (Coordinated Universal Time, UTC) angegeben werden. -
Die start-time (Anfangszeit) muss früher oder gleich der end-time (Endzeit) sein und kann jede beliebige Datum in der Vergangenheit sein.
-
Die end-time (Endzeit) muss früher oder gleich dem aktuellen UTC-Datum und der Uhrzeit sein.
-
Wenn Sie eine Startzeit, aber nicht eine Endzeit angeben, verwendet Ihre Abfrage das aktuelle Datum und die aktuelle Uhrzeit als Endzeit. Wenn Sie keine dieser Zeiten angeben, gibt die Abfrage den gesamten Verlauf zurück.
-
- '
id
' -
(Optional) Die Dokument-ID, für die Sie den Revisionsverlauf abfragen möchten, gekennzeichnet durch einfache Anführungszeichen.
Tipp
Es hat sich bewährt, eine Verlaufsabfrage sowohl mit einem Datumsbereich (Startzeit und Endzeit) als auch mit einer Dokument-ID () zu qualifizieren. metadata.id
In QLDB wird jede SELECT
Abfrage in einer Transaktion verarbeitet und unterliegt einem Transaktions-Timeout-Limit.
Verlaufsabfragen verwenden nicht die Indizes, die Sie für eine Tabelle erstellen. Der QLDB-Verlauf wird nur nach Dokument-ID indexiert, und Sie können derzeit keine zusätzlichen Verlaufsindizes erstellen. Bei Verlaufsabfragen, die eine Start- und Endzeit enthalten, wird der Vorteil einer Qualifizierung nach einem bestimmten Zeitraum genutzt.
Beispiel für eine Verlaufsabfrage
Um die Historie des Fahrzeugscheins abzufragen, verwenden Sie denid
, den Sie zuvor gespeichert habenDokumente aktualisieren und löschen. Die folgende Verlaufsabfrage gibt beispielsweise alle Versionen der Dokument-ID zurückADR2Ll1fGsU4Jr4EqTdnQF
, die jemals zwischen 2019-06-05T00:00:00Z
und 2019-06-05T23:59:59Z
aktiv waren.
Anmerkung
Denken Sie daran, dass die Parameter für die Start- und Endzeit nicht den Zeitraum angeben, in dem Revisionen im Rahmen einer Transaktion in das Journal übernommen wurden. Wenn eine Revision beispielsweise schon einmal festgeschrieben wurde 2019-06-05T00:00:00Z
und nach dieser Startzeit aktiv blieb, gibt diese Beispielabfrage diese Revision in den Ergebnissen zurück.
Stellen Sie sicher, die id
, die Start- und Endzeit durch Ihre eigenen Werte zu ersetzen.
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
Ihre Abfrageergebnisse sollten wie folgt aussehen.
{
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"
}
}
Diese Ausgabe enthält Metadatenattribute, die Informationen dazu bieten, wann die einzelnen Elemente geändert wurden und von welcher Transaktion. Aus diesen Daten können Sie Folgendes schließen:
-
Das Dokument wird eindeutig durch seine vom System zugewiesene
id
identifiziert:ADR2Ll1fGsU4Jr4EqTdnQF
. Dies ist eine UUID, die in einer Base62-codierten Zeichenfolge dargestellt wird. -
Eine
INSERT
-Anweisung erstellt die anfängliche Revision eines Dokuments (Version0
). -
Jedes nachfolgende Update erstellt eine neue Revision mit der gleichen Dokument-
id
und einer aufsteigenden Versionsnummer. -
Das
txId
-Feld gibt die Transaktion an, die jede Revision festgeschrieben hat, undtxTime
zeigt, wann jede Revision festgeschrieben wurde. -
Eine
DELETE
-Anweisung erstellt eine neue, aber finale Revision eines Dokuments. Diese finale Revision hat nur Metadaten.
Weitere Informationen zum dauerhaften Löschen einer Revision finden Sie unter. Revisionen von Dokumenten redigieren