Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Format output ekspor tabel DynamoDB
Sebuah ekspor tabel DynamoDB mencakup file manifes selain file yang berisi data tabel Anda. File ini semua disimpan di bucket Amazon S3 yang Anda tentukan di permintaan ekspor. Bagian berikut menjelaskan format dan isi dari setiap objek output.
Topik
File manifes
DynamoDB membuat dua file manifes, bersama dengan file checksum, dalam bucket S3 yang ditentukan untuk setiap permintaan ekspor.
export-prefix
/AWSDynamoDB/ExportId
/manifest-summary.jsonexport-prefix
/AWSDynamoDB/ExportId
/manifest-summary.checksumexport-prefix
/AWSDynamoDB/ExportId
/manifest-files.jsonexport-prefix
/AWSDynamoDB/ExportId
/manifest-files.checksum
Anda memilih export-prefix
saat meminta ekspor tabel. Ini membantu Anda menjaga kerapian file di bucket S3 tujuan. ExportId
adalah token unik yang dihasilkan oleh layanan untuk memastikan bahwa beberapa ekspor ke bucket S3 dan export-prefix
ekspor yang sama tidak saling menimpa.
Ekspor akan membuat setidaknya 1 file per partisi. Untuk partisi yang kosong, permintaan ekspor Anda akan membuat file kosong. Semua item di setiap file berasal dari keyspace hash partisi tertentu.
catatan
DynamoDB juga membuat sebuah file kosong bernama _started
dalam direktori yang sama sebagai file manifes. File ini memverifikasi bahwa bucket tujuan dapat ditulis dan bahwa ekspor telah dimulai. File ini bisa dihapus dengan aman.
Manifes ringkasan
File manifest-summary.json
berisi informasi ringkasan tentang tugas ekspor. Ini memungkinkan Anda mengetahui file data mana di folder data bersama yang terkait dengan ekspor ini. Formatnya adalah sebagai berikut:
{ "version": "2020-06-30", "exportArn": "arn:aws:dynamodb:us-east-1:123456789012:table/ProductCatalog/export/01234567890123-a1b2c3d4", "startTime": "2020-11-04T07:28:34.028Z", "endTime": "2020-11-04T07:33:43.897Z", "tableArn": "arn:aws:dynamodb:us-east-1:123456789012:table/ProductCatalog", "tableId": "12345a12-abcd-123a-ab12-1234abc12345", "exportTime": "2020-11-04T07:28:34.028Z", "s3Bucket": "ddb-productcatalog-export", "s3Prefix": "2020-Nov", "s3SseAlgorithm": "AES256", "s3SseKmsKeyId": null, "manifestFilesS3Key": "AWSDynamoDB/01693685827463-2d8752fd/manifest-files.json", "billedSizeBytes": 0, "itemCount": 8, "outputFormat": "DYNAMODB_JSON", "exportType": "FULL_EXPORT" }
Manifes file
File manifest-files.json
berisi informasi tentang file yang berisi data tabel Anda yang diekspor. File dalam format JSONbaris
{ "itemCount": 8, "md5Checksum": "sQMSpEILNgoQmarvDFonGQ==", "etag": "af83d6f217c19b8b0fff8023d8ca4716-1", "dataFileS3Key": "AWSDynamoDB/01693685827463-2d8752fd/data/asdl123dasas.json.gz" }
File data
DynamoDB dapat mengekspor data tabel Anda dalam dua format: DynamoDB JSON dan Amazon Ion. Terlepas dari format yang Anda pilih, data Anda akan ditulis ke beberapa file terkompresi yang dinamai berdasarkan kunci. File-file ini juga tercantum dalam manifest-files.json
file.
Struktur direktori bucket S3 Anda setelah ekspor penuh akan berisi semua file manifes dan file data Anda di bawah folder export Id.
DestinationBucket/DestinationPrefix . └── AWSDynamoDB ├── 01693685827463-2d8752fd // the single full export │ ├── manifest-files.json // manifest points to files under 'data' subfolder │ ├── manifest-files.checksum │ ├── manifest-summary.json // stores metadata about request │ ├── manifest-summary.md5 │ ├── data // The data exported by full export │ │ ├── asdl123dasas.json.gz │ │ ... │ └── _started // empty file for permission check
DynamoDB JSON
Ekspor tabel dalam format JSON DynamoDB terdiri dari beberapa objek. Item
Setiap objek individu dalam format JSON marshalled standar DynamoDB.
Saat membuat parser khusus untuk data ekspor JSON DynamoDB, formatnya adalah garis. JSON
Dalam contoh berikut, satu item dari ekspor JSON DynamoDB telah diformat pada beberapa baris demi keterbacaan.
{ "Item":{ "Authors":{ "SS":[ "Author1", "Author2" ] }, "Dimensions":{ "S":"8.5 x 11.0 x 1.5" }, "ISBN":{ "S":"333-3333333333" }, "Id":{ "N":"103" }, "InPublication":{ "BOOL":false }, "PageCount":{ "N":"600" }, "Price":{ "N":"2000" }, "ProductCategory":{ "S":"Book" }, "Title":{ "S":"Book 103 Title" } } }
Amazon Ion
Amazon Ion
Saat Anda mengekspor tabel ke format Ion, jenis data DynamoDB yang digunakan dalam tabel dipetakan ke jenis data Ion
Tabel berikut mencantumkan pemetaan tipe data DynamoDB ke tipe data ion:
Jenis data DynamoDB | Perwakilan Ion |
---|---|
String (S) | string |
Boolean () BOOL | bool |
Angka (N) | desimal |
Biner (B) | blob |
Set (SS, NS, BS) | daftar (dengan anotasi jenis $dynamodb_SS, $dynamodb_NS, or $dynamodb_BS) |
Daftar | daftar |
Peta | struct |
Item dalam ekspor Ion dibatasi oleh baris baru. Setiap baris dimulai dengan penanda versi Ion, diikuti dengan item dalam format Ion. Dalam contoh berikut, item dari ekspor Ion telah diformat dalam beberapa baris demi keterbacaan.
$ion_1_0 { Item:{ Authors:$dynamodb_SS::["Author1","Author2"], Dimensions:"8.5 x 11.0 x 1.5", ISBN:"333-3333333333", Id:103., InPublication:false, PageCount:6d2, Price:2d3, ProductCategory:"Book", Title:"Book 103 Title" } }
File manifes
DynamoDB membuat dua file manifes, bersama dengan file checksum, dalam bucket S3 yang ditentukan untuk setiap permintaan ekspor.
export-prefix
/AWSDynamoDB/ExportId
/manifest-summary.jsonexport-prefix
/AWSDynamoDB/ExportId
/manifest-summary.checksumexport-prefix
/AWSDynamoDB/ExportId
/manifest-files.jsonexport-prefix
/AWSDynamoDB/ExportId
/manifest-files.checksum
Anda memilih export-prefix
saat meminta ekspor tabel. Ini membantu Anda menjaga kerapian file di bucket S3 tujuan. ExportId
adalah token unik yang dihasilkan oleh layanan untuk memastikan bahwa beberapa ekspor ke bucket S3 dan export-prefix
ekspor yang sama tidak saling menimpa.
Ekspor akan membuat setidaknya 1 file per partisi. Untuk partisi yang kosong, permintaan ekspor Anda akan membuat file kosong. Semua item di setiap file berasal dari keyspace hash partisi tertentu.
catatan
DynamoDB juga membuat sebuah file kosong bernama _started
dalam direktori yang sama sebagai file manifes. File ini memverifikasi bahwa bucket tujuan dapat ditulis dan bahwa ekspor telah dimulai. File ini bisa dihapus dengan aman.
Manifes ringkasan
File manifest-summary.json
berisi informasi ringkasan tentang tugas ekspor. Ini memungkinkan Anda mengetahui file data mana di folder data bersama yang terkait dengan ekspor ini. Formatnya adalah sebagai berikut:
{ "version": "2023-08-01", "exportArn": "arn:aws:dynamodb:us-east-1:599882009758:table/export-test/export/01695097218000-d6299cbd", "startTime": "2023-09-19T04:20:18.000Z", "endTime": "2023-09-19T04:40:24.780Z", "tableArn": "arn:aws:dynamodb:us-east-1:599882009758:table/export-test", "tableId": "b116b490-6460-4d4a-9a6b-5d360abf4fb3", "exportFromTime": "2023-09-18T17:00:00.000Z", "exportToTime": "2023-09-19T04:00:00.000Z", "s3Bucket": "jason-exports", "s3Prefix": "20230919-prefix", "s3SseAlgorithm": "AES256", "s3SseKmsKeyId": null, "manifestFilesS3Key": "20230919-prefix/AWSDynamoDB/01693685934212-ac809da5/manifest-files.json", "billedSizeBytes": 20901239349, "itemCount": 169928274, "outputFormat": "DYNAMODB_JSON", "outputView": "NEW_AND_OLD_IMAGES", "exportType": "INCREMENTAL_EXPORT" }
Manifes file
File manifest-files.json
berisi informasi tentang file yang berisi data tabel Anda yang diekspor. File dalam format JSONbaris
{ "itemCount": 8, "md5Checksum": "sQMSpEILNgoQmarvDFonGQ==", "etag": "af83d6f217c19b8b0fff8023d8ca4716-1", "dataFileS3Key": "AWSDynamoDB/data/sgad6417s6vss4p7owp0471bcq.json.gz" }
File data
DynamoDB dapat mengekspor data tabel Anda dalam dua format: DynamoDB JSON dan Amazon Ion. Terlepas dari format yang Anda pilih, data Anda akan ditulis ke beberapa file terkompresi yang dinamai berdasarkan kunci. File-file ini juga tercantum dalam manifest-files.json
file.
File data untuk ekspor inkremental semuanya ada di folder data umum di bucket S3 Anda. File manifes Anda berada di bawah folder ID ekspor Anda.
DestinationBucket/DestinationPrefix . └── AWSDynamoDB ├── 01693685934212-ac809da5 // an incremental export ID │ ├── manifest-files.json // manifest points to files under 'data' folder │ ├── manifest-files.checksum │ ├── manifest-summary.json // stores metadata about request │ ├── manifest-summary.md5 │ └── _started // empty file for permission check ├── 01693686034521-ac809da5 │ ├── manifest-files.json │ ├── manifest-files.checksum │ ├── manifest-summary.json │ ├── manifest-summary.md5 │ └── _started ├── data // stores all the data files for incremental exports │ ├── sgad6417s6vss4p7owp0471bcq.json.gz │ ...
Saat Anda mengekspor file, output setiap item menyertakan stempel waktu yang menunjukkan kapan item tersebut diperbarui di tabel Anda dan struktur data yang menunjukkan apakah itu adalah operasi insert
, update
, atau delete
. Stempel waktu didasarkan pada jam sistem internal dan dapat bervariasi dari jam aplikasi Anda. Untuk ekspor tambahan, Anda dapat memilih antara dua jenis tampilan ekspor untuk struktur keluaran Anda: gambar baru dan lama atau hanya gambar baru.
-
Gambar baru memberikan status terkini item
-
Gambar lama menunjukkan status item tepat sebelum tanggal dan waktu mulai yang ditentukan
Jenis tampilan dapat membantu jika Anda ingin melihat bagaimana item diubah dalam periode ekspor. Ini juga dapat berguna untuk memperbarui sistem hilir Anda secara efisien, terutama jika sistem hilir tersebut memiliki kunci partisi yang tidak sama dengan kunci partisi DynamoDB Anda.
Anda dapat menyimpulkan apakah item dalam output ekspor tambahan Anda adalah insert
, update
, atau delete
dengan melihat struktur output. Struktur ekspor inkremental dan operasi yang sesuai dirangkum dalam tabel di bawah ini untuk kedua jenis tampilan ekspor.
Operasi | Hanya gambar baru | Gambar baru dan lama |
---|---|---|
Sisipkan |
Tombol + gambar baru |
Tombol + gambar baru |
Perbarui |
Tombol + gambar baru | Tombol+gambar baru+gambar lama |
Hapus | Kunci | Tombol + gambar lama |
Sisipkan + hapus | Tidak ada output | Tidak ada output |
DynamoDB JSON
Ekspor tabel dalam format JSON DynamoDB terdiri dari stempel waktu metadata yang menunjukkan waktu tulis item, diikuti oleh kunci item dan nilainya. Berikut ini menunjukkan contoh JSON DynamoDB output menggunakan jenis tampilan ekspor sebagai gambar Baru dan Lama.
// Ex 1: Insert // An insert means the item did not exist before the incremental export window // and was added during the incremental export window { "Metadata": { "WriteTimestampMicros": "1680109764000000" }, "Keys": { "PK": { "S": "CUST#100" } }, "NewImage": { "PK": { "S": "CUST#100" }, "FirstName": { "S": "John" }, "LastName": { "S": "Don" } } } // Ex 2: Update // An update means the item existed before the incremental export window // and was updated during the incremental export window. // The OldImage would not be present if choosing "New images only". { "Metadata": { "WriteTimestampMicros": "1680109764000000" }, "Keys": { "PK": { "S": "CUST#200" } }, "OldImage": { "PK": { "S": "CUST#200" }, "FirstName": { "S": "Mary" }, "LastName": { "S": "Grace" } }, "NewImage": { "PK": { "S": "CUST#200" }, "FirstName": { "S": "Mary" }, "LastName": { "S": "Smith" } } } // Ex 3: Delete // A delete means the item existed before the incremental export window // and was deleted during the incremental export window // The OldImage would not be present if choosing "New images only". { "Metadata": { "WriteTimestampMicros": "1680109764000000" }, "Keys": { "PK": { "S": "CUST#300" } }, "OldImage": { "PK": { "S": "CUST#300" }, "FirstName": { "S": "Jose" }, "LastName": { "S": "Hernandez" } } } // Ex 4: Insert + Delete // Nothing is exported if an item is inserted and deleted within the // incremental export window.
Amazon Ion
Amazon Ion
Saat Anda mengekspor tabel ke format Ion, jenis data DynamoDB yang digunakan dalam tabel dipetakan ke jenis data Ion
Tabel berikut mencantumkan pemetaan tipe data DynamoDB ke tipe data ion:
Jenis data DynamoDB | Perwakilan Ion |
---|---|
String (S) | string |
Boolean () BOOL | bool |
Angka (N) | desimal |
Biner (B) | blob |
Set (SS, NS, BS) | daftar (dengan anotasi jenis $dynamodb_SS, $dynamodb_NS, or $dynamodb_BS) |
Daftar | daftar |
Peta | struct |
Item dalam ekspor Ion dibatasi oleh baris baru. Setiap baris dimulai dengan penanda versi Ion, diikuti dengan item dalam format Ion. Dalam contoh berikut, item dari ekspor Ion telah diformat dalam beberapa baris demi keterbacaan.
$ion_1_0 { Record:{ Keys:{ ISBN:"333-3333333333" }, Metadata:{ WriteTimestampMicros:1684374845117899. }, OldImage:{ Authors:$dynamodb_SS::["Author1","Author2"], ISBN:"333-3333333333", Id:103., InPublication:false, ProductCategory:"Book", Title:"Book 103 Title" }, NewImage:{ Authors:$dynamodb_SS::["Author1","Author2"], Dimensions:"8.5 x 11.0 x 1.5", ISBN:"333-3333333333", Id:103., InPublication:true, PageCount:6d2, Price:2d3, ProductCategory:"Book", Title:"Book 103 Title" } } }