Membuat Aplikasi Migrasi Database MySQL ke MongoDB dengan Python (Versi 2: Memanfaatkan Metadata SQL)

Pada artikel sebelumnya kita sudah membahas bagaimana cara membuat aplikasi migrasi database dari database relasional MySQL ke NoSQL database MongoDB. Kekurangan pada artikel sebelumnya ialah hanya bisa memindahkan 1 (satu) table saja, sehingga untuk memindahkan dua table atau lebih perlu di eksekusi berulang.

Pada artikel ini, masalah diatas akan kita perbaiki. Pada artikel ini kita akan membuat aplikasi migrasi database yang lebih lengkap. Aplikasi yang di bangun dapat memindahkan 1 (satu) database utuh beserta semua tablenya secara otomatis. Aplikasi ini dibangun dengan bahasa Python dan mereferensi penelitian:

M. N. Y. Utomo, “Pengembangan Model Migrasi Database Relational ke NoSQL Memanfaatkan Metadata SQL,” Jurnal Teknologi Elekterika, vol. 17, no. 2, pp. 1-6, 2020.

Gambar 1. Alur Aplikasi Aplikasi Migrasi Database MySQL Ke MongoDB dengan Memanfaatkan Metadata SQL (Sumber Gambar)

Download referensi jurnal penelitian: Download Jurnal

Sebagaimana judul penelitian yang kita rujuk, dapat dilihat bahwa aplikasi migrasi database versi ke-2 ini akan di bangun dengan memanfaatkan Metadata SQL (query: SHOW TABLE, lebih rinci dapat dibaca pada paper penelitian diatas). Peran dari Metadata SQL ini adalah untuk mengetahui table-table apa saja yang ada di dalam sebuah database, ketika table-table yang ada didalam database diketahui, maka proses migrasi database utuh dari MySQL ke MongoDB bisa dilakukan secara otomatis.

Langkah-langkah membuat aplikasi migrasi:

1. Install Python, Install Depensi dan Siapkan Database MySQL dan MongoDB

Langkah pertama adalah Anda harus memiliki Python versi 3x dan telah menginstall package MySQl Connector Python (#> pip install mysql-connector-python) serta Mongo Connector Python (#> pip install pymongo).

Anda juga sudah harus memiliki database MySQL dan MongoDB yang telah berjalan. Siapkan satu database yang akan dipindahkan dari MySQL ke MongoDB. Anda bisa menggunakan database dummy (download db disini). Pastikan kedua database sudah berjalan.

Gambar 2. Target Database Memiliki 3 Table

*Baca tutorial: Membuat Aplikasi Migrasi Table Database MySQL ke MongoDB dengan Python: Teknik Transformasi Data (Langkah 1-4)

2. Buat sebuah file Python: mysqltomongodb-v2.py

Buat sebuah file python dengan nama mysqltomongodb-v2.py lalu isi dengan kode berikut:

Sesuaikan beberapa kode berikut sesuai dengan akses MySQL dan table database yang ingin dimigrasikan:

USER = ‘USERNAME_MYSQL
PASSWORD = ‘ASSWORD_MYSQL
HOST = ‘HOST_MYSQL‘ #(localhost or 127.0.01 for local)
DATABASE = ‘NAMA_DB

Sekilas, kode diatas akan terlihat mirip dengan versi pertama, tapi ada perbedaan dimana kita tidak perlu lagi menuliskan nama table yang ingin dipindahkan. Aplikasi akan mendeteksi semua table yang ada di database untuk dimigrasikan. Proses ini dilakukan pada function migrate (line 58-72). Aplikasi mengambil data semua table dengan perintah SHOW TABLES, kemudian melalukan perulangan untuk migrasi tiap table.

3. Eksekusi Aplikasi Python Migrasi Database

Jalankan Python untuk eksekusi file yang sudah kita buat dengan perintah CMD: python mysqltomongodb-v2.py

Gambar 3. Hasil Eksekusi Python

4. Cek Hasil Migrasi

Mengecek hasil migrasi, hasilnya akan dapat dilihat seperti berikut:

Gambar 4. Database yang Ingin di Migrasikan Memiliki 3 Table
Gambar 5. Hasil Migrasi ke MongoDB Memperlihatkan Semua Table Berhasil di Pindahkan Menjadi 3 Collections MongoDB

Full code aplikasi ini juga dapat di download pada Github mysqltomongodb versi 2.

Pelelitian lanjutan dan pengembangan aplikasi ini dapat dilakukan kedepannya dengan tetap mereferensi jurnal migrasi database rujukan tutorial ini.

Demikian aplikasi migrasi database MySQL ke MongoDB (Relational to NoSQL) dengan Python. Semog bermanfaat.

Selamat Mencoba

Leave a Reply