Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Melakukan Kueri Riwayat Riwayat Revisi
Amazon QLDB menyimpan riwayat lengkap setiap dokumen dalam tabel. Anda dapat melihat ketiga revisi dokumen registrasi kendaraan yang sebelumnya Anda masukkan, diperbarui, dan dihapusMemperbarui dan menghapus dokumen dengan menanyakan fungsi riwayat bawaan.
Fungsi Riwayat
Fungsi sejarah di QLDB adalah ekstensi PartiQL yang mengembalikan revisi dari tampilan yang ditentukan sistem tabel Anda. Jadi, ini mencakup data Anda dan metadata terkait dalam skema yang sama dengan tampilan berkomitmen.
Sintaks
SELECT * FROM history( table_name
| 'table_id
' [, `start-time
` [, `end-time
` ] ] ) AS h
[ WHERE h.metadata.id = 'id
' ]
Pendapat
table_name
| 'table_id
'-
Entah nama tabel atau ID tabel. Nama tabel adalah identifier PartiQL yang dapat Anda tunjukkan dengan tanda kutip ganda atau tidak ada tanda kutip. Sebuah ID tabel adalah string literal yang harus tertutup dalam tanda kutip tunggal. Untuk mempelajari selengkapnya menggunakan ID tabel, lihatMenanyakan sejarah tabel tidak aktif.
`start-time
`,`akhir waktu`
-
(Opsional) Menentukan rentang waktu di mana setiap revisi aktif. Parameter ini tidak menentukan rentang waktu selama revisi berkomitmen pada jurnal dalam transaksi.
Waktu mulai dan akhir adalah literal timestamp Ion yang dapat dilambangkan dengan backticks (
`...`
). Untuk mempelajari selengkapnya, lihat Menanyakan Ion dengan PartiQL di Amazon QLDB.Parameter waktu ini memiliki perilaku berikut:
-
Start-time dan end-time keduanya inklusif. Mereka harus berada dalam format tanggal dan waktu ISO 8601
dan dalam Waktu Universal Terkoordinasi (UTC). -
Waktu mulai harus kurang dari atau sama dengan waktu akhir dan dapat berupa tanggal sewenang-wenang di masa lalu.
-
Waktu akhir harus kurang atau sama dengan tanggal dan waktu UTC saat ini.
-
Jika Anda menentukan waktu mulai tetapi bukan waktu akhir, kueri Anda akan menetapkan waktu akhir ke tanggal dan waktu saat ini. Jika Anda tidak menentukan keduanya, kueri Anda akan mengembalikan keseluruhan riwayat.
-
- '
id
' -
(Opsional) ID dokumen yang ingin Anda kueri pada riwayat revisi, dilambangkan dengan tanda kutip tunggal.
Tip
Sebagai praktik terbaik, kualifikasi kueri riwayat dengan rentang tanggal (start-time dan end-time) dan ID dokumen (metadata.id
). Dalam QLDB, setiapSELECT
permintaan diproses dalam transaksi dan tunduk pada batas batas waktu transaksi.
Kueri sejarah tidak menggunakan indeks yang Anda buat di atas meja. Riwayat QLDB diindeks oleh ID dokumen saja, dan Anda tidak dapat membuat indeks riwayat tambahan saat ini. Kueri riwayat yang menyertakan waktu mulai dan waktu akhir mendapatkan manfaat kualifikasi rentang tanggal.
Contoh kueri Riwayat
Untuk menanyakan riwayat dokumen registrasi kendaraan, gunakan dokumenid
yang sebelumnya Anda simpanMemperbarui dan menghapus dokumen. Misalnya, kueri riwayat berikut menampilkan revisi apa pun untuk ID dokumenADR2Ll1fGsU4Jr4EqTdnQF
yang pernah aktif di antara2019-06-05T00:00:00Z
dan2019-06-05T23:59:59Z
.
catatan
Ingat bahwa parameter waktu mulai dan akhir tidak menentukan rentang waktu ketika revisi berkomitmen ke jurnal dalam transaksi. Misalnya, jika revisi dilakukan sebelumnya2019-06-05T00:00:00Z
dan tetap aktif melewati waktu mulai itu, kueri contoh ini akan mengembalikan revisi tersebut dalam hasil.
Pastikan untuk menggantiid
, waktu mulai, dan waktu akhir dengan nilai Anda sendiri.
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
Hasil kueri Anda akan terlihat serupa dengan yang berikut ini:
{
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"
}
}
Output mencakup atribut metadata yang memberikan detail tentang kapan setiap item dimodifikasi, dan transaksi mana. Dari data ini, Anda bisa melihat yang berikut ini:
-
Dokumen ini diidentifikasi secara unik oleh sistem-ditugaskan
id
:ADR2Ll1fGsU4Jr4EqTdnQF
. Ini adalah UUID yang diwakili dalam string Base62 dikodekan. -
INSERT
Pernyataan menciptakan revisi awal dokumen (versi0
). -
Setiap pembaruan berikutnya membuat revisi baru dengan dokumen yang sama
id
dan nomor versi yang bertambah. -
txId
Bidang menunjukkan transaksi yang dilakukan setiap revisi, dantxTime
menunjukkan kapan masing-masing berkomitmen. -
Sebuah
DELETE
pernyataan menciptakan revisi baru namun akhir dari sebuah dokumen. Revisi akhir ini hanya memiliki metadata.
Untuk mempelajari cara menghapus revisi secara permanen, lanjutkan keMenyunting revisi dokumen.