Impor

DynoTable mengimpor file CSV, JSON, dan NDJSON ke tabel yang sudah ada — separuh lainnya dari Ekspor. Seluruh file diperiksa sebelum satu baris pun ditulis, jadi file yang bermasalah gagal disertai nomor baris, bukan meninggalkan data Anda separuh terimpor.

Buka dengan tombol Import di toolbar tabel. Import menulis ke tabel, jadi ia butuh lisensi Trialing atau Active.

Dialog impor DynamoDB DynoTable: file yang dipilih, kolom yang terdeteksi beserta tipe yang diduga, dan pratinjau baris pertama.
Dialog impor DynamoDB DynoTable: file yang dipilih, kolom yang terdeteksi beserta tipe yang diduga, dan pratinjau baris pertama.

Import memuat data ke tabel yang sudah ada — ia tidak pernah membuat tabel baru. Buat dulu tabelnya (beserta kunci utama-nya), baru impor ke sana.

Dua tingkat fidelitas

ExactJSON / NDJSON yang ditulis dalam bentuk wire (DynamoDB-JSON). Tidak ada yang ditebak: setiap nilai sudah membawa tipenya sendiri, sehingga ekspor yang diambil dalam format ini diimpor kembali tanpa berubah. Ini format yang dipakai saat datanya penting.

ConvenienceCSV dan JSON polos (unmarshalled). Keduanya tidak membawa informasi tipe, jadi DynoTable menduga tipe per kolom dan menunjukkan apa yang dipilihnya sebelum Anda commit. Praktis, dan lossy dengan cara yang terdokumentasi — lihat Di mana file convenience kehilangan informasi.

Kolom dan tipe

Header file menjadi nama atribut. Pratinjau mendaftar setiap kolom beserta tipe yang diduga DynoTable. Klik kanan sebuah header kolom untuk rename jika headernya tidak cocok dengan nama atribut Anda, atau untuk mengubah Data type-nya saat yang diduga bukan yang Anda inginkan — misalnya kode produk yang hanya terdiri dari digit, yang harus tetap teks alih-alih menjadi angka.

Daftar tipe hanya menawarkan apa yang benar-benar bisa dijadikan nilai kolom itu, jadi kolom teks polos tidak akan menawarkan Map atau List. Jika sebuah kolom hanya punya satu kemungkinan tipe, tidak ada daftar yang muncul. Tidak ada layar pemetaan di luar ini.

File Anda harus menyediakan kunci utama lengkap tabelnya. Baris yang kehilangan atribut kunci, atau membawa tipe yang salah untuknya, ditolak dengan menyebutkan namanya.

Tidak ada yang ditulis sampai seluruh file lolos

Import membaca file dua kali. Pass pertama memvalidasi setiap baris dan tidak menulis apa pun; hanya jika file lolos, pass kedua menulis.

  • Masalah dilaporkan dengan nomor baris (atau posisi item, untuk array JSON), hingga 20 sekaligus.
  • Dua baris dengan key yang sama dalam satu file ditolak, dan Anda ditunjukkan kedua posisinya — DynamoDB akan diam-diam hanya menyimpan yang terakhir.
  • Perbaiki filenya dan tekan Import lagi; dialog tetap berada di file yang Anda pilih.

Import menggantikan item yang cocok

Baris yang diimpor menggantikan item yang ada dengan kunci utama yang sama, atribut demi atribut — ia tidak digabung ke dalamnya. Atribut yang dimiliki item lama dan tidak ada di file akan hilang.

Import juga tidak melalui staging, jadi tidak ada langkah tinjauan dan tidak ada revert. Berbeda dari suntingan yang di-stage, sebuah import tidak bisa diurungkan dari riwayat aplikasi. Untuk data yang penting bagi Anda, impor dulu ke salinan tabel dan periksa hasilnya.

Batasan

BatasanNilai
Ukuran file CSV / NDJSON250 MB
Satu array .json50 MB — pakai NDJSON di atas itu
Baris per import2.000.000
Satu item400 KB (batas atas DynamoDB sendiri)

File .json menyimpan satu array besar yang harus diparsing utuh, itu sebabnya batasnya lebih rendah. NDJSON — satu item per baris — di-stream sebagai gantinya, jadi ia memakai penuh 250 MB.

Di mana file convenience kehilangan informasi

Ini berlaku untuk CSV dan JSON polos saja. Format DynamoDB-JSON yang marshalled tidak mengalami satu pun dari ini.

  • Tipe diduga dari sampel sekitar 200 baris pertama. Kolom yang di sana terlihat numerik tapi kemudian menjadi non-numerik lebih jauh di dalam file ditolak saat validasi — perbaikannya adalah membetulkan filenya.
  • Set dan binary tidak bisa diekspresikan dalam CSV, jadi keduanya tidak bisa diimpor darinya.
  • Sel kosong dilewati, bukan ditulis sebagai string kosong. Sebuah item cukup tidak memiliki atribut itu.
  • Map dan list selamat dalam perjalanan. Export menulisnya ke dalam sel CSV sebagai teks JSON, dan import mengenali teks itu lalu membangun ulang strukturnya. Jika sebuah kolom memang benar-benar teks yang kebetulan terlihat seperti JSON, pratinjau menunjukkan apa yang terjadi dan Anda bisa mengatur Data type kolom itu kembali ke String.
  • Angka yang sangat besar dalam JSON polos kehilangan presisi sebelum DynoTable sempat melihatnya — itu keterbatasan JSON sendiri. Pakai DynamoDB-JSON untuk ID dan jumlah yang harus tetap tepat.
  • Tanda keamanan spreadsheet ditangani saat kembali masuk. Export membubuhkan apostrof di depan sel yang akan dianggap spreadsheet sebagai formula. Saat import, '-5 menjadi angka -5 dan '+7 kembali sebagai teks +7 — tapi formula sungguhan seperti '=SUM(A1) mempertahankan apostrofnya, secara permanen. Menghapusnya akan mempersenjatai kembali hal yang tanda itu ada untuk dijinakkan.

Progres, pembatalan, dan kegagalan

Import yang sedang berjalan muncul di dock Aktivitas di bagian bawah sidebar dengan progres langsung, dan terus berjalan sementara Anda bekerja di tab lain. Anda bisa Stop-kan dari sana; baris yang sudah tertulis tetap tertulis.

Jika DynamoDB men-throttle tabel cukup keras sehingga sebagian baris tidak bisa ditulis meski sudah dicoba ulang, import selesai dan memberi tahu berapa banyak baris yang tidak bisa ditulis. Menjalankan ulang file yang sama aman — baris yang berhasil masuk cukup ditulis ulang dengan nilai yang sama.

Entri import tetap ada di dock sampai Anda menutupnya: sebuah import tidak menghasilkan file untuk ditunjuk, jadi baris itu adalah satu-satunya catatan bahwa proses telah selesai.

Diperbarui