Output ekspor jurnal di QLDB - 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.

Output ekspor jurnal di QLDB

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

Pekerjaan ekspor QLDB jurnal Amazon menulis dua file manifes selain objek data yang berisi blok jurnal Anda. Ini semua disimpan di bucket Amazon S3 yang Anda berikan dalam permintaan ekspor Anda. Bagian berikut menjelaskan format dan isi dari setiap objek output.

catatan

Jika Anda menentukan JSON sebagai format output dari pekerjaan ekspor Anda, QLDB turunkan data jurnal Amazon Ion ke JSON objek data yang diekspor. Untuk informasi lebih lanjut, lanjutkan keDown-konversi ke JSON.

File manifes

Amazon QLDB membuat dua file manifes dalam bucket S3 yang disediakan untuk setiap permintaan ekspor. File manifes awal dibuat segera setelah Anda mengirimkan permintaan ekspor. File manifes akhir ditulis setelah ekspor selesai. Anda dapat menggunakan file-file ini untuk memeriksa status pekerjaan ekspor Anda di Amazon S3.

Format untuk isi file manifes sesuai dengan format output yang diminta untuk ekspor.

Manifes awal

Manifes awal menunjukkan bahwa pekerjaan ekspor Anda telah dimulai. Ini berisi parameter input yang Anda berikan ke permintaan. Selain tujuan Amazon S3 dan parameter waktu mulai dan berakhir untuk ekspor, file ini juga berisi file. exportId exportIdIni adalah ID unik yang QLDB diberikan untuk setiap pekerjaan ekspor.

Konvensi penamaan file adalah sebagai berikut.

s3://DOC-EXAMPLE-BUCKET/prefix/exportId.started.manifest

Berikut ini adalah contoh file manifes awal dan isinya dalam format teks Ion.

s3://DOC-EXAMPLE-BUCKET/journalExport/8UyXulxccYLAsbN1aon7e4.started.manifest
{ ledgerName:"my-example-ledger", exportId:"8UyXulxccYLAsbN1aon7e4", inclusiveStartTime:2019-04-15T00:00:00.000Z, exclusiveEndTime:2019-04-15T22:00:00.000Z, bucket:"DOC-EXAMPLE-BUCKET", prefix:"journalExport", objectEncryptionType:"NO_ENCRYPTION", outputFormat:"ION_TEXT" }

Manifes awal mencakup outputFormat satu-satunya jika ditentukan dalam permintaan ekspor. Jika Anda tidak menentukan format output, data yang diekspor default ke format. ION_TEXT

APIOperasi DescribeJournalS3Export dan jenis konten objek Amazon S3 yang diekspor juga menunjukkan format output.

Manifes akhir

Manifes terakhir menunjukkan bahwa pekerjaan ekspor Anda untuk untaian jurnal tertentu telah selesai. Pekerjaan ekspor menulis file manifes akhir terpisah untuk setiap untai.

catatan

Di AmazonQLDB, untai adalah partisi jurnal buku besar Anda. QLDBsaat ini mendukung jurnal dengan satu untai saja.

Manifes akhir mencakup daftar urutan kunci objek data yang ditulis selama ekspor. Konvensi penamaan file adalah sebagai berikut.

s3://DOC-EXAMPLE-BUCKET/prefix/exportId.strandId.completed.manifest

strandIdIni adalah ID unik yang QLDB ditetapkan ke untai. Berikut ini adalah contoh file manifes akhir dan isinya dalam format teks Ion.

s3://DOC-EXAMPLE-BUCKET/journalExport/8UyXulxccYLAsbN1aon7e4.JdxjkR9bSYB5jMHWcI464T.completed.manifest
{ keys:[ "2019/04/15/22/JdxjkR9bSYB5jMHWcI464T.1-4.ion", "2019/04/15/22/JdxjkR9bSYB5jMHWcI464T.5-10.ion", "2019/04/15/22/JdxjkR9bSYB5jMHWcI464T.11-12.ion", "2019/04/15/22/JdxjkR9bSYB5jMHWcI464T.13-20.ion", "2019/04/15/22/JdxjkR9bSYB5jMHWcI464T.21-21.ion" ] }

Obyek data

Amazon QLDB menulis objek data jurnal di bucket Amazon S3 yang disediakan baik dalam representasi teks atau biner format Amazon Ion, atau dalam format teks JSONGaris.

Dalam format JSON Lines, setiap blok dalam objek data yang diekspor adalah JSON objek valid yang dibatasi oleh baris baru. Anda dapat menggunakan format ini untuk mengintegrasikan JSON ekspor secara langsung dengan alat analitik seperti Amazon Athena AWS Glue dan karena layanan ini dapat JSON mengurai baris baru yang dibatasi secara otomatis. Untuk informasi selengkapnya tentang format, lihat JSONGaris.

Nama objek data

Pekerjaan ekspor jurnal menulis objek data ini dengan konvensi penamaan berikut.

s3://DOC-EXAMPLE-BUCKET/prefix/yyyy/mm/dd/hh/strandId.startSn-endSn.ion|.json
  • Data output dari setiap pekerjaan ekspor dipecah menjadi beberapa bagian.

  • yyyy/mm/dd/hh— Tanggal dan waktu ketika Anda mengajukan permintaan ekspor. Objek yang diekspor dalam jam yang sama dikelompokkan di bawah awalan Amazon S3 yang sama.

  • strandId— ID unik dari untai tertentu yang berisi blok jurnal yang sedang diekspor.

  • startSn-endSn— Rentang nomor urut yang termasuk dalam objek. Nomor urut menentukan lokasi blok dalam untai.

Misalnya, anggaplah Anda menentukan jalur berikut.

s3://DOC-EXAMPLE-BUCKET/journalExport/

Pekerjaan ekspor Anda membuat objek data Amazon S3 yang terlihat mirip dengan yang berikut ini. Contoh ini menunjukkan nama objek dalam format Ion.

s3://DOC-EXAMPLE-BUCKET/journalExport/2019/04/15/22/JdxjkR9bSYB5jMHWcI464T.1-5.ion

Isi objek data

Setiap objek data berisi objek blok jurnal dengan format berikut.

{ blockAddress: { strandId: String, sequenceNo: Int }, transactionId: String, blockTimestamp: Datetime, blockHash: SHA256, entriesHash: SHA256, previousBlockHash: SHA256, entriesHashList: [ SHA256 ], transactionInfo: { statements: [ { //PartiQL statement object } ], documents: { //document-table-statement mapping object } }, revisions: [ { //document revision object } ] }

Blok adalah objek yang berkomitmen pada jurnal selama transaksi. Sebuah blok berisi metadata transaksi bersama dengan entri yang mewakili revisi dokumen yang dilakukan dalam transaksi dan pernyataan PartiQL yang melakukannya.

Berikut ini adalah contoh blok dengan data sampel dalam format teks Ion. Untuk informasi tentang bidang dalam objek blok, lihatIsi jurnal di Amazon QLDB.

catatan

Contoh blok ini disediakan hanya untuk tujuan informasi. Hash yang ditampilkan bukanlah nilai hash yang dihitung secara nyata.

{ blockAddress:{ strandId:"JdxjkR9bSYB5jMHWcI464T", sequenceNo:1234 }, transactionId:"D35qctdJRU1L1N2VhxbwSn", blockTimestamp:2019-10-25T17:20:21.009Z, blockHash:{{WYLOfZClk0lYWT3lUsSr0ONXh+Pw8MxxB+9zvTgSvlQ=}}, entriesHash:{{xN9X96atkMvhvF3nEy6jMSVQzKjHJfz1H3bsNeg8GMA=}}, previousBlockHash:{{IAfZ0h22ZjvcuHPSBCDy/6XNQTsqEmeY3GW0gBae8mg=}}, entriesHashList:[ {{F7rQIKCNn0vXVWPexilGfJn5+MCrtsSQqqVdlQxXpS4=}}, {{C+L8gRhkzVcxt3qRJpw8w6hVEqA5A6ImGne+E7iHizo=}} ], transactionInfo:{ statements:[ { statement:"CREATE TABLE VehicleRegistration", startTime:2019-10-25T17:20:20.496Z, statementDigest:{{3jeSdejOgp6spJ8huZxDRUtp2fRXRqpOMtG43V0nXg8=}} }, { statement:"CREATE INDEX ON VehicleRegistration (VIN)", startTime:2019-10-25T17:20:20.549Z, statementDigest:{{099D+5ZWDgA7r+aWeNUrWhc8ebBTXjgscq+mZ2dVibI=}} }, { statement:"CREATE INDEX ON VehicleRegistration (LicensePlateNumber)", startTime:2019-10-25T17:20:20.560Z, statementDigest:{{B73tVJzVyVXicnH4n96NzU2L2JFY8e9Tjg895suWMew=}} }, { statement:"INSERT INTO VehicleRegistration ?", startTime:2019-10-25T17:20:20.595Z, statementDigest:{{ggpon5qCXLo95K578YVhAD8ix0A0M5CcBx/W40Ey/Tk=}} } ], documents:{ '8F0TPCmdNQ6JTRpiLj2TmW':{ tableName:"VehicleRegistration", tableId:"BPxNiDQXCIB5l5F68KZoOz", statements:[3] } } }, revisions:[ { hash:{{FR1IWcWew0yw1TnRklo2YMF/qtwb7ohsu5FD8A4DSVg=}} }, { blockAddress:{ strandId:"JdxjkR9bSYB5jMHWcI464T", sequenceNo:1234 }, hash:{{t8Hj6/VC4SBitxnvBqJbOmrGytF2XAA/1c0AoSq2NQY=}}, data:{ VIN:"1N4AL11D75C109151", LicensePlateNumber:"LEWISR261LL", State:"WA", City:"Seattle", PendingPenaltyTicketAmount:90.25, ValidFromDate:2017-08-21, ValidToDate:2020-05-11, Owners:{ PrimaryOwner:{ PersonId:"GddsXfIYfDlKCEprOLOwYt" }, SecondaryOwners:[] } }, metadata:{ id:"8F0TPCmdNQ6JTRpiLj2TmW", version:0, txTime:2019-10-25T17:20:20.618Z, txId:"D35qctdJRU1L1N2VhxbwSn" } } ] }

Di revisions lapangan, beberapa objek revisi mungkin hanya berisi hash nilai dan tidak ada atribut lainnya. Ini adalah revisi sistem internal saja yang tidak berisi data pengguna. Pekerjaan ekspor mencakup revisi ini di blok masing-masing karena hash dari revisi ini adalah bagian dari rantai hash penuh jurnal. Rantai hash penuh diperlukan untuk verifikasi kriptografi.

Down-konversi ke JSON

Jika Anda menentukan JSON sebagai format output dari pekerjaan ekspor Anda, QLDB turunkan data jurnal Amazon Ion ke JSON objek data yang diekspor. Namun, mengonversi Ion menjadi JSON hilang dalam kasus tertentu di mana data Anda menggunakan tipe Ion kaya yang tidak ada di dalamnya. JSON

Untuk detail tentang aturan JSON konversi Ion ke, lihat Mengonversi ke bawah ke JSON dalam Buku Masak Amazon Ion.

Ekspor pustaka prosesor (Java)

QLDBmenyediakan kerangka kerja yang dapat diperluas untuk Java yang merampingkan pemrosesan ekspor di Amazon S3. Pustaka kerangka kerja ini menangani pekerjaan membaca output ekspor dan iterasi melalui blok yang diekspor dalam urutan berurutan. Untuk menggunakan prosesor ekspor ini, lihat GitHub repositori amazon-qldb-export-processorawslabs/ -java.