Menanyakan riwayat revisi - Database Buku Besar Amazon Quantum (AmazonQLDB)

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

Menanyakan riwayat revisi

penting

Pemberitahuan akhir dukungan: Pelanggan yang ada akan dapat menggunakan Amazon QLDB hingga akhir dukungan pada 07/31/2025. Untuk detail selengkapnya, lihat Memigrasi QLDB Buku Besar Amazon ke Amazon Aurora Postgre. SQL

Amazon QLDB menyimpan riwayat lengkap setiap dokumen dalam sebuah tabel. Anda dapat melihat ketiga revisi dokumen registrasi kendaraan yang sebelumnya Anda masukkan, perbarui, dan hapus Memperbarui dan menghapus dokumen dengan menanyakan fungsi riwayat bawaan.

Fungsi sejarah

Fungsi histori di QLDB adalah ekstensi PartiQL yang mengembalikan revisi dari tampilan tabel yang ditentukan sistem. Jadi, ini mencakup data Anda dan metadata terkait dalam skema yang sama dengan tampilan yang berkomitmen.

Sintaksis

SELECT * FROM history( table_name | 'table_id' [, `start-time` [, `end-time` ] ] ) AS h [ WHERE h.metadata.id = 'id' ]
Pendapat
table_name | 'table_id'

Baik nama tabel atau ID tabel. Nama tabel adalah pengidentifikasi PartiQL yang dapat Anda tunjukkan dengan tanda kutip ganda atau tanpa tanda kutip. ID tabel adalah string literal yang harus dilampirkan dalam tanda kutip tunggal. Untuk mempelajari lebih lanjut tentang menggunakan tabelIDs, lihatMenanyakan riwayat tabel yang tidak aktif.

`start-time`, `end-time`

(Opsional) Menentukan rentang waktu di mana setiap revisi aktif. Parameter ini tidak menentukan rentang waktu selama revisi dilakukan pada jurnal dalam suatu transaksi.

Waktu mulai dan akhir adalah literal stempel waktu Ion yang dapat dilambangkan dengan backticks (). `...` Untuk mempelajari selengkapnya, lihat Meminta Ion dengan PartiQL di Amazon QLDB.

Parameter waktu ini memiliki perilaku berikut:

  • Waktu mulai dan akhir waktu keduanya inklusif. Mereka harus dalam format tanggal dan waktu ISO8601 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 dari atau sama dengan UTC tanggal dan waktu saat ini.

  • Jika Anda menentukan waktu mulai tetapi bukan waktu akhir, kueri Anda akan me-default waktu akhir ke tanggal dan waktu saat ini. Jika Anda tidak menentukan keduanya, kueri Anda mengembalikan seluruh riwayat.

'id'

(Opsional) ID dokumen yang ingin Anda kueri riwayat revisi, dilambangkan dengan tanda kutip tunggal.

Tip

Sebagai praktik terbaik, kualifikasikan kueri riwayat dengan rentang tanggal (waktu mulai dan akhir waktu) dan ID dokumen (). metadata.id DalamQLDB, setiap SELECT kueri diproses dalam transaksi dan tunduk pada batas waktu tunggu transaksi.

Kueri riwayat tidak menggunakan indeks yang Anda buat di atas tabel. QLDBriwayat diindeks oleh ID dokumen saja, dan Anda tidak dapat membuat indeks riwayat tambahan saat ini. Pertanyaan sejarah yang mencakup waktu mulai dan waktu akhir mendapatkan manfaat dari kualifikasi rentang tanggal.

Contoh kueri sejarah

Untuk menanyakan riwayat dokumen registrasi kendaraan, gunakan id yang sebelumnya Anda simpanMemperbarui dan menghapus dokumen. Misalnya, kueri riwayat berikut mengembalikan revisi apa pun untuk ID dokumen ADR2Ll1fGsU4Jr4EqTdnQF yang pernah aktif antara 2019-06-05T00:00:00Z dan2019-06-05T23:59:59Z.

catatan

Ingat bahwa parameter waktu mulai dan akhir tidak menentukan rentang waktu ketika revisi dilakukan pada jurnal dalam suatu transaksi. Misalnya, jika revisi dilakukan sebelumnya 2019-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 yang sesuai.

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 mirip 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" } }

Outputnya mencakup atribut metadata yang memberikan rincian kapan setiap item dimodifikasi, dan transaksi mana. Dari data ini, Anda dapat melihat yang berikut:

  • Dokumen ini diidentifikasi secara unik oleh id sistem-ditugaskan:. ADR2Ll1fGsU4Jr4EqTdnQF Ini adalah yang diwakili dalam UUID string yang dikodekan Base62.

  • INSERTPernyataan membuat revisi awal dokumen (versi0).

  • Setiap pembaruan berikutnya membuat revisi baru dengan dokumen yang sama id dan nomor versi tambahan.

  • txIdBidang menunjukkan transaksi yang dilakukan setiap revisi, dan txTime menunjukkan kapan masing-masing dilakukan.

  • Sebuah DELETE pernyataan menciptakan revisi baru, tetapi akhir dari sebuah dokumen. Revisi akhir ini hanya memiliki metadata.

Untuk mempelajari cara menghapus revisi secara permanen, lanjutkan keMenyunting revisi dokumen.