All Products
Search
Document Center

Data Transmission Service:Migrasi data dari instans ApsaraDB for MongoDB ke klaster PolarDB for MySQL

Last Updated:Mar 29, 2026

Gunakan Data Transmission Service (DTS) untuk memigrasikan data dari replica set ApsaraDB for MongoDB ke klaster PolarDB for MySQL. DTS mendukung migrasi data penuh dan migrasi data inkremental.

Cara kerja

Migrasi dari MongoDB ke PolarDB for MySQL merupakan migrasi lintas-paradigma: MongoDB menyimpan data sebagai dokumen BSON fleksibel, sedangkan PolarDB for MySQL menyimpan data dalam tabel relasional ber-skema tetap. DTS menangani hal ini dengan memungkinkan Anda menentukan pemetaan tingkat field menggunakan ekspresi bson_value().

Untuk setiap koleksi yang dimigrasikan, DTS memetakan setiap field MongoDB ke kolom di tabel tujuan. Contohnya:

Field dokumen MongoDBKolom PolarDB for MySQL
"_id": "62cd344c85c1ea6a2a9f****"mongo_id (varchar, primary key)
"person.name": "neo"person_name (varchar)
"person.age": 26person_age (decimal)

Sebelum memulai, buatlah tabel tujuan dengan skema yang sesuai. DTS hanya menulis data ke tabel tersebut—tidak membuat atau mengubah struktur tabel.

Prasyarat

Sebelum memulai, pastikan Anda telah memiliki:

  • Klaster PolarDB for MySQL dengan ruang penyimpanan yang tersedia melebihi ukuran total data sumber. Alokasikan minimal 10% lebih banyak ruang penyimpanan daripada ukuran data sumber. Lihat Beli klaster Edisi Perusahaan atau Beli klaster subscription.

  • Database dan tabel dengan kunci primer satu kolom yang telah dibuat di klaster tujuan. Kunci primer komposit tidak didukung.

    • Jangan memberi nama kolom apa pun sebagai _id atau _value. Jika tidak, tugas migrasi data akan gagal.

    • Pastikan tipe kolom tujuan kompatibel dengan tipe data MongoDB yang sesuai. Misalnya, field MongoDB _id (tipe ObjectId) harus dipetakan ke kolom varchar. Untuk pemetaan lengkap, lihat Pemetaan tipe data.

    • Lihat Kelola database.

  • Akun database pada instans ApsaraDB for MongoDB sumber dengan izin yang tercantum di Izin yang diperlukan.

  • Akun database pada klaster PolarDB for MySQL tujuan dengan izin baca dan tulis pada database tujuan. Lihat Buat dan kelola akun database.

  • (Hanya untuk sumber klaster sharded) Titik akhir yang diajukan untuk semua node shard. Semua node shard harus menggunakan password akun dan titik akhir yang sama. Lihat Ajukan titik akhir untuk komponen shard atau ConfigServer.

Jenis migrasi

Jenis migrasiDeskripsi
Migrasi data penuhMemigrasikan seluruh data historis dari instans ApsaraDB for MongoDB sumber ke klaster PolarDB for MySQL tujuan. Biaya konfigurasi link gratis.
Migrasi data inkrementalSetelah migrasi penuh selesai, secara berkelanjutan memigrasikan perubahan baru dari sumber ke tujuan. Operasi yang didukung: insert, update, dan delete pada dokumen koleksi. Hanya dokumen yang diperbarui menggunakan perintah $set yang perubahan inkrementalnya dimigrasikan. Biaya konfigurasi link berlaku.

Untuk detail penagihan, lihat Ikhtisar penagihan. Biaya transfer data berlaku saat memigrasikan data keluar dari Alibaba Cloud melalui Internet.

Izin yang diperlukan

DatabaseMigrasi data penuhMigrasi data inkremental
Instans ApsaraDB for MongoDB sumberBaca pada database sumberBaca pada database sumber, database admin, dan database local
Klaster PolarDB for MySQL tujuanBaca dan tulis pada database tujuanBaca dan tulis pada database tujuan

Untuk petunjuk mengelola akun MongoDB, lihat Manajemen akun. Untuk akun PolarDB for MySQL, lihat Buat dan kelola akun database.

Batasan

Batasan database sumber

BatasanDetail
Bandwidth outboundServer yang menghosting database sumber harus memiliki bandwidth outbound yang mencukupi. Bandwidth yang tidak mencukupi mengurangi kecepatan migrasi.
Jumlah koleksiJika Anda mengganti nama koleksi selama migrasi, satu tugas mendukung maksimal 1.000 koleksi. Pisahkan migrasi besar menjadi beberapa tugas.
Hanya migrasi penuhJenis sumber berikut hanya mendukung migrasi data penuh — migrasi inkremental tidak tersedia: instans ApsaraDB for MongoDB standalone, klaster Azure Cosmos DB for MongoDB, klaster elastis Amazon DocumentDB.
Persyaratan migrasi inkrementalUntuk menjalankan migrasi data inkremental, salah satu kondisi berikut harus terpenuhi: (1) Oplog diaktifkan pada database sumber dan log operasi disimpan selama minimal 7 hari. (2) Change streams diaktifkan dan DTS dapat berlangganan perubahan data dalam 7 hari terakhir. Jika kedua kondisi tidak terpenuhi, DTS mungkin gagal memperoleh log operasi, menyebabkan tugas gagal atau terjadi ketidakkonsistenan data. Hal ini berada di luar cakupan perjanjian tingkat layanan (SLA) DTS. Gunakan metode oplog bila memungkinkan — memiliki latensi migrasi inkremental lebih rendah. Change streams memerlukan MongoDB V4.0 atau lebih baru.
Amazon DocumentDB (klaster non-elastis)Hanya metode ChangeStream yang didukung. Saat mengonfigurasi tugas, atur Migration Method ke ChangeStreamChange Streams dan Architecture ke Sharded Cluster.
Klaster sharded — keunikan _idField _id di setiap koleksi harus unik. Nilai _id yang tidak unik menyebabkan ketidakkonsistenan data.
Klaster sharded — jumlah node MongosKlaster sharded sumber tidak boleh memiliki lebih dari 10 node Mongos dan tidak boleh berisi dokumen yatim (orphaned documents). Lihat dokumentasi MongoDB dan FAQ DTS.
Klaster sharded — balancerJika balancer MongoDB diaktifkan pada klaster sharded, instans mungkin mengalami penundaan.
Operasi selama migrasi penuhJangan mengubah skema database atau koleksi. Jangan memodifikasi data bertipe ARRAY. Jika Anda hanya menjalankan migrasi penuh (tanpa inkremental), jangan menulis ke database sumber selama migrasi. Penulisan menyebabkan ketidakkonsistenan data antara sumber dan tujuan.

Batasan lainnya

BatasanDetail
Objek migrasiHanya koleksi yang dapat dipilih sebagai objek migrasi.
Persyaratan kunci primerTabel tujuan harus memiliki kunci primer unik satu kolom. Tetapkan bson_value("_id") ke kolom kunci primer tersebut.
Database yang dikecualikanDTS tidak dapat memigrasikan data dari database admin atau local.
TransaksiInformasi transaksi tidak dipertahankan. Transaksi dikonversi menjadi catatan individual di database tujuan.
Karakter 4-byteJika data sumber berisi karakter langka atau emoji (UTF-8 4-byte), database dan tabel tujuan harus menggunakan set karakter utf8mb4. Jika Anda menggunakan migrasi skema DTS, atur parameter character_set_server di database tujuan ke utf8mb4.
Presisi FLOAT dan DOUBLEDTS membaca nilai FLOAT dan DOUBLE menggunakan ROUND(COLUMN, PRECISION). Jika presisi tidak ditentukan, DTS menggunakan 38 digit untuk FLOAT dan 308 digit untuk DOUBLE. Pastikan nilai default ini memenuhi kebutuhan Anda sebelum memulai migrasi.
Pemulihan otomatis tugasDTS secara otomatis melanjutkan tugas migrasi yang gagal dalam waktu 7 hari. Sebelum memindahkan beban kerja bisnis Anda ke instans tujuan, akhiri atau rilis tugas DTS, atau cabut izin tulis akun DTS pada instans tujuan menggunakan perintah revoke. Jika tidak, tugas yang dilanjutkan kembali dapat menimpa data di tujuan.
Tampilan latensi inkrementalDTS menghitung latensi migrasi inkremental berdasarkan timestamp catatan terbaru yang dimigrasikan dan timestamp sumber saat ini. Jika tidak ada pembaruan pada sumber dalam waktu lama, latensi yang ditampilkan mungkin tidak akurat. Lakukan pembaruan pada sumber untuk memperbarui pembacaan latensi.
Pemulihan kegagalan tugas DTSJika tugas DTS gagal, dukungan teknis DTS berusaha memulihkannya dalam waktu 8 jam. Selama pemulihan, tugas mungkin dimulai ulang dan parameter tingkat tugas (bukan parameter database) mungkin dimodifikasi.

Konfigurasi tugas migrasi

Langkah 1: Buka halaman Data Migration

Gunakan salah satu metode berikut untuk menuju halaman Data Migration.

Konsol DTS

  1. Login ke Konsol DTS.Konsol DTS

  2. Di panel navigasi kiri, klik Data Migration.

  3. Di pojok kiri atas, pilih wilayah tempat instans migrasi berada.

Konsol DMS

Catatan

Jalur navigasi yang tepat dapat berbeda tergantung pada mode dan tata letak konsol DMS Anda. Lihat Mode simple dan Sesuaikan tata letak dan gaya konsol DMS.

  1. Login ke Konsol DMS.Konsol DMS

  2. Di bilah navigasi atas, arahkan pointer ke Data + AI > DTS (DTS) > Data Migration.

  3. Dari daftar drop-down di sebelah kanan Data Migration Tasks, pilih wilayah tempat instans migrasi berada.

Langkah 2: Buat tugas

  1. Klik Create Task.

  2. Jika tombol New Configuration Page muncul di pojok kanan atas, klik untuk beralih ke antarmuka konfigurasi baru.

    Lewati langkah ini jika yang ditampilkan adalah Back to Previous Version.

Langkah 3: Konfigurasi database sumber dan tujuan

Konfigurasikan parameter berikut.

KategoriParameterDeskripsi
N/ATask NameNama untuk tugas DTS. DTS menghasilkan nama secara otomatis. Tentukan nama deskriptif agar tugas mudah diidentifikasi. Nama tidak perlu unik.
Source DatabaseSelect Existing ConnectionPilih instans terdaftar yang sudah ada atau konfigurasi secara manual. Jika memilih instans yang sudah ada, DTS akan mengisi parameter database secara otomatis. Untuk mendaftarkan database, lihat Kelola koneksi database. Di konsol DMS, pilih database dari daftar drop-down Select a DMS database instance, atau klik Add DMS Database Instance. Lihat Daftarkan instans database Alibaba Cloud dan Daftarkan database yang dihosting di layanan cloud pihak ketiga atau database yang dikelola sendiri.
Database TypePilih MongoDB.
Access MethodPilih Alibaba Cloud Instance.
Instance RegionWilayah tempat instans ApsaraDB for MongoDB sumber berada.
Replicate Data Across Alibaba Cloud AccountsPilih No (akun yang sama).
ArchitectureArsitektur instans sumber. Pilih Replica Set untuk contoh ini. Jika sumber adalah Sharded Cluster, tentukan juga Shard account dan Shard password saat menggunakan metode Oplog.
Migration MethodMetode untuk menangkap perubahan inkremental. Oplog (direkomendasikan): memerlukan oplog diaktifkan pada sumber. ChangeStream: memerlukan change streams diaktifkan; wajib untuk klaster non-elastis Amazon DocumentDB. Saat menggunakan ChangeStream dengan arsitektur Sharded Cluster, Shard account dan Shard password tidak diperlukan.
Instance IDID instans ApsaraDB for MongoDB sumber.
Authentication DatabaseDatabase yang menyimpan kredensial akun. Default-nya adalah admin.
Database AccountAkun yang digunakan untuk menghubungkan ke database sumber.
Database PasswordPassword untuk akun tersebut.
EncryptionMetode enkripsi koneksi: Non-encrypted, SSL-encrypted, atau Mongo Atlas SSL. Opsi yang tersedia bergantung pada nilai Access Method dan Architecture. SSL-encrypted tidak tersedia saat Architecture adalah Sharded Cluster dan Migration Method adalah Oplog. Untuk replica set MongoDB yang dikelola sendiri yang menggunakan enkripsi SSL, unggah sertifikat CA untuk memverifikasi koneksi.
Destination DatabaseSelect Existing ConnectionPilih instans terdaftar yang sudah ada atau konfigurasi secara manual. Untuk mendaftarkan database, lihat Kelola koneksi database.
Database TypePilih PolarDB for MySQL.
Access MethodPilih Alibaba Cloud Instance.
Instance RegionWilayah tempat klaster PolarDB for MySQL tujuan berada.
Replicate Data Across Alibaba Cloud AccountsPilih No (akun yang sama).
PolarDB Cluster IDID klaster PolarDB for MySQL tujuan.
Database AccountAkun yang digunakan untuk menghubungkan ke klaster tujuan.
Database PasswordPassword untuk akun tersebut.
EncryptionMetode enkripsi koneksi. Lihat Konfigurasi enkripsi SSL.

Setelah menyelesaikan konfigurasi, klik Test Connectivity and Proceed di bagian bawah halaman.

Penting

Pastikan blok CIDR server DTS telah ditambahkan ke pengaturan keamanan database sumber dan tujuan. Lihat Tambahkan blok CIDR server DTS. Jika sumber atau tujuan adalah database yang dikelola sendiri, klik Test Connectivity di kotak dialog CIDR Blocks of DTS Servers.

Langkah 4: Konfigurasi objek migrasi

Di halaman Configure Objects, konfigurasikan pengaturan berikut.

ParameterDeskripsi
Migration TypesPilih Full Data Migration untuk hanya memigrasikan data historis. Pilih keduanya Full Data Migration dan Incremental Data Migration untuk menjaga sinkronisasi tujuan selama migrasi dan meminimalkan downtime. Jika hanya menjalankan migrasi penuh, jangan menulis ke database sumber selama migrasi untuk menghindari ketidakkonsistenan data.
Processing Mode of Conflicting TablesPrecheck and Report Errors (direkomendasikan): DTS memeriksa konflik nama koleksi sebelum memulai. Jika ada konflik, pemeriksaan awal gagal dan tugas tidak dapat dimulai. Untuk menyelesaikan konflik, gunakan fitur pemetaan nama objek untuk mengganti nama koleksi di tujuan. Ignore Errors and Proceed: DTS melewati pemeriksaan konflik nama. Catatan dengan kunci primer duplikat di tujuan tidak dimigrasikan. Ketidakkonsistenan data mungkin terjadi, inisialisasi data mungkin gagal, hanya kolom tertentu yang dimigrasikan, atau tugas migrasi data mungkin gagal.
Capitalization of object names in destination instanceMengontrol kapitalisasi nama database, nama tabel, dan nama kolom di tujuan. Default-nya adalah DTS default policy. Lihat Tentukan kapitalisasi nama objek di instans tujuan.
Source ObjectsPilih koleksi yang akan dimigrasikan dan klik ikon panah kanan untuk memindahkannya ke Selected Objects.

Setelah memilih objek Anda, lengkapi konfigurasi berikut di Selected Objects:

  1. Petakan nama database: Di Selected Objects, klik kanan database sumber dan ubah Database Name menjadi nama skema target di klaster PolarDB for MySQL. Klik OK.

  2. Petakan nama koleksi (tabel): Klik kanan koleksi dan ubah Table Name menjadi nama tabel target di klaster PolarDB for MySQL.

    • (Opsional) Tentukan kondisi filter untuk memigrasikan subset data. Lihat Tentukan kondisi filter.

    • (Opsional) Pilih operasi DML mana yang akan disertakan selama migrasi inkremental.

  3. Konfigurasi pemetaan field: DTS menghasilkan ekspresi bson_value() secara otomatis untuk setiap field. Tinjau dan sesuaikan Column Name, Type, Length, dan Precision untuk setiap kolom.

    • Untuk menghapus field yang tidak perlu dimigrasikan, klik ikon hapus di sebelah baris field tersebut.

    • Jika ekspresi yang dihasilkan otomatis tidak sesuai dengan struktur field Anda (misalnya, untuk field bersarang), klik ikon hapus untuk menghapus baris tersebut, klik + Add Column, dan masukkan ekspresi bson_value() yang benar secara manual. Lihat Contoh pemetaan field sebagai referensi.

    Penting

    Tetapkan bson_value("_id") ke kolom kunci primer tabel tujuan. Tentukan field bersarang menggunakan jalur hierarkis lengkapnya dalam bson_value(). Misalnya, gunakan bson_value("person","name") untuk subfield name dari person. Menggunakan hanya bson_value("person") memetakan seluruh objek person ke satu kolom dan menyebabkan perubahan inkremental pada subfield hilang.

  4. Klik OK.

  5. Klik Next: Advanced Settings.

Langkah 5: Konfigurasi pengaturan lanjutan

ParameterDeskripsi
Dedicated Cluster for Task SchedulingSecara default, DTS menjadwalkan tugas pada kluster bersama. Untuk meningkatkan stabilitas, beli kluster khusus. Lihat What is a DTS dedicated cluster.
Select the engine type of the destination databaseMesin penyimpanan untuk database tujuan. InnoDB (default) adalah mesin standar. X-Engine dioptimalkan untuk beban kerja online transaction processing (OLTP).
Retry Time for Failed ConnectionsDurasi DTS mencoba ulang setelah kegagalan koneksi. Rentang nilai yang valid: 10–1.440 menit. Nilai default: 720 menit. Atur nilai ini minimal 30 menit. Jika beberapa tugas menggunakan database sumber atau tujuan yang sama, nilai yang paling baru diatur akan berlaku. DTS mengenakan biaya terhadap instans selama masa percobaan ulang.
Retry Time for Other IssuesDurasi DTS mencoba ulang setelah kegagalan DDL atau DML. Rentang nilai yang valid: 1–1.440 menit. Nilai default: 10 menit. Atur nilai ini minimal 10 menit. Nilai ini harus lebih kecil daripada Retry Time for Failed Connections.
Enable Throttling for Full Data MigrationMembatasi throughput baca/tulis DTS selama migrasi data penuh untuk mengurangi beban pada database Anda. Konfigurasikan Queries per second (QPS) to the source database, RPS of Full Data Migration, dan Data migration speed for full migration (MB/s). Opsi ini tersedia hanya jika Full Data Migration dipilih.
Only one data type for primary key _id in a single tableApakah bidang _id memiliki tipe data yang konsisten dalam satu koleksi. Yesalert notification settings: DTS melewati pemindaian tipe data selama migrasi penuh. No: DTS memindai dan menangani beberapa tipe data. Opsi ini tersedia hanya jika Full Data Migration dipilih.
Enable Throttling for Incremental Data MigrationMembatasi throughput DTS selama migrasi data inkremental. Konfigurasikan RPS of Incremental Data Migration dan Data migration speed for incremental migration (MB/s). Opsi ini tersedia hanya jika Incremental Data Migration dipilih.
Environment TagTag opsional untuk lingkungan tugas.
Configure ETLApakah akan mengaktifkan pemrosesan extract, transform, and load (ETL). Jika Yes, masukkan pernyataan transformasi data di editor kode. Lihat Configure ETL in a data migration or data synchronization task.
Monitoring and AlertingApakah akan mengonfigurasi peringatan untuk kegagalan tugas atau ambang batas latensi. Jika Yes, konfigurasikan ambang batas peringatan dan pengaturan notifikasi. Lihat Configure monitoring and alerting.

Langkah 6: Simpan dan jalankan pemeriksaan awal

Klik Next: Save Task Settings and Precheck.

Untuk melihat pratinjau parameter API untuk konfigurasi ini, arahkan kursor ke Next: Save Task Settings and Precheck dan klik Preview OpenAPI parameters.

DTS menjalankan pemeriksaan awal sebelum memulai tugas migrasi. Tugas hanya dapat dimulai setelah pemeriksaan awal berhasil.

  • Jika pemeriksaan awal gagal, klik View Details di sebelah setiap item yang gagal, perbaiki masalahnya, lalu klik Precheck Again.

  • Jika peringatan dipicu: perbaiki masalah dan periksa ulang, atau klik Confirm Alert Details > Ignore > OK > Precheck Again untuk melanjutkan meskipun ada peringatan. Mengabaikan item peringatan dapat menyebabkan ketidakkonsistenan data.

Langkah 7: Beli instans dan mulai tugas

  1. Tunggu hingga Success Rate mencapai 100%, lalu klik Next: Purchase Instance.

  2. Di halaman Purchase Instance, konfigurasikan parameter berikut.

    ParameterDeskripsi
    Resource GroupKelompok sumber daya untuk instans migrasi. Default: default resource group. Lihat Apa itu Resource Management?
    Instance ClassKelas instans menentukan kecepatan migrasi. Pilih berdasarkan beban kerja Anda. Lihat Kelas instans migrasi data.
  3. Baca dan terima Data Transmission Service (Pay-as-you-go) Service Terms.

  4. Klik Buy and Start, lalu klik OK di dialog konfirmasi.

Tugas migrasi muncul di halaman Data Migration. Pantau progres dari sana.

Sebelum menjalankan tugas migrasi, evaluasi performa database sumber dan tujuan. Jalankan migrasi selama jam sepi bila memungkinkan. Selama migrasi data penuh, DTS menggunakan sumber daya baca dan tulis di kedua database, yang dapat meningkatkan bebannya. Perlu juga diketahui bahwa operasi INSERT konkuren selama migrasi penuh menyebabkan fragmentasi tabel di tujuan. Setelah migrasi penuh selesai, penggunaan ruang di tujuan mungkin lebih besar daripada di sumber.

Pemetaan tipe data

Tipe data MongoDBTipe data PolarDB for MySQL
ObjectIdVARCHAR
StringVARCHAR
DocumentVARCHAR
DbPointerVARCHAR
ArrayVARCHAR
DateDATETIME
TimeStampDATETIME
DoubleDOUBLE
Integer 32-bit (BsonInt32)INTEGER
Integer 64-bit (BsonInt64)BIGINT
Decimal128DECIMAL
BooleanBOOLEAN
NullVARCHAR

Contoh pemetaan field

Contoh berikut menunjukkan cara memetakan dokumen MongoDB bersarang ke tabel PolarDB for MySQL.

Struktur data MongoDB sumber

{
  "_id": "62cd344c85c1ea6a2a9f****",
  "person": {
    "name": "neo",
    "age": 26,
    "sex": "male"
  }
}

Skema tabel PolarDB for MySQL tujuan

Nama kolomTipe
mongo_idvarchar (primary key)
person_namevarchar
person_agedecimal

Konfigurasi kolom baru

Penting

Gunakan jalur bersarang lengkap dalam ekspresi bson_value(). Menggunakan bson_value("person") memetakan seluruh objek person ke satu kolom dan menyebabkan perubahan inkremental pada person.name, person.age, dan person.sex hilang.

Nama kolomTipeTetapkan nilai
mongo_idSTRINGbson_value("_id")
person_nameSTRINGbson_value("person","name")
person_ageDECIMALbson_value("person","age")

Langkah selanjutnya