Interroger les métadonnées d'un document - Amazon Quantum Ledger Database (Amazon QLDB)

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.

Interroger les métadonnées d'un document

UneINSERT instruction crée la révision initiale d'un document dont le numéro de version est zéro. Pour identifier de manière unique chaque document, Amazon QLDB attribue un identifiant de document dans le cadre des métadonnées.

Outre l'identifiant du document et le numéro de version, QLDB stocke d'autres métadonnées générées par le système pour chaque document dans un tableau. Ces métadonnées incluent les informations de transaction, les attributs du journal et la valeur de hachage du document.

Tous les identifiants attribués par le système sont des identifiants uniques universels (UUID) qui sont chacun représentés dans une chaîne codée en Base62. Pour plus d'informations, veuillez consulter Identifiants uniques dans Amazon QLDB.

Point de vue engagé

Vous pouvez accéder aux métadonnées du document en interrogeant la vue validée. Cette vue renvoie les documents de la table définie par le système qui correspond directement à votre table utilisateur. Il inclut la dernière révision validée et non supprimée de vos données et des métadonnées générées par le système. Pour interroger cette vue, ajoutez le préfixe_ql_committed_ au nom de la table dans votre requête. (Le préfixe_ql_ est réservé dans QLDB aux objets système.)

SELECT * FROM _ql_committed_VehicleRegistration AS r WHERE r.data.VIN IN ('1N4AL11D75C109151', 'KM8SRDHF6EU074761')

À l'aide des données précédemment inséréesCréation de tableaux avec index et insertion de documents, la sortie de cette requête affiche le contenu système de la dernière révision de chaque document non supprimé. Les métadonnées du document système sont imbriquées dans lemetadata champ et vos données utilisateur sont imbriquées dans ledata champ.

{ blockAddress:{ strandId:"JdxjkR9bSYB5jMHWcI464T", sequenceNo:14 }, hash:{{wCsmM6qD4STxz0WYmE+47nZvWtcCz9D6zNtCiM5GoWg=}}, data:{ VIN: "1N4AL11D75C109151", LicensePlateNumber: "LEWISR261LL", State: "WA", City: "Seattle", PendingPenaltyTicketAmount: 90.25, ValidFromDate: 2017-08-21T, ValidToDate: 2020-05-11T, Owners: { PrimaryOwner: { PersonId: "294jJ3YUoH1IEEm8GSabOs" }, SecondaryOwners: [{ PersonId: "5Ufgdlnj06gF5CWcOIu64s" }] } }, metadata:{ id:"3Qv67yjXEwB9SjmvkuG6Cp", version:0, txTime:2019-06-05T20:53:321d-3Z, txId:"HgXAkLjAtV0HQ4lNYdzX60" } }, { blockAddress:{ strandId:"JdxjkR9bSYB5jMHWcI464T", sequenceNo:14 }, hash:{{wPuwH60TtcCvg/23BFp+redRXuCALkbDihkEvCX22Jk=}}, data:{ VIN: "KM8SRDHF6EU074761", LicensePlateNumber: "CA762X", State: "WA", City: "Kent", PendingPenaltyTicketAmount: 130.75, ValidFromDate: 2017-09-14T, ValidToDate: 2020-06-25T, Owners: { PrimaryOwner: { PersonId: "IN7MvYtUjkp1GMZu0F6CG9" }, SecondaryOwners: [] } }, metadata:{ id:"JOzfB3lWqGU727mpPeWyxg", version:0, txTime:2019-06-05T20:53:321d-3Z, txId:"HgXAkLjAtV0HQ4lNYdzX60" } }
Champs d'affichage validés
  • blockAddress— L'emplacement du bloc dans le journal de votre grand livre où la révision du document a été validée. Une adresse, qui peut être utilisée pour la vérification cryptographique, comporte les deux champs suivants.

    • strandId— L'identifiant unique du volet du journal qui contient le bloc.

    • sequenceNo— Numéro d'index qui indique l'emplacement du bloc dans le brin.

    Note

    Dans cet exemple, les deux documents ont uneblockAddress valeur identique et identiquesequenceNo. Comme ces documents ont été insérés dans une seule transaction (et dans ce cas, dans une seule instruction), ils ont été validés dans le même bloc.

  • hash— La valeur de hachage ionique SHA-256 qui représente de manière unique la révision du document. Le hachage couvre les révisionsdata etmetadata les champs et peut être utilisé pour la vérification cryptographique.

  • data— Les attributs des données utilisateur du document.

    Si vous rédigez une révision, cettedata structure est remplacée par undataHash champ dont la valeur est le hachage ionique de ladata structure supprimée.

  • metadata— Les attributs des métadonnées du document.

    • id— L'identifiant unique attribué par le système au document.

    • version— Numéro de version du document. Il s'agit d'un entier à base zéro qui augmente à chaque révision du document.

    • txTime— Horodatage auquel la révision du document a été validée dans le journal.

    • txIdID unique de la transaction ayant validé la révision du document.

Rejoindre les points de vue des utilisateurs et des utilisateurs

Vous pouvez écrire des requêtes qui joignent une table dans la vue validée à une table dans la vue utilisateur. Par exemple, vous souhaiterez peut-être joindre le documentid d'une table à un champ défini par l'utilisateur d'une autre table.

La requête suivante joint deux tables nomméesDriversLicense etPerson sur leurPersonIdid champ de document respectivement, en utilisant la vue validée pour cette dernière.

SELECT * FROM DriversLicense AS d INNER JOIN _ql_committed_Person AS p ON d.PersonId = p.metadata.id WHERE p.metadata.id = '1CWScY2qHYI9G88C2SjvtH'

Pour savoir comment interroger le champ d'identification du document dans la vue utilisateur par défaut, passez àUtilisation de la clause BY pour interroger l'ID du document.