View a markdown version of this page

Format impor Amazon S3 untuk DynamoDB - Amazon DynamoDB

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 (JSONL): satu objek JSON per baris, tanpa array terlampir dan tidak ada koma di antara item. Sebagai fitur tambahan, ekspor dari titik waktu tertentu didukung sebagai sumber impor secara default.

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 adalah format serialisasi data hierarkis yang kaya jenis, dapat dijelaskan sendiri, yang dibuat untuk mengatasi tantangan perkembangan pesat, pemisahan, dan efisiensi yang dihadapi setiap hari saat merekayasa arsitektur berorientasi layanan berskala besar.

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

1

Ion Data Type

DynamoDB Representation

2

string

String (s)

3

bool

Boolean (BOOL)

4

decimal

Number (N)

5

blob

Binary (B)

6

list (with type annotation $dynamodb_SS, $dynamodb_NS, or $dynamodb_BS)

Set (SS, NS, BS)

7

list

List

8

struct

Map

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