Membuat Aplikasi Migrasi Table Database MySQL ke MongoDB dengan Python: Teknik Transformasi Data

Beberapa tahun terakhir database telah memasuki era baru di mana database NoSQL sudah menjadi sebuah kebutuhan dalam industri teknologi informasi. Banyaknya kebutuhan untuk dapat menyimpan data yang bervariasi, cepat dan banyak membuat NoSQL semakin menjadi pilihan. Pada akhirnya kebutuhan untuk melakukan pemindahan data dan migrasi dari database relational sepertu MySQL ke NoSQL seperti MongoDB semakin dibutuhkan.

Masalahnya, melakukan migrasi database harus dilakukan dengan hati-hati agar data yang dipindahkan benar-benar sesuai dengan yang diharapkan baik dari segi schema dan kelengkapannya, sehingga data tetap valid untuk digunakan. Beruntungnya, sudah ada beberapa penelitian yang membahas cara memindahkan data dari database relasional MySQL ke NoSQL Mongodb. Salah satunya akan kita gunakan sebagai referensi untuk membuat aplikasi migrasi database pada tutorial ini.

Pada tutorial ini, kita akan membuat aplikasi untuk memindahkan data dan migrasi data pada sebuah table MySQL ke MongoDB. Tutorial ini dibuat dengan merujuk penelitian:

M. N. Y. Utomo and R. Nur, “Migrasi Table Basis Data Relasional ke Collection Basis Data NoSQL dengan Teknik Transformasi Data,” Seminar Nasional Hasil Penelitian & Pengabdian Kepada Masyarakat, SNP2M 2020, pp. 23-28, 2020.

Gambar 1. Psoude Code Aplikasi Migrasi Database MySQL ke MongoDB (Sumber Gambar)

Download paper lengkap: Download Paper

Penelitian diatas memperlihatkan model migrasi database MySQL ke MongoDB yang bisa dibuat dengan bahasa Python. Langkah-langkah pembuatannya sebagai berikut:

1. Install Python

Versi Python yang digunakan adalah versi Python 3.x, jika Anda menggunakan Linux Ubuntu maka sudah langsung terinstall. Jika menggunakan Windows maka dapat menginstall dengan mendownload Python terlebih dahulu pada situs resminya. Contoh versi Python yang digunakan pada tutorial ini:

Gambar 2. Versi Python yang Digunakan 3.x

2. Install Dependensi Paket

Terdapat dua paket yang dibutuhkan yaitu:
– MySQl Connector Python, install dengan perintah CMD: pip install mysql-connector-python
– Mongo Connector Python, install dengan perintah CMD: pip install pymongo

Gambar 3. Paket Pendukung Sudah Terinstall

3. Siapkan Database MySQL

Anda harus memiliki database MySQL, jika belum menginstall harap install terlebih dahulu. Kemudian pastikan sudah memiliki database yang ingin dipindahkan ke MongoDB. Untuk percobaan Anda dapat menggunakan database tutorial yang dapat di download disini. Setelah import hasilnya kurang lebih seperti ini:

Gambar 4. Database MySQL

4. Siapkan Database MongoDB

Anda juga harus sudah memiliki database MongoDB yang berjalan, silahkan install dahulu jika belum punya. Kemudian jalan MongoDB dengan perintah mongod dan pastikan database MongoDB nya berjalan seperti gambar dibawah:

Gambar 5. Menjalankan database MongoDB
Gambar 6. Tampilan Isi MongoDB melalui Interface Robo3T

5. Buat File Python dengan Nama: mysqltomongodb.py

Buat satu buah file Python untuk menyimpan codingan migrasi kita. Isi file python ini dengan code berikut:

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

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

Hal lain yang perlu diperhatikan dari code diatas adalah proses migrasinya yang menggunakan teknik transformasi data. Sebagaimana tertulis pada paper migrasi database yang kita rujuk, transformasi data yang diterapkan ialah: Melakukan transformasi data dengan pairing pembentukan Key-Value. Artinya, data yang sebelumnya tersimpan sebagai table pada database MySQL di ubah menjadi bentuk Key-Value Pair agar sesuai dengan format MongoDB.

6. Jalankan Python

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

Gambar 7. Eksekusi Aplikasi Migrasi MySQL ke MongoDB

*Table target bernama “data_barang”, silahkan bisa diubah di codingan langkah 6.

7. Lihat Hasil Migrasi

Hasil migrasi table database bisa dilihat sesuai gambar dibawah:

Gambar 8. Data pada Table “data_barang” di Database MySQL
Gambar 9. Hasil Migrasi MySQL ke MongoDB

Seluruh kode yang ada pada tutorial ini juga dapat didownload pada Github: MySQLtoMongo Versi 1

Perubahan pada kode dapat dilakukan sesuai kebutuhan dengan mereferensi paper penelitian diatas.

Model migrasi yang dibahas pada tutorial ini masih memiliki kekurangan yaitu hanya memindahkan 1 (satu) table saja. Kekurangan ini bisa diatasi dengan melakukan deteksi jumlah table dengan memanfaatkan MetaData SQL, kita membahas solusinya pada tutorial ini.

Selamat mencoba.

One thought on “Membuat Aplikasi Migrasi Table Database MySQL ke MongoDB dengan Python: Teknik Transformasi Data

  1. bang izin tanya, jika datanya setiap hari bertambah, bagaimana mengatasinya untuk data yang selalu update tersebut jadi nosql juga data terbarukan tersebut?
    terima kasih

Comments are closed.