Memigrasikan data antara repositori heterogen - yaitu, tempat sumber dan target database berada dalam sistem manajemen database yang berbeda dari penyedia yang berbeda - menghadirkan beberapa tantangan. Dalam beberapa kasus, dimungkinkan untuk terhubung ke kedua database secara bersamaan. Namun, ada kalanya hal itu tidak memungkinkan. Ketika dihadapkan dengan dilema seperti itu, praktisi database tidak punya pilihan selain mengisi tabel dari file dump. Navicat dapat sangat membantu dalam proses tersebut. Panduan Impor memungkinkan Anda mengimpor data ke tabel/koleksi dari berbagai sumber, termasuk CSV, TXT, XML, DBF, dan lainnya. Selain itu, Anda dapat menyimpan pengaturan Anda sebagai profil untuk penggunaan di masa mendatang atau pengaturan tugas otomatisasi. Dalam blog hari ini, kita akan menggunakan Panduan Impor Navicat untuk memigrasikan data dari PostgreSQL "dvdrental" database ke instans MySQL 8 menggunakan Navicat Premium Lite 17 GRATIS.
Untuk tutorial ini, kita akan mengisi tabel film di MySQL 8 menggunakan file DAT PostgreSQL. Berikut definisi tabel di Table Designer:

Untuk meluncurkan Import Wizard, klik kanan tabel target di Navicat Navigation Pane (atau Ctrl-Klik di macOS) dan pilih "Import Wizard..." dari isi menu:

Layar pertama wizard adalah tempat kita memilih file sumber. Perhatikan bahwa edisi Lite hanya mendukung file berbasis teks, seperti TXT, CSV, XML, dan JSON. Meskipun kita memiliki file .dat, kita dapat memilih opsi File teks, yang mencakup format .txt, .csv, dan .dat:

Pada layar berikutnya, kita akan memilih berkas DAT. Ada satu berkas untuk setiap tabel. Berkas untuk tabel film diberi nama "3061.dat":

Berikutnya saatnya untuk menetapkan pembatas. Rekaman dibatasi menggunakan karakter Line Feed (LF), sementara kolom dipisahkan menggunakan karakter TAB. Tidak ada tanda kutip di sekitar value teks, jadi pastikan untuk menghapus karakter tanda kutip ganda (") dari kotak teks "Text Qualifier":

Pada layar berikutnya, Anda akan menemukan beberapa opsi tambahan. Di sini, kita harus menghapus centang pada kotak "Field Name Row" karena berkas DAT tidak menyertakan nama field. Kita juga perlu mengubah Urutan Tanggal menjadi Tahun/Bulan/Tanggal ("YMD") dan mengganti pemisah garis miring (/) dengan tanda hubung (-) karena tanggal yang akan kita impor menggunakan format YYYY-MM-DD hh:mm:ss.ms, yaitu 2013-05-26 14:50:58.951:

Kita memiliki pilihan untuk memilih tabel yang sudah ada atau membuat yang baru. Karena kita memilih tabel target saat meluncurkan Panduan Impor, tabel tersebut akan ditampilkan di sini:

Langkah berikutnya adalah memetakan kolom sumber ke kolom yang ada di tabel tujuan. Di sini, kita tidak boleh berasumsi bahwa kolom-kolom tersebut akan sejajar. Sekilas pandang pada entri di berkas DAT menunjukkan bahwa kolom last_update dan special_features terbalik:
5 African Egg A Fast-Paced Documentary of a Pastry Chef And a Dentist who must Pursue a Forensic Psychologist in The Gulf of Mexico 2006 1 6 2.99 130 22.99 G 2013-05-26 14:50:58.951 {"Deleted Scenes"} 'african':1 'chef':11 'dentist':14 'documentari':7 'egg':2 'fast':5 'fast-pac':4 'forens':19 'gulf':23 'mexico':25 'must':16 'pace':6 'pastri':10 'psychologist':20 'pursu':17
Kita dapat mengklik kanan (atau Ctrl-Klik di macOS) di mana saja dalam dialog dan memilih "Direct Match All" dari menu konteks untuk memetakan kolom dengan cepat ke kolom yang ada di tabel target. Namun, setelah selesai, kita harus memilih kolom last_update dan special_features secara manual dari menu tarik-turun kolom Target untuk mengubah urutannya:

Perhatikan bahwa kolom 13 (f13) dapat diabaikan dengan aman.
Untuk Mode Impor, kita dapat Menambahkan atau Menyalin rekaman, karena tabel harus kosong:

Saat melakukan migrasi dari satu jenis database ke jenis database lain, ada kemungkinan besar akan terjadi kesalahan konversi data. Oleh karena itu, sebaiknya batalkan pilihan pada kotak Advanced "Use extended insert statements". Tindakan tersebut menyebabkan Navicat mengeluarkan pernyataan INSERT terpisah untuk setiap rekaman, alih-alih menggabungkan beberapa baris menggunakan sintaksis seperti:
INSERT INTO `film` VALUES (1, 'African Egg', 'A Fast-Paced...'), (2, 'Rumble Royale', 'A historical drama...'), (3, 'Catherine the Great', 'A new take on...'), etc...

Sekarang, saatnya menekan tombol Start untuk memulai proses impor.
Seperti yang diharapkan, ada beberapa kesalahan (tepatnya 3), tetapi 1000 dari 1003 baris telah ditambahkan ke tabel target!

Kesimpulan
Navicat Import Wizard dapat secara drastis mengurangi jumlah waktu yang dihabiskan untuk memigrasikan data antar repositori heterogen. Mendukung berbagai input, termasuk CSV, TXT, XML, DBF, Sumber Data ODBC, dan banyak lagi.
Tertarik mencoba Navicat Premium Lite 17? Anda dapat mengunduhnya secara gratis di sini. Tersedia untuk sistem operasi Windows, macOS, dan Linux.