MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

Migrasi MongoDB ke DynamoDB, Bagian 2

AWS Database Migration Service (DMS) menambahkan dukungan untuk dua database NoSQL pada tahun 2017:MongoDB sebagai database sumber dan AWS DynamoDB sebagai database target. Dalam tutorial dua artikel, kami memigrasikan database MongoDB ke DynamoDB di DMS. Di artikel pertama, “Migrating MongoDB to DynamoDB, Part 1,” kami membuat kumpulan replika MongoDB dan tabel DynamoDB. Dalam artikel lanjutan ini, kita akan membahas membuat dan menjalankan migrasi DMS untuk memigrasikan data.

Artikel ini memiliki bagian berikut:

  • Membuat Migrasi DMS
  • Menjalankan Migrasi
  • Melanjutkan Migrasi
  • Menghapus Migrasi
  • Kesimpulan

Membuat Migrasi DMS

Selanjutnya, kita akan membuat migrasi DMS untuk memigrasikan database MongoDB ke DynamoDB. Masuk sebagai pengguna IAM (dvohra atau lainnya) yang dibuat untuk DMS dan pilih DMS di AWS Management Console. Klik Buat migrasi di Dasbor DMS, seperti yang ditunjukkan pada Gambar 1.


Gambar 1: Buat migrasi

Klik Berikutnya di halaman Selamat Datang DMS, seperti yang ditunjukkan pada Gambar 2.


Gambar 2: Selamat datang>Selanjutnya

Buat instance replikasi dialog akan ditampilkan, seperti yang ditunjukkan pada Gambar 3, di mana kita mengonfigurasi instance replikasi untuk memulai koneksi antara database sumber dan target, mentransfer data, dan menyimpan semua perubahan pada database sumber selama pemuatan awal.


Gambar 3: Buat instance replikasi

Tentukan nama instance replikasi di Name bidang, pilih Kelas instance , pilih VPC , dan pilih opsi apakah Multi-AZ contoh replikasi akan dibuat. Deskripsi , yang biasanya opsional dalam pengaturan yang dapat dikonfigurasi, adalah bidang yang wajib diisi. Pengaturan default disediakan untuk semua bidang ini kecuali VPC. Pengaturan instance replikasi yang digunakan ditunjukkan pada Gambar 4.


Gambar 4: Pengaturan contoh replikasi

Pilih opsi untuk membuat instance replikasi Dapat diakses oleh publik dan klik Lanjutan untuk mengkonfigurasi parameter lanjutan, seperti yang ditunjukkan pada Gambar 5.


Gambar 5: Menyetel instance replikasi sebagai dapat diakses publik

Dalam Lanjutan bagian, pengaturan default disediakan untuk semua bidang (lihat Gambar 6).


Gambar 6: Setelan Lanjutan

Pengaturan default, kecuali kunci master KMS, yang harus disetel ke kunci enkripsi (dms) yang dibuat sebelum masuk sebagai pengguna IAM (dvohra), cocok untuk instance replikasi apa pun, seperti yang ditunjukkan pada Gambar 7. Klik Berikutnya.


Gambar 7: Setelan Lanjutan>Selanjutnya

Instance replikasi mulai dibuat, seperti yang ditunjukkan oleh pesan yang ditunjukkan pada Gambar 8. Tentukan titik akhir database berikutnya saat instance replikasi sedang dibuat. Namun, titik akhir database tidak dapat diuji hingga instance replikasi dibuat.


Gambar 8: Instance Replikasi sedang dibuat

Untuk Mesin sumber , pilih mongodb database, seperti yang ditunjukkan pada Gambar 9.


Gambar 9: Memilih Mesin Sumber sebagai mongodb

Untuk Mesin target , pilih dinamodb database, seperti yang ditunjukkan pada Gambar 10.


Gambar 10: Memilih Mesin Target sebagai dynamodb

Pengidentifikasi Titik Akhir dapat disimpan sebagai default untuk database sumber dan target, tetapi parameter koneksi lainnya perlu ditentukan. Untuk Detail koneksi database sumber , tentukan Nama server sebagai IP Pribadi (Gambar 21 di artikel pertama, “Migrating MongoDB to DynamoDB, Part 1“) dari instance CoreOS EC2 di mana kumpulan replika MongoDB mulai menggunakan Docker dan tentukan Port sebagai 27017 (lihat Gambar 11). Pilih “tidak ada” untuk mode SSL dan Mode autentikasi . Tentukan Nama basis data sebagai pengujian dan pilih Mekanisme otentikasi sebagai default .


Gambar 11 Detail Koneksi Basis Data Sumber

Untuk mesin basis data sumber, mongodb , pilih Mode metadata sebagai dokumen dan pilih opsi _id sebagai kolom terpisah , seperti yang ditunjukkan pada Gambar 12. Jalankan tes tombol digunakan untuk menguji koneksi database sumber dan target dan tidak diaktifkan hingga instance replikasi telah dibuat.


Gambar 12: Pengaturan Lain untuk Mesin Sumber

Salin Role ARN untuk dms-vpc-role dari Konsol IAM, seperti yang ditunjukkan pada Gambar 13. Peran ARN akan digunakan untuk menentukan koneksi database target untuk migrasi DMS.


Gambar 13: Menyalin Peran ARN

Salin dan tempel ARN Peran di ARN Peran Akses Layanan bidang, seperti yang ditunjukkan pada Gambar 14.


Gambar 14: Peran Akses Layanan ARN

Ketika instance replikasi telah dibuat, sebuah pesan yang menunjukkan hal yang sama akan ditampilkan, seperti yang ditunjukkan pada Gambar 15.


Gambar 15: Contoh replikasi dibuat

Untuk database target, klik Jalankan pengujian untuk menguji koneksi. Jika koneksi dibuat, pesan “Koneksi berhasil diuji” akan ditampilkan (lihat Gambar 16).


Gambar 16: Koneksi Database Target berhasil diuji

Demikian pula, klik Jalankan pengujian untuk database sumber, dan pesan “Koneksi berhasil diuji” akan ditampilkan jika koneksi dibuat, seperti yang ditunjukkan pada Gambar 17.


Gambar 17: Koneksi Basis Data Sumber berhasil diuji

Klik Berikutnya di Titik akhir basis data , seperti yang ditunjukkan pada Gambar 18.


Gambar 18: Titik Akhir Basis Data>Selanjutnya

Selanjutnya, konfigurasikan tugas migrasi di Buat tugas halaman. Tugas terdiri dari beberapa pengaturan, termasuk nama tugas, deskripsi tugas, titik akhir sumber, titik akhir target, contoh replikasi, jenis migrasi, pengaturan tugas, pemetaan tabel, dan pengaturan lanjutan. Setelan default untuk Nama tugas dan setelan yang tidak dapat dimodifikasi untuk Sumber endpoint , Titik akhir target , Contoh replikasi , dan Jenis migrasi ditunjukkan pada Gambar 19.


Gambar 19: Buat Pengaturan tugas

Tambahkan deskripsi yang sesuai dan pilih Jenis migrasi dari daftar tarik-turun yang ditunjukkan pada Gambar 20. Opsi yang berbeda untuk jenis Migrasi adalah Migrasikan data yang ada , Migrasikan data yang ada dan replika perubahan yang sedang berlangsung , dan Hanya meniru perubahan data . Untuk memigrasikan data yang ada dari MongoDB ke DynamoDB dengan ketentuan untuk mereplikasi perubahan yang sedang berlangsung, pilih Migrasikan data yang ada dan replika perubahan yang sedang berlangsung . Tugas migrasi setelah dibuat memiliki ketentuan yang akan dimodifikasi selanjutnya kecuali untuk Jenis migrasi pengaturan, yang tidak dapat dimodifikasi setelah tugas migrasi dibuat. Oleh karena itu, pilih jenis Migrasi dengan menganggapnya sebagai setelan permanen.


Gambar 20: Memilih jenis Migrasi

Pilih Setelan Tugas untuk Mode persiapan tabel target , Hentikan tugas setelah beban penuh selesai , Sertakan kolom LOB dalam replikasi , dan Aktifkan pencatatan (lihat Gambar 21).


Gambar 21: Pengaturan Tugas

Klik Setelan Lanjutan , seperti yang ditunjukkan pada Gambar 22, untuk mengonfigurasi setelan lanjutan, yang mencakup Tabel kontrol setelan dan Penyetelan pengaturan. Pengaturan lanjutan default dapat disimpan.


Gambar 22: Setelan Lanjutan

Di Pemetaan tabel , konfigurasikan aturan pemilihan, seperti yang ditunjukkan pada Gambar 23. Setidaknya satu aturan pemilihan dengan Sertakan tindakan diperlukan. Pilih Nama skema (tes) di sumber DMS MongoDB. Nama skema sama dengan nama database MongoDB, yaitu test . Tentukan Nama tabel seperti '%', yang memilih semua tabel. Sebuah meja juga disebut koleksi di MongoDB. Pilih Tindakan sebagai Sertakan , yang menyertakan objek yang dipilih oleh aturan pemilihan. Tindakan Pengecualian diproses setelah Tindakan Penyertaan.


Gambar 23: Pemetaan Tabel

Filter sumber untuk membatasi jumlah dan jenis catatan yang ditransfer dari sumber ke target juga dapat dikonfigurasi. Klik Tambahkan aturan pemilihan , seperti yang ditunjukkan pada Gambar 24.


Gambar 24: Tambahkan aturan pemilihan

Aturan transformasi dapat ditambahkan untuk membuat huruf besar/kecil, dan menambah/menghapus transformasi awalan/akhiran. Jika Logging telah diaktifkan, DMS membuat peran untuk masuk ke CloudWatch. Membuat tugas secara implisit memberikan izin yang diperlukan untuk mengakses dan masuk ke CloudWatch. Klik Buat tugas , seperti yang ditunjukkan pada Gambar 25.


Gambar 25: Buat tugas

Tugas migrasi mulai dibuat (lihat Gambar 26). Awalnya, Status adalah “Menciptakan”. Status akan diperbarui secara otomatis dan opsi untuk mengklik tombol segarkan untuk menyegarkan status secara berkala juga disediakan.


Gambar 26: Tugas migrasi mulai dibuat

Saat tugas dibuat, Status menjadi Siap , seperti yang ditunjukkan pada Gambar 27.


Gambar 27: Status Tugas Siap

Peran IAM untuk akses dan pencatatan CloudWatch dibuat secara otomatis, seperti yang ditunjukkan pada Gambar 28.


Gambar 28: Peran IAM untuk CloudWatch Logs

Menjalankan Migrasi

Untuk menjalankan tugas migrasi, klik Mulai/Lanjutkan , seperti yang ditunjukkan pada Gambar 29.


Gambar 29: Mulai/Lanjutkan tugas

Status Tugas menjadi Mulai , seperti yang ditunjukkan pada Gambar 30.


Gambar 30: Tugas Dimulai

Saat tugas selesai berjalan, Tabel dimuat kolom mencantumkan jumlah tabel yang dimuat sebagai 1, Status menjadi Berhenti , % Lengkap harus menunjukkan 100 , seperti yang ditunjukkan pada Gambar 31. Sebagai Jenis kolom menunjukkan, jenis migrasi adalah Pemuatan Penuh &Replikasi Berkelanjutan .


Gambar 31: Beban Penuh Selesai

Selain Tabel dimuat kolom, Tabel dimuat , Tabel diantrekan , dan Tabel salah juga terdaftar, seperti yang ditunjukkan pada Gambar 32.


Gambar 32: Pemuatan tabel, Tabel antri, dan Tabel error semuanya 0

Di DynamoDB, wlslog tabel mencantumkan tujuh item, seperti yang ditunjukkan pada Gambar 33. Dua tabel lainnya, awsdms_apply_exceptions dan awsdms_full_load_exceptions , juga dibuat secara otomatis. Tabel awsdms_apply_exceptions menyediakan detail pengecualian, termasuk nama dan deskripsi kesalahan, pernyataan yang dijalankan saat kesalahan terjadi, nama tugas, pemilik tabel, nama tabel, dan waktu pengecualian. Tabel awsdms_full_load_exceptions memberikan informasi tentang pengecualian yang dihasilkan setelah pemuatan penuh.


Gambar 33: Tabel wlslog mencantumkan tujuh item

Klik _id untuk menampilkan dokumen (_doc nilai atribut), seperti yang ditunjukkan pada Gambar 34.


Gambar 34: Dokumen untuk item yang disimpan di DynamoDB

Filter DynamoDB dapat digunakan untuk memfilter pencarian. Sebagai contoh, cari _id specific tertentu dengan menentukan _id sebagai bidang, pilih String sebagai jenis bidang, memilih '=' sebagai operator filter, dan menentukan _id pencarian, seperti yang ditunjukkan pada Gambar 35. Klik Mulai Pencarian .


Gambar 35: Menerapkan Filter

Data baris tabel DynamoDB untuk _id tertentu akan terdaftar (lihat Gambar 36).


Gambar 36: Data yang Difilter untuk _id

tertentu

Setelah tugas migrasi selesai memigrasi database, status tugas menjadi Berhenti , tetapi Titik Akhir migrasi masih Aktif , seperti yang ditunjukkan pada Gambar 37.


Gambar 37: Titik Akhir Aktif bahkan setelah migrasi selesai dan tugas dihentikan

Melanjutkan Migrasi

Tugas migrasi yang telah berhenti dapat dimulai ulang atau dilanjutkan. Berikut adalah beberapa alasan untuk melanjutkan atau memulai kembali tugas:

  • Sebuah dokumen baru telah ditambahkan ke koleksi yang ada (juga disebut tabel ) di basis data MongoDB sumber DMS
  • Koleksi (tabel) baru telah ditambahkan di database MongoDB
  • Migrasi perlu dijalankan kembali dengan aturan pemilihan yang berbeda, yang mungkin diperlukan, sebagai contoh, jika awalan tabel perlu ditambahkan menggunakan aturan transformasi.

Sebagai contoh, tambahkan tiga dokumen lagi ke wlslog koleksi di Mongo CLI.

doc8 = {"timestamp":"Apr 8, 2014 7:06:23 PM PDT",
   "category":"Notice","type":"WebLogicServer",
   "servername":"AdminServer","code":"BEA-000360",
   "msg":"Server in RUNNING mode"}
doc9 = {"timestamp":"Apr 8, 2014 7:06:24 PM PDT",
   "category":"Notice","type":"WebLogicServer",
   "servername":"AdminServer","code":"BEA-000365",
   "msg":"Server Stopping"}
doc10 = {"timestamp":"Apr 8, 2014 7:06:25 PM PDT",
   "category":"Notice","type":"WebLogicServer",
   "servername":"AdminServer","code":"BEA-000361",
   "msg":"Server Resumed"}
db.wlslog.insert([doc8,doc9,doc10])

Seperti yang ditunjukkan oleh output pada Gambar 38, ketiga dokumen tersebut akan ditambahkan.


Gambar 38: Menambahkan tiga dokumen lagi

Klik Mulai/Lanjutkan untuk melanjutkan tugas yang dihentikan, seperti yang ditunjukkan pada Gambar 39.


Gambar 39: Mulai/Lanjutkan untuk tugas yang dihentikan

Di Mulai tugas dialog, dua opsi disediakan:Mulai atau Mulai ulang . Mulai opsi memulai tugas dan memuat tabel atau koleksi baru yang ditambahkan ke sumber DMS. Mulai opsi juga memuat tabel apa pun yang hanya dimuat sebagian dalam proses sebelumnya. Mulai opsi tidak memuat data (baru atau lama) ke dalam tabel yang telah dimuat sepenuhnya ke dalam database target. Mulai Ulang pilihan restart tugas dan menghapus data yang ada di database target dan restart beban penuh. Akibatnya, Mulai Ulang opsi memuat data baru yang ditambahkan ke tabel yang ada selain memuat tabel baru yang ditambahkan di sumber DMS. Karena kita menambahkan data baru ke tabel yang ada, kita perlu memilih Restart opsi dan klik Mulai tugas , seperti yang ditunjukkan pada Gambar 40.


Gambar 40: Memulai ulang tugas

Tugas dimulai ulang, menghapus tabel yang ada di database target, dan memuat semua data dari database sumber ke database target. Saat pemuatan data selesai, status tugas menjadi Pemuatan selesai (lihat Gambar 41).


Gambar 41: Muat selesai

Klik tombol segarkan di DynamoDB, seperti yang ditunjukkan pada Gambar 42.


Gambar 42: Menyegarkan Data di tabel wlslog

Jumlah item yang terdaftar adalah 10, seperti yang ditunjukkan pada Gambar 43, bukan tujuh sebelum memulai kembali tugas. Tiga item baru yang kami tambahkan membuat total item menjadi 10.


Gambar 43: Mencantumkan 10 item setelah menambahkan item baru dan menyegarkan data

Data baru yang dimigrasikan dibedakan dari data yang dimuat dalam 1 yang dijalankan oleh awalan yang berbeda; data yang dimuat dalam 1 run memiliki awalan 59401 di _id dan data yang dimuat dalam 2 run memiliki awalan 59402 . Filter opsi dapat digunakan untuk mendaftar hanya data baru, seperti yang ditunjukkan pada Gambar 44.


Gambar 44: Memfilter Data untuk mencantumkan hanya tiga item baru

Status tugas kembali menjadi Berhenti setelah data baru dimigrasikan, seperti yang ditunjukkan pada Gambar 45.


Gambar 45: Status menjadi Berhenti setelah Pemuatan Penuh selesai

Menghapus Migrasi

Untuk menghapus migrasi, pilih migrasi dan klik Hapus (lihat Gambar 46).


Gambar 46: Hapus

Dalam Hapus tugas dialog, klik Hapus , seperti yang ditunjukkan pada Gambar 47.


Gambar 47: Hapus verifikasi tugas

Status tugas menjadi Menghapus , seperti yang ditunjukkan pada Gambar 48, sebelum tugas dihapus.


Gambar 48: Penghapusan Tugas

Menghapus tugas tidak menghapus titik akhir DMS yang digunakan; ini berarti tugas baru dapat dibuat.

Kesimpulan

Dalam dua artikel, kami membahas tentang migrasi database MongoDB ke tabel DynamoDB menggunakan AWS Database Migration Service.


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Apa keuntungan menggunakan database bebas skema seperti MongoDB dibandingkan dengan database relasional?

  2. Pengindeksan pada bidang yang ada dalam larik subdokumen

  3. Bisakah mongorestore mengambil argumen url tunggal alih-alih argumen terpisah?

  4. MongoDB:bagaimana menemukan 10 dokumen acak dalam koleksi 100?

  5. Bagaimana Menemukan Indeks yang Tidak Digunakan di MongoDB?