Melakukan Kueri Metadata Dokumen - Amazon Quantum Ledger Database (Amazon QLDB)

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Melakukan Kueri Metadata Dokumen

INSERTPernyataan menciptakan revisi awal dokumen dengan nomor versi nol. Untuk mengidentifikasi setiap dokumen secara unik, Amazon QLDB menetapkan ID dokumen sebagai bagian dari metadata.

Selain ID dokumen dan nomor versi, QLDB menyimpan metadata yang dihasilkan sistem lainnya untuk setiap dokumen dalam tabel. Metadata ini mencakup informasi transaksi, atribut jurnal, dan nilai hash dokumen.

Semua ID yang ditetapkan sistem adalah pengidentifikasi unik universal (UUID) yang masing-masing diwakili dalam string yang dikodekan Base62. Untuk informasi selengkapnya, lihat ID unik di Amazon QLDB.

Tampilan berkomitmen

Anda dapat mengakses metadata dokumen dengan menanyakan tampilan berkomitmen. Pandangan ini mengembalikan dokumen dari tabel yang didefinisikan sistem yang secara langsung sesuai dengan tabel pengguna Anda. Ini mencakup revisi terbaru yang berkomitmen dan tidak dihapus dari data Anda dan metadata yang dihasilkan sistem. Untuk menanyakan tampilan ini, tambahkan awalan_ql_committed_ ke nama tabel dalam kueri Anda. (Awalan_ql_ dicadangkan di QLDB untuk objek sistem.)

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

Dengan menggunakan data yang sebelumnya dimasukkanMembuat tabel dengan indeks dan memasukkan dokumen, output dari kueri ini menunjukkan isi sistem dari setiap revisi terbaru dokumen yang tidak dihapus. Dokumen sistem memiliki metadata yang bersarang dimetadata bidang, dan data pengguna Anda bersarang didata bidang.

{ 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" } }
Bidang tampilan berkomitmen
  • blockAddress- Lokasi blok di jurnal buku besar Anda di mana revisi dokumen dilakukan. Alamat, yang dapat digunakan untuk verifikasi kriptografi, memiliki dua bidang berikut.

    • strandId- ID unik untai jurnal yang berisi blok.

    • sequenceNo- Nomor indeks yang menentukan lokasi blok di dalam untai.

    catatan

    Kedua dokumen dalam contoh ini memiliki identikblockAddress dengan yang samasequenceNo. Karena dokumen-dokumen ini dimasukkan dalam satu transaksi (dan dalam hal ini, dalam satu pernyataan), mereka berkomitmen di blok yang sama.

  • hash- Nilai hash SHA-256 Ion yang secara unik mewakili revisi dokumen. Hash mencakup revisidata danmetadata bidang dan dapat digunakan untuk verifikasi kriptografi.

  • data- Atribut data pengguna dokumen.

    Jika Anda menyunting revisi,data struktur ini digantikan olehdataHash bidang, yang nilainya adalah hash Ion daridata struktur yang dihapus.

  • metadata- Atribut metadata dokumen.

    • id- ID unik yang ditugaskan sistem dari dokumen.

    • version— Nomor versi dokumen. Ini adalah integer berbasis nol yang bertambah dengan setiap revisi dokumen.

    • txTime- Stempel waktu saat revisi dokumen berkomitmen pada jurnal.

    • txId— ID unik dari transaksi yang melakukan revisi dokumen.

Bergabung dengan tampilan berkomitmen dan pengguna

Anda dapat menulis kueri yang bergabung dengan tabel dalam tampilan berkomitmen dengan tabel di tampilan pengguna. Misalnya, Anda mungkin ingin bergabung dengan dokumenid satu tabel dengan bidang yang ditentukan pengguna dari tabel lain.

Query berikut bergabung dua tabel bernamaDriversLicense danPerson padaid bidangPersonId dan dokumen mereka masing-masing, menggunakan pandangan berkomitmen untuk yang terakhir.

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

Untuk mempelajari cara menanyakan bidang ID dokumen dalam tampilan pengguna default, lanjutkan keMenggunakan klausa BY untuk query ID dokumen.