Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Output ekspor jurnal dalam 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 Buku Besar QLDB Amazon ke Amazon
Pekerjaan ekspor jurnal QLDB 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 akan mengubah data jurnal Amazon Ion ke JSON di objek data yang diekspor. Untuk informasi lebih lanjut, lanjutkan keDown-convert 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
exportId
Ini adalah ID unik yang diberikan QLDB untuk setiap pekerjaan ekspor.
Konvensi penamaan file adalah sebagai berikut.
s3://amzn-s3-demo-qldb-cloudtrail/prefix
/exportId
.started.manifest
Berikut ini adalah contoh file manifes awal dan isinya dalam format teks Ion.
s3://amzn-s3-demo-qldb-cloudtrail/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:"amzn-s3-demo-qldb-cloudtrail",
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
Operasi DescribeJournalS3Export API 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 Amazon QLDB, untai adalah partisi jurnal buku besar Anda. QLDB saat ini mendukung jurnal dengan untai tunggal saja.
Manifes akhir mencakup daftar urutan kunci objek data yang ditulis selama ekspor. Konvensi penamaan file adalah sebagai berikut.
s3://amzn-s3-demo-qldb-cloudtrail/prefix
/exportId
.strandId
.completed.manifest
strandId
Ini adalah ID unik yang diberikan QLDB ke untai. Berikut ini adalah contoh file manifes akhir dan isinya dalam format teks Ion.
s3://amzn-s3-demo-qldb-cloudtrail/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 dalam bucket Amazon S3 yang disediakan baik dalam teks atau representasi biner format Amazon Ion, atau dalam format teks JSON Lines.
Dalam format JSON Lines, setiap blok dalam objek data yang diekspor adalah objek JSON yang valid yang dibatasi oleh baris baru. Anda dapat menggunakan format ini untuk mengintegrasikan ekspor JSON secara langsung dengan alat analitik seperti Amazon Athena AWS Glue dan karena layanan ini dapat mengurai JSON yang dibatasi baris baru secara otomatis. Untuk informasi selengkapnya tentang format, lihat JSON Lines
Nama objek data
Pekerjaan ekspor jurnal menulis objek data ini dengan konvensi penamaan berikut.
s3://amzn-s3-demo-qldb-cloudtrail/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://amzn-s3-demo-qldb-cloudtrail/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://amzn-s3-demo-qldb-cloudtrail/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-convert ke JSON
Jika Anda menentukan JSON sebagai format output dari pekerjaan ekspor Anda, QLDB akan mengubah data jurnal Amazon Ion ke JSON di objek data yang diekspor. Namun, mengonversi Ion ke JSON hilang dalam kasus tertentu di mana data Anda menggunakan tipe Ion kaya yang tidak ada di JSON.
Untuk detail tentang aturan konversi Ion ke JSON, lihat Mengonversi ke bawah ke JSON di Buku Masak
Ekspor pustaka prosesor (Java)
QLDB menyediakan 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/