Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Consultation de l'historique des révisions
Important
Avis de fin de support : les clients existants pourront utiliser Amazon QLDB jusqu'à la fin du support le 31 juillet 2025. Pour plus de détails, consultez Migrer un Amazon QLDB Ledger vers Amazon Aurora SQL Postgre
Amazon QLDB stocke l'historique complet de chaque document dans un tableau. Vous pouvez voir les trois révisions du document d'immatriculation du véhicule que vous avez précédemment inséré, mis à jour et supprimé en Mettre à jour et supprimer des documents interrogeant la fonction d'historique intégrée.
Fonction d'historique
La fonction d'historique in QLDB est une extension partiQL qui renvoie les révisions à partir de la vue définie par le système de votre table. Elle inclut donc à la fois vos données et les métadonnées associées dans le même schéma que la vue validée.
Syntaxe
SELECT * FROM history( table_name
| 'table_id
' [, `start-time
` [, `end-time
` ] ] ) AS h
[ WHERE h.metadata.id = 'id
' ]
Arguments
table_name
| 'table_id
'-
Le nom ou l'ID de la table. Le nom d'une table est un identifiant PartiQL que vous pouvez indiquer par des guillemets doubles ou sans guillemets. Un identifiant de table est une chaîne littérale qui doit être placée entre guillemets simples. Pour en savoir plus sur l'utilisation du tableauIDs, voirConsultation de l'historique des tables inactives.
- `
start-time
`, `end-time
` -
(Facultatif) Spécifie la plage de temps pendant laquelle les révisions étaient actives. Ces paramètres ne spécifient pas la période pendant laquelle les révisions ont été validées dans le journal dans le cadre d'une transaction.
Les heures de début et de fin sont des littéraux d'horodatage ioniques qui peuvent être indiqués par des backticks ().
`...`
Pour en savoir plus, veuillez consulter la section Interroger Ion avec PartiQL sur Amazon QLDB.Ces paramètres temporels se comportent comme suit :
-
L'heure de début et l'heure de fin sont toutes deux incluses. Ils doivent être au format ISO8601
de date et d'heure et en temps universel coordonné (UTC). -
L'heure de début doit être inférieure ou égale à l'heure de fin et peut être une date arbitraire dans le passé.
-
L'heure de fin doit être inférieure ou égale à la UTC date et à l'heure actuelles.
-
Si vous spécifiez une heure de début mais pas une heure de fin, votre requête définit par défaut la date et l'heure actuelles pour l'heure de fin. Si vous ne spécifiez ni l'un ni l'autre, votre requête renvoie l'historique complet.
-
- '
id
' -
(Facultatif) L'ID du document pour lequel vous souhaitez consulter l'historique des révisions, indiqué par des guillemets simples.
Astuce
Il est recommandé de qualifier une requête d'historique à la fois par une plage de dates (heure de début et heure de fin) et par un identifiant de document (metadata.id
). DansQLDB, chaque SELECT
requête est traitée dans le cadre d'une transaction et est soumise à un délai d'expiration de transaction.
Les requêtes d'historique n'utilisent pas les index que vous créez sur une table. QLDBl'historique est indexé uniquement par identifiant de document, et vous ne pouvez pas créer d'index d'historique supplémentaires pour le moment. Les requêtes d'historique qui incluent une heure de début et une heure de fin bénéficient de la qualification par plage de dates.
Exemple de requête d'historique
Pour consulter l'historique du document d'immatriculation du véhicule, utilisez celui id
que vous avez précédemment enregistréMettre à jour et supprimer des documents. Par exemple, la requête d'historique suivante renvoie toutes les révisions de l'ID de document ADR2Ll1fGsU4Jr4EqTdnQF
qui ont été actives entre 2019-06-05T00:00:00Z
et2019-06-05T23:59:59Z
.
Note
N'oubliez pas que les paramètres d'heure de début et de fin ne spécifient pas la période pendant laquelle les révisions ont été validées dans le journal dans le cadre d'une transaction. Par exemple, si une révision a été validée avant cette date de début 2019-06-05T00:00:00Z
et qu'elle est restée active après cette date de début, cet exemple de requête renverra cette révision dans les résultats.
Assurez-vous de remplacer l'id
heure de début et l'heure de fin par vos propres valeurs, le cas échéant.
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
Les résultats de votre requête doivent ressembler à ce qui suit.
{
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"
}
}
La sortie inclut des attributs de métadonnées qui fournissent des détails sur le moment où chaque élément a été modifié et par quelle transaction. À partir de ces données, vous pouvez voir ce qui suit :
-
Le document est identifié de manière unique par son assigné par le système
id
:.ADR2Ll1fGsU4Jr4EqTdnQF
Il s'agit d'un UUID qui est représenté dans une chaîne codée en Base62. -
Une
INSERT
instruction crée la révision initiale d'un document (version0
). -
Chaque mise à jour suivante crée une nouvelle révision avec le même document
id
et un numéro de version incrémenté. -
Le
txId
champ indique la transaction qui a validé chaque révision ettxTime
indique quand chacune a été validée. -
Une
DELETE
instruction crée une nouvelle mais dernière révision d'un document. Cette révision finale contient uniquement des métadonnées.
Pour savoir comment supprimer définitivement une révision, passez àRédaction de révisions de documents.