第 5 步:查看文档修订历史记录 - Amazon Quantum Ledger Database (Amazon QLDB)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

第 5 步:查看文档修订历史记录

在上一步中修改车辆 VIN 1N4AL11D75C109151 注册数据后,您可查询其所有注册车主的历史记录以及任何其他更新的字段。通过查询内置的 历史记录函数,您可以查看之前在中插入、更新和删除的车辆登记文件的所有三个修订版。

历史函数从表的已提交视图返回修订,其中包括应用程序数据和相关元数据。元数据准确显示了每次修订的时间、顺序以及提交修订的事务。

在此步骤中,您将在vehicle-registration分类账的VehicleRegistration表格中查询文档的修订历史记录。

若要查看修订历史记录
  1. 通过以下网址打开 Amazon QLDB 控制台:https://console.aws.amazon.com/qldb

  2. 在导航窗格中,选择 PartiQL 编辑器

  3. 选择 vehicle-registration 分类账。

  4. 要查询文档的历史记录,首先要找到其唯一的 id。除了查询已提交的视图外,获取文档 id 的另一种方法是在表格的默认用户视图中使用 BY 关键字。要了解更多信息,请参阅 通过 BY 子句查询文档 ID

    在查询编辑器窗口中输入以下语句,然后选择 运行

    SELECT r_id FROM VehicleRegistration AS r BY r_id WHERE r.VIN = '1N4AL11D75C109151'
  5. 接下来,您可以使用此 id 值来查询历史记录函数。输入以下语句并选择运行。确保将这些 id 值替换为自己文档 ID 的适当值。

    SELECT h.data.VIN, h.data.City, h.data.Owners FROM history(VehicleRegistration) AS h WHERE h.metadata.id = 'ADR2LQq48kB9neZDupQrMm' --replace with your id
    注意

    在本教程中,此历史查询将返回文档 ID ADR2LQq48kB9neZDupQrMm 的所有修订版本。最佳做法是,使用日期范围(开始时间和结束时间)和文档 ID 来限定历史查询。

    QLDB 中的每个 SELECT 查询都是在事务中处理的,并且受事务超时限制的约束。包含开始时间和结束时间的历史记录查询将从日期范围限定中获得便利。有关更多信息,请参阅历史记录函数

    历史函数以与提交视图相同的模式返回文档。此示例投射您修改后的车辆登记数据。该输出值应该类似于以下内容。

    VIN City(城市) 所有者
    "1N4AL11D75C109151" "Seattle" {PrimaryOwner:{PersonId:""},SecondaryOwners:[]}
    "1N4AL11D75C109151" "Seattle" {PrimaryOwner:{PersonId:"294jJ3YUoH1IEEm8GSabOs"}, SecondaryOwners:[]}
    "1N4AL11D75C109151" "Everett" {PrimaryOwner:{PersonId:"7NmE8YLPbXc0IqesJy1rpR"}, SecondaryOwners:[]}
    "1N4AL11D75C109151" "Everett" {PrimaryOwner:{PersonId:"7NmE8YLPbXc0IqesJy1rpR"}, SecondaryOwners:[{PersonId:"5Ufgdlnj06gF5CWcOIu64s"}]}
    注意

    历史查询可能并不总是按顺序返回文档修订版。

    查看输出并确认更改是否反映了您在 第 4 步:修改分类账中的文档 中所做的事情。

  6. 然后,您可以检查每个修订版的文档元数据。输入以下语句并选择运行。同样,请务必根据需要将 id 值替换为您自己的证件 ID。

    SELECT VALUE h.metadata FROM history(VehicleRegistration) AS h WHERE h.metadata.id = 'ADR2LQq48kB9neZDupQrMm' --replace with your id

    该输出值应该类似于以下内容。

    version id txTime txId
    0 "ADR2LQq48kB9neZDupQrMm" 2019-05-23T19:20:360d-3Z "FMoVdWuPxJg3k466Iz4i75"
    1 "ADR2LQq48kB9neZDupQrMm" 2019-05-23T21:40:199d-3Z "KWByxe842Xw8DNHcvARPOt"
    2 "ADR2LQq48kB9neZDupQrMm" 2019-05-23T21:44:432d-3Z "EKwDOJRwbHpFvmAyJ2Kdh9"
    3 "ADR2LQq48kB9neZDupQrMm" 2019-05-23T21:49:254d-3Z "96EiZd7vCmJ6RAvOvTZ4YA"

    这些元数据字段提供了有关每项何时修改以及由哪个事务修改的详细信息。从这些数据中,您可看到以下内容:

    • 该文档由系统分配的id唯一标识:ADR2LQq48kB9neZDupQrMm。这是以 Base62 编码的字符串表示的通用唯一识别码 (UUID)。

    • txTime 显示文档的初始修订版(版本0)是在 2019-05-23T19:20:360d-3Z 创建的。

    • 每个后续事务会创建包含相同文档 id 和递增版本号的新修订版,以及更新的 txIdtxTime

要以加密方式验证 vehicle-registration 分类账中的文档修订版,请继续第 6 步:验证分类账中的文档