查詢文件元資料 - Amazon Quantum 賬本數據庫(AmazonQLDB)

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

查詢文件元資料

重要

支援結束通知:現有客戶將能夠使用 Amazon,QLDB直到 2025 年 7 月 31 日終止支援為止。有關更多詳細信息,請參閱將 Amazon QLDB 分類帳遷移到 Amazon Aurora 郵政. SQL

INSERT陳述式會建立版本編號為零的文件的初始版本修訂。為了唯一識別每個文件,Amazon QLDB 會將文件 ID 指派為中繼資料的一部分。

除了文件 ID 和版本號碼之外,還會將每份文件的其他系統產生的中繼資料QLDB儲存在表格中。此中繼資料包括交易資訊、日誌屬性和文件的雜湊值。

所有系統分配的都IDs是通用唯一標識符 (UUID),每個標識符都以 Base62 編碼的字符串表示。如需詳細資訊,請參閱 Amazon 獨特IDs之處 QLDB

已提交檢視

您可以透過查詢已提交的檢視來存取文件中繼資料。此檢視會從系統定義的資料表傳回直接對應至您的使用者資料表的文件。它包括資料和系統產生的中繼資料的最新提交、未刪除的修訂版本。若要查詢此檢視,請在查詢中將前置字元新增_ql_committed_至資料表名稱。(系統物件會保留字首_ql_。) QLDB

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

使用先前插入的資料使用索引建立表格並插入文件,此查詢的輸出會顯示每個未刪除文件的最新修訂版本的系統內容。系統文件的中繼資料巢狀於metadata欄位中,而您的使用者資料則以巢狀方式嵌套在data欄位中。

{ 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" } }
已提交檢視欄位
  • blockAddress— 分類帳期刊中已確認文件修訂的區塊位置。可用於密碼編譯驗證的位址具有以下兩個欄位。

    • strandId— 包含區塊之日誌鏈的唯一 ID。

    • sequenceNo— 指定圖塊在鏈中的位置的索引號碼。

    注意

    此示例中的兩個文檔具有blockAddress相同的相同sequenceNo。因為這些文件是在單一交易中插入 (在這種情況下,在單一陳述式中),所以它們是在同一個區塊中提交。

  • hash— 唯一代表文件修訂版本的 SHA -256 Ion 雜湊值。雜湊涵蓋修訂版本datametadata欄位,可用於密碼編譯驗證

  • data— 文件的使用者資料屬性。

    如果您編輯修訂版本,則此data結構會由dataHash欄位取代,其值為已移除data結構的 Ion 雜湊值。

  • metadata— 文件的中繼資料屬性。

    • id— 系統指派的文件唯一 ID。

    • version— 文件的版本號碼。這是一個從零開始的整數,會隨著每個文件修訂版遞增。

    • txTime— 將文件修訂送至日誌時的時間戳記。

    • txId— 認可文件修訂之交易的唯一 ID。

加入提交和用戶視圖

您可以撰寫查詢,將已提交檢視中的資料表與使用者檢視中的資料表聯結在一起。例如,您可能想要將一個資料表id的文件與另一個資料表的使用者定義欄位聯結。

下列查詢會分別連接兩個名為 DriversLicense AND Person 的資料表PersonId和文件id欄位,並使用後者的認可檢視表。

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

若要瞭解如何在預設使用者檢視中查詢文件 ID 欄位,請繼續執行使用 BY 子句來查詢文件 ID