Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Format impor Amazon S3 untuk DynamoDB
DynamoDB dapat mengimpor data dalam tiga format: CSV, DynamoDB JSON, dan Amazon Ion.
CSV
File dalam format CSV terdiri dari beberapa item yang dibatasi oleh baris baru. Secara default, DynamoDB menafsirkan baris pertama dari file impor sebagai header dan mengharapkan kolom akan dibatasi oleh koma. Anda juga dapat menentukan header yang akan diterapkan, asalkan sesuai dengan jumlah kolom dalam file. Jika Anda mendefinisikan header secara eksplisit, baris pertama file akan diimpor sebagai nilai.
catatan
Saat mengimpor dari file CSV, semua kolom selain rentang hash dan kunci tabel dasar serta indeks sekunder Anda diimpor sebagai string DynamoDB.
Menghindari tanda kutip ganda
Setiap karakter tanda kutip ganda yang ada di file CSV harus dihindari. Jika tidak dihindari, seperti pada contoh berikut ini, impor akan gagal:
id,value "123",Women's Full "Length" Dress
Impor yang sama ini akan berhasil jika tanda kutip dihindari dengan menambah dua rangkaian tanda kutip ganda:
id,value """123""","Women's Full ""Length"" Dress"
Setelah teks dihindari dan diimpor dengan benar, teks tersebut akan muncul seperti di file CSV asli:
id,value "123",Women's Full "Length" Dress
DynamoDB mengikuti konvensi kutipan CSV standar (RFC 4180): kutipan ganda di dalam nilai bidang diloloskan dengan mendahuluinya dengan kutipan ganda () lainnya. "" Backslash escaping (\"), yang umum dalam bahasa pemrograman dan output dari banyak alat ekspor data, tidak dikenali, dan file yang menggunakannya akan gagal untuk mengimpor. Jika data sumber Anda menggunakan backslash escaping, ubah setiap kutipan yang diloloskan menjadi kutipan dua kali lipat sebelum mengimpor. Misalnya, nilai yang diekspor sebagai:
"Women's \"Full Length\" Dress"
harus diformat ulang sebagai berikut sebelum dapat diimpor:
"Women's ""Full Length"" Dress"
Memformat nilai kunci
Di DynamoDB, kunci utama adalah kunci primer sederhana (kunci partisi) atau kunci primer komposit (kunci partisi dan kunci pengurutan). Setiap atribut kunci memiliki nilai skalar tunggal. Jika Anda menginginkan nilai kunci yang menggabungkan beberapa bidang - misalnya, bergabung organizationId dan barcode dengan pembatas sebagai organizationId#barcode - Anda menggabungkan bidang tersebut menjadi satu string dan menyimpannya dalam satu atribut kunci. Penggabungan ini adalah konvensi aplikasi; DynamoDB menyimpan dan mencocokkan atribut kunci sebagai satu nilai.
Saat Anda mengimpor data ini dari CSV, masukkan nilai gabungan penuh dalam satu kolom yang tajuknya cocok dengan nama atribut kunci. Jangan membagi bagian menjadi kolom terpisah: impor memetakan setiap kolom ke satu atribut dan tidak menggabungkan kolom menjadi nilai kunci. Misalnya, untuk tabel yang atribut kunci partisi diberi nama pk dan atribut sort key bernamask:
pk,sk,barcode org123#ABC123,number#001,ABC123 org456#XYZ789,number#002,XYZ789
Jika nilai kunci itu sendiri berisi pembatas koma, lampirkan seluruh nilai dalam tanda kutip ganda, misalnya. "org123,east#ABC123"
Mengimpor jenis barang heterogen
Anda dapat menggunakan satu file CSV untuk mengimpor berbagai jenis item ke dalam satu tabel. Tentukan baris header yang mencakup semua atribut di seluruh jenis item Anda, dan biarkan kolom kosong untuk atribut yang tidak berlaku untuk item tertentu. Kolom kosong dihilangkan dari item yang diimpor daripada disimpan sebagai string kosong.
PK,SK,EntityType,Name,Email,OrderDate,Amount,ProductName,Quantity USER#1,PROFILE,User,Alice,alice@example.com,,,, USER#1,ORDER#2024-01-15,Order,,,2024-01-15,99.99,, USER#1,ORDER#2024-02-10,Order,,,2024-02-10,149.50,, PRODUCT#101,METADATA,Product,,,,,Laptop,50 PRODUCT#102,METADATA,Product,,,,,Mouse,200 USER#2,PROFILE,User,Bob,bob@example.com,,,, USER#2,ORDER#2024-01-20,Order,,,2024-01-20,75.00,, PRODUCT#103,METADATA,Product,,,,,Keyboard,150 USER#3,PROFILE,User,Charlie,charlie@example.com,,,, PRODUCT#104,METADATA,Product,,,,,Monitor,30
Dalam contoh ini, profil pengguna, pesanan, dan produk berbagi tabel yang sama. Setiap jenis item hanya menggunakan kolom yang relevan dengannya.
DynamoDB Json
File dalam format DynamoDB JSON dapat terdiri dari beberapa objek Item. Setiap objek individual berada dalam format JSON marshall standar DynamoDB, dan baris baru digunakan sebagai pembatas item. Ini adalah format JSON Lines
catatan
Baris baru digunakan sebagai pembatas item untuk file dalam format DynamoDB JSON dan tidak boleh digunakan dalam objek item.
{"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"}}} {"Item": {"Authors": {"SS": ["Author1", "Author2"]}, "Dimensions": {"S": "8.5 x 11.0 x 1.5"}, "ISBN": {"S": "444-444444444"}, "Id": {"N": "104"}, "InPublication": {"BOOL": false}, "PageCount": {"N": "600"}, "Price": {"N": "2000"}, "ProductCategory": {"S": "Book"}, "Title": {"S": "Book 104 Title"}}} {"Item": {"Authors": {"SS": ["Author1", "Author2"]}, "Dimensions": {"S": "8.5 x 11.0 x 1.5"}, "ISBN": {"S": "555-5555555555"}, "Id": {"N": "105"}, "InPublication": {"BOOL": false}, "PageCount": {"N": "600"}, "Price": {"N": "2000"}, "ProductCategory": {"S": "Book"}, "Title": {"S": "Book 105 Title"}}}
Amazon Ion
Amazon Ion
Saat Anda mengimpor data dalam format Ion, jenis data Ion dipetakan ke jenis data DynamoDB di tabel DynamoDB baru.
| S. Tidak. | Konversi jenis data Ion ke DynamoDB | B |
|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Item dalam file Ion dibatasi oleh baris baru. Setiap baris dimulai dengan penanda versi Ion, diikuti dengan item dalam format Ion.
catatan
Dalam contoh berikut, kami telah memformat item dari Ion-formatted file pada beberapa baris untuk meningkatkan 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" } }, { Item:{ Authors:$dynamodb_SS::["Author1","Author2"], Dimensions:"8.5 x 11.0 x 1.5", ISBN:"444-4444444444", Id:104., InPublication:false, PageCount:6d2, Price:2d3, ProductCategory:"Book", Title:"Book 104 Title" } }, { Item:{ Authors:$dynamodb_SS::["Author1","Author2"], Dimensions:"8.5 x 11.0 x 1.5", ISBN:"555-5555555555", Id:105., InPublication:false, PageCount:6d2, Price:2d3, ProductCategory:"Book", Title:"Book 105 Title" } } ]