All Products
Search
Document Center

Data Transmission Service:Migrasi\ dari\ ApsaraDB\ for\ MongoDB\ ke\ AnalyticDB\ for\ MySQL\ 3\.0

Last Updated:Mar 29, 2026

Layanan Transmisi Data (DTS) melakukan migrasi data dari instans replica set ApsaraDB for MongoDB ke klaster AnalyticDB for MySQL V3.0, mencakup migrasi data penuh dan migrasi data inkremental.

Cara kerja

MongoDB adalah database berbasis dokumen, sedangkan AnalyticDB for MySQL V3.0 adalah database analitik relasional. Sebelum mengonfigurasi migrasi, pahami cara memetakan konsep MongoDB ke konsep database relasional:

Konsep MongoDBSetara relasionalCatatan
DokumenBarisDokumen MongoDB adalah objek BSON dengan bidang bertipe. DTS memetakan setiap bidang ke kolom menggunakan ekspresi bson_value().
KoleksiTabelKoleksi bersifat fleksibel skema. Anda harus menentukan skema tabel target di AnalyticDB for MySQL sebelum migrasi.
DatabaseSkemaNama database MongoDB dipetakan ke nama skema di tujuan.
_id fieldKolom kunci primerBidang _id secara default bertipe ObjectId, yang dipetakan ke VARCHAR di AnalyticDB for MySQL.

DTS membaca data dari instans sumber ApsaraDB for MongoDB, memetakan setiap bidang BSON ke kolom tujuan menggunakan ekspresi bson_value(), lalu menulis data tersebut ke tabel target di AnalyticDB for MySQL V3.0.

Prasyarat

Sebelum memulai, pastikan Anda telah memiliki:

  • (Hanya untuk sumber klaster sharded) Titik akhir semua node shard dengan username dan password yang konsisten di seluruh node shard. Untuk detailnya, lihat Ajukan titik akhir untuk komponen shard atau ConfigServer.

  • Klaster tujuan AnalyticDB for MySQL V3.0 dengan ruang penyimpanan tersedia lebih besar daripada ukuran total data instans sumber. Untuk detailnya, lihat Buat klaster.

    Kami merekomendasikan agar ruang penyimpanan tersedia di database tujuan minimal 10% lebih besar daripada ukuran total data di database sumber.
  • Database dan tabel dengan kolom kunci primer yang telah dibuat di klaster tujuan. Untuk detailnya, lihat CREATE DATABASE dan CREATE TABLE.

  • Fitur multi-pernyataan diaktifkan pada klaster tujuan dengan menjalankan perintah berikut:

    Fitur multi-pernyataan memerlukan AnalyticDB for MySQL V3.1.9.3 atau versi lebih baru. Untuk memeriksa dan memperbarui versi minor, lihat Perbarui versi minor klaster.
    SET ADB_CONFIG ALLOW_MULTI_QUERIES=true;

Persyaratan desain tabel tujuan:

  • Kolom kunci primer harus terdiri dari satu kolom saja (kunci primer komposit tidak didukung). Tetapkan kolom kunci primer sebagai bson_value("_id").

  • Tipe data di tabel tujuan harus kompatibel dengan data sumber. Misalnya, jika bidang _id MongoDB bertipe ObjectId, kolom yang sesuai di AnalyticDB for MySQL harus bertipe VARCHAR.

  • Jangan memberi nama kolom apa pun dengan _id atau _value. Nama-nama ini menyebabkan tugas migrasi gagal.

Penagihan

Jenis migrasiBiaya konfigurasi tugasBiaya transfer data
Migrasi data penuhGratisGratis dalam contoh ini. Ketika Access Method diatur ke Public IP Address, biaya trafik internet berlaku. Lihat Item yang dikenai biaya.
Migrasi data inkrementalDikenai biaya. Lihat Ikhtisar penagihan.

Jenis migrasi

Jenis migrasiDeskripsi
Migrasi data penuhDTS melakukan migrasi semua data historis dari instans sumber ApsaraDB for MongoDB ke klaster tujuan AnalyticDB for MySQL V3.0.
Migrasi data inkrementalSetelah migrasi data penuh selesai, DTS terus-menerus melakukan migrasi operasi insert, update, dan delete baru dari sumber ke tujuan. Hanya update yang menggunakan perintah $set yang didukung untuk update inkremental.

Untuk menjaga kontinuitas layanan selama migrasi, pilih kedua opsi Full Data Migration dan Incremental Data Migration. Jika hanya memilih migrasi data penuh, hentikan penulisan ke database sumber selama migrasi untuk mencegah ketidakkonsistenan data.

Izin akun database yang diperlukan

DatabaseMigrasi data penuhMigrasi data inkremental
Sumber ApsaraDB for MongoDBIzin baca pada database sumberIzin baca pada database sumber, database admin, dan database local
Tujuan AnalyticDB for MySQL V3.0Izin baca dan tulis pada database tujuanIzin baca dan tulis pada database tujuan

Untuk detail tentang pengelolaan akun MongoDB, lihat Manajemen akun. Untuk detail tentang akun AnalyticDB for MySQL, lihat Buat akun database.

Catatan penggunaan

Masalah pemblokiran — selesaikan sebelum memulai migrasi:

  • Hanya koleksi yang dapat dipilih sebagai objek migrasi. Pemilihan tingkat database tidak didukung.

  • Jika Anda memilih koleksi sebagai objek yang akan dimigrasikan dan ingin memodifikasi koleksi di database tujuan, seperti mengganti nama koleksi, satu tugas mendukung hingga 1.000 koleksi. Untuk koleksi lebih banyak, buat beberapa tugas.

  • DTS tidak dapat terhubung ke MongoDB melalui titik akhir SRV.

  • DTS tidak dapat melakukan migrasi data dari database admin atau local.

  • Anda dapat menggunakan DTS untuk melakukan migrasi data penuh dari database MongoDB standalone, klaster Azure Cosmos DB for MongoDB, atau klaster elastis Amazon DocumentDB.

  • Untuk sumber klaster sharded: bidang _id di setiap koleksi harus unik; jumlah node Mongos tidak boleh melebihi 10; instans tidak boleh berisi dokumen yatim. Untuk detail tentang dokumen yatim, lihat dokumentasi MongoDB dan FAQ DTS.

  • Jika penggunaan disk klaster tujuan melebihi 80%, tugas DTS tertunda dan mengembalikan error. Perkirakan ruang penyimpanan yang diperlukan sebelum memulai.

  • Jika tipe data di klaster tujuan tidak kompatibel dengan data sumber, tugas migrasi gagal.

  • Jika klaster tujuan sedang melakukan backup saat tugas DTS berjalan, tugas migrasi gagal.

  • Informasi transaksi tidak dipertahankan. Transaksi dikonversi menjadi catatan individual di tujuan.

Incremental data migration requirements:

  • Fitur oplog harus diaktifkan pada database sumber, dan entri oplog harus disimpan selama minimal tujuh hari. Atau, change streams harus diaktifkan dan DTS harus dapat berlangganan perubahan data selama tujuh hari terakhir. Jika DTS tidak dapat memperoleh log operasi, tugas gagal. Dalam kasus luar biasa, ketidakkonsistenan atau kehilangan data dapat terjadi, dan skenario ini tidak dicakup oleh perjanjian tingkat layanan (SLA) DTS.

  • Gunakan metode oplog bila memungkinkan. Metode ini memiliki latensi lebih rendah dibanding change streams.

  • Change streams hanya didukung ketika database sumber menjalankan MongoDB V4.0 atau versi lebih baru.

  • Untuk klaster Amazon DocumentDB non-elastis, Anda harus menggunakan change streams: atur Migration Method ke ChangeStreamChange Streams dan Architecture ke Sharded Cluster.

Batasan operasional selama migrasi:

  • Selama migrasi data penuh, jangan memodifikasi skema atau koleksi (termasuk pembaruan tipe array). Perubahan skema menyebabkan tugas gagal atau menghasilkan ketidakkonsistenan data.

  • Jika database sumber adalah klaster sharded dan Balancer sedang aktif melakukan penyeimbangan ulang data, latensi migrasi inkremental dapat meningkat.

  • DTS menggunakan resource baca dan tulis di kedua database sumber dan tujuan. Jalankan migrasi selama jam sepi untuk meminimalkan dampak pada workload produksi.

  • Selama migrasi data penuh, operasi INSERT konkuren menyebabkan fragmentasi di koleksi tujuan. Setelah migrasi, jejak penyimpanan di tujuan mungkin lebih besar daripada di sumber.

Presisi float dan double:

DTS mengambil nilai FLOAT dan DOUBLE menggunakan ROUND(COLUMN, PRECISION). Presisi default adalah 38 digit untuk FLOAT dan 308 digit untuk DOUBLE. Pastikan pengaturan ini memenuhi kebutuhan bisnis Anda sebelum memulai.

Perilaku tugas gagal:

  • DTS secara otomatis mencoba ulang tugas yang gagal hingga tujuh hari. Sebelum beralih workload ke tujuan, hentikan atau lepas tugas yang gagal, atau cabut izin tulis dari akun DTS. Jika tidak, data sumber dapat menimpa data tujuan setelah tugas dilanjutkan.

  • Jika tugas DTS gagal, dukungan teknis DTS berusaha memulihkannya dalam waktu delapan jam. Selama pemulihan, tugas mungkin dimulai ulang dan parameter tugas (bukan parameter database) dapat dimodifikasi.

Pengukuran latensi migrasi:

DTS menghitung latensi migrasi inkremental berdasarkan stempel waktu catatan terbaru yang dimigrasikan di tujuan dibandingkan dengan stempel waktu saat ini di sumber. Jika tidak ada pembaruan di sumber dalam periode yang lama, latensi yang dilaporkan mungkin tidak akurat. Lakukan operasi update di sumber untuk memperbarui pembacaan latensi.

Buat tugas migrasi

Langkah 1: Buka halaman Data Migration

Gunakan salah satu metode berikut:

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 kursor 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: Konfigurasi database sumber dan tujuan

Klik Create Task, lalu konfigurasikan parameter berikut:

Database sumber

ParameterDeskripsi
Task NameNama untuk tugas DTS. DTS menghasilkan nama secara otomatis. Gunakan nama deskriptif untuk mengidentifikasi tugas. Nama tidak perlu unik.
Select Existing ConnectionJika database sumber sudah terdaftar di DTS, pilih dari daftar drop-down. DTS akan mengisi otomatis parameter lainnya. Jika tidak, konfigurasikan parameter di bawah. Di konsol DMS, pilih instans dari Select a DMS database instance. Untuk detail tentang pendaftaran instans, lihat Kelola koneksi database.
Database TypePilih MongoDB.
Access MethodPilih Alibaba Cloud Instance.
Instance RegionWilayah tempat instans sumber ApsaraDB for MongoDB berada.
Replicate Data Across Alibaba Cloud AccountsPilih No saat menggunakan instans di Akun Alibaba Cloud saat ini.
ArchitectureArsitektur deployment instans sumber. Pilih Replica Set. Jika sumber adalah Sharded Cluster, tentukan juga Shard account dan Shard password.
Migration MethodMetode yang digunakan untuk migrasi data inkremental. Oplog (direkomendasikan): Didukung saat sumber memiliki oplog diaktifkan. Oplog diaktifkan secara default di ApsaraDB for MongoDB. Metode ini memiliki latensi lebih rendah dibanding ChangeStream. ChangeStream: Didukung saat sumber memiliki change streams diaktifkan. Saat arsitektur sumber adalah Sharded Cluster menggunakan ChangeStream, akun dan password shard tidak diperlukan. Saat sumber adalah Amazon DocumentDB (klaster non-elastis), hanya ChangeStream yang didukung.
Instance IDID instans sumber ApsaraDB for MongoDB.
Authentication DatabaseDatabase yang menyimpan kredensial autentikasi. Nilai default adalah admin.
Database AccountAkun database untuk instans sumber. Lihat bagian Izin akun database yang diperlukan.
Database PasswordPassword untuk akun database.
EncryptionMetode enkripsi koneksi. Opsi: Non-encrypted, SSL-encrypted, atau Mongo Atlas SSL. Opsi yang tersedia bergantung pada Access Method dan Architecture yang dipilih. SSL-encrypted tidak tersedia saat Architecture adalah Sharded Cluster dan Migration Method adalah Oplog. Untuk replica set yang dikelola sendiri dengan SSL-encrypted dipilih, unggah sertifikat CA untuk memverifikasi koneksi.

Database tujuan

ParameterDeskripsi
Select Existing ConnectionJika klaster tujuan sudah terdaftar di DTS, pilih dari daftar drop-down. Jika tidak, konfigurasikan parameter di bawah.
Database TypePilih AnalyticDB for MySQL 3.0.
Access MethodPilih Alibaba Cloud Instance.
Instance RegionWilayah tempat klaster tujuan AnalyticDB for MySQL V3.0 berada.
Instance IDID klaster tujuan AnalyticDB for MySQL V3.0.
Database AccountAkun database untuk klaster tujuan. Lihat bagian Izin akun database yang diperlukan.
Database PasswordPassword untuk akun database.

Langkah 3: Uji konektivitas dan lanjutkan

Klik Test Connectivity and Proceed di bagian bawah halaman.

Blok CIDR server DTS harus ditambahkan ke pengaturan keamanan database sumber maupun tujuan. DTS dapat menambahkannya secara otomatis, atau Anda dapat melakukannya secara manual. Lihat Tambahkan blok CIDR server DTS. Untuk database yang dikelola sendiri yang tidak menggunakan Alibaba Cloud Instance sebagai metode akses, klik Test Connectivity di kotak dialog CIDR Blocks of DTS Servers.

Langkah 4: Konfigurasi objek yang akan dimigrasikan

Di halaman Configure Objects, atur parameter berikut:

ParameterDeskripsi
Migration TypesPilih Full Data Migration untuk hanya memigrasikan data historis. Pilih kedua opsi Full Data Migration dan Incremental Data Migration untuk menjaga sinkronisasi tujuan selama migrasi. Jika hanya memilih migrasi data penuh, jangan menulis ke sumber selama migrasi.
DDL and DML Operations to Be SynchronizedOperasi DDL dan DML yang akan dimigrasikan di tingkat instans selama migrasi data inkremental. Untuk mengonfigurasi operasi di tingkat koleksi, klik kanan koleksi di Selected Objects dan pilih operasi yang akan dimigrasikan.
Merge TablesNo (default): Migrasikan setiap koleksi ke tabelnya sendiri. Yesalert notification settings: Gabungkan beberapa koleksi sumber ke satu tabel tujuan. DTS menambahkan kolom __dts_data_source untuk mengidentifikasi sumber data. Lihat Aktifkan fitur penggabungan multi-tabel. Jika Anda memilih Yes, semua tabel sumber yang dipilih dalam tugas digabung menjadi satu tabel tujuan. Buat tugas terpisah untuk koleksi yang tidak boleh digabung.
Processing Mode of Conflicting TablesPrecheck and Report Errors: Gagal dalam pemeriksaan awal jika tujuan berisi koleksi dengan nama yang sama seperti sumber. Gunakan pemetaan nama objek untuk mengganti nama koleksi yang dimigrasikan jika diperlukan. Lihat Map object names. Ignore Errors and Proceed: Melewati pemeriksaan awal terkait nama koleksi duplikat. DTS melewati catatan yang memiliki kunci utama yang sama dengan catatan yang sudah ada di tujuan, yang dapat menyebabkan ketidaksesuaian data.
Source ObjectsPilih satu atau beberapa koleksi dari Source Objects, lalu klik 向右小箭头 untuk menambahkannya ke Selected Objects.

Konfigurasi bagian Selected Objects:

  1. Ganti nama database (skema) tujuan:

    1. Di Selected Objects, klik kanan database sumber. image

    2. Atur Schema Name ke nama database di klaster tujuan AnalyticDB for MySQL V3.0. image

    3. (Opsional) Pilih operasi DDL dan DML yang akan dimigrasikan selama migrasi data inkremental. image

    4. Klik OK.

  2. Ganti nama tabel tujuan:

    1. Di Selected Objects, klik kanan koleksi. image

    2. Atur Table Name ke nama tabel di klaster tujuan. image

    3. (Opsional) Atur kondisi filter untuk migrasi data penuh. Lihat Tentukan kondisi filter. image

    4. (Opsional) Pilih operasi DDL dan DML untuk migrasi data inkremental. image

  3. Petakan bidang sumber ke kolom tujuan: DTS secara otomatis menghasilkan ekspresi bson_value() untuk setiap bidang. Tinjau dan sesuaikan pemetaan untuk setiap kolom. Untuk setiap kolom: Jika suatu bidang memerlukan ekspresi berbeda (misalnya, subfield bersarang):

    1. Klik image di sebelah kolom, lalu klik + Add Column. image

    2. Atur Column Name, Type, Length, dan Precision.

    3. Masukkan ekspresi bson_value() di kolom Assign Value. Lihat bagian Contoh pemetaan bidang sebagai referensi.

    4. Ulangi untuk setiap bidang.

    Penting

    Tetapkan kolom kunci primer sebagai bson_value("_id"). Gunakan ekspresi bson_value() bersarang untuk subfield: bson_value("parent", "child"). Menggunakan bson_value("parent") saja tidak menangkap perubahan inkremental pada subfield.

  4. Klik OK.

Langkah 5: Konfigurasi pengaturan lanjutan

Klik Next: Advanced Settings dan konfigurasikan hal berikut:

ParameterDeskripsi
Dedicated Cluster for Task SchedulingSecara default, DTS menjadwalkan tugas ke klaster bersama. Untuk stabilitas lebih tinggi, beli klaster khusus. Lihat Apa itu klaster khusus DTS.
Retry Time for Failed ConnectionsBerapa lama DTS mencoba ulang setelah kegagalan koneksi. Nilai valid: 10–1.440 menit. Default: 720 menit. Atur lebih dari 30 menit. Jika DTS terhubung kembali dalam periode ini, tugas dilanjutkan. Jika beberapa tugas berbagi sumber atau tujuan yang sama, nilai yang paling baru diatur berlaku. DTS mengenakan biaya untuk instans selama percobaan ulang.
Retry Time for Other IssuesBerapa lama DTS mencoba ulang setelah kegagalan operasi DDL atau DML. Nilai valid: 1–1.440 menit. Default: 10 menit. Atur lebih dari 10 menit. Nilai ini harus lebih kecil dari Retry Time for Failed Connections.
Enable Throttling for Full Data MigrationMembatasi operasi baca/tulis selama migrasi data penuh untuk mengurangi beban pada sumber dan tujuan. Konfigurasikan Queries per second (QPS) to the source database, RPS of Full Data Migration, dan Data migration speed for full migration (MB/s). Tersedia hanya saat Full Data Migration dipilih.
Only one data type for primary key _id in a single tableTersedia hanya saat Migration Types diatur ke Full Data Migration. Yes: DTS tidak memindai tipe data kunci primer di data sumber selama fase migrasi penuh. No: DTS memindai tipe data kunci primer di data sumber selama fase migrasi penuh.
Enable Throttling for Incremental Data MigrationMembatasi operasi selama migrasi data inkremental. Konfigurasikan RPS of Incremental Data Migration dan Data migration speed for incremental migration (MB/s). Tersedia hanya saat Incremental Data Migration dipilih.
Environment TagTag opsional untuk mengidentifikasi instans DTS.
Configure ETLApakah akan mengaktifkan fitur ekstrak, transformasi, dan muat (ETL). Yes: Masukkan pernyataan pemrosesan data di editor kode. Lihat Konfigurasi ETL dalam tugas migrasi data atau sinkronisasi data. No: ETL dinonaktifkan.
Monitoring and AlertingYes: Konfigurasikan ambang batas peringatan dan kontak notifikasi. DTS memberi tahu kontak saat tugas gagal atau latensi migrasi melebihi ambang batas. Lihat Konfigurasi pemantauan dan peringatan saat membuat tugas DTS. No: Tidak ada peringatan yang dikonfigurasi.

Langkah 6: Jalankan pemeriksaan awal

Klik Next: Save Task Settings and Precheck.

Untuk melihat parameter API sebelum menyimpan, arahkan kursor ke Next: Save Task Settings and Precheck lalu klik Preview OpenAPI parameters.

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

  • Jika suatu item gagal, klik View Details untuk melihat penyebabnya, selesaikan masalah, lalu jalankan pemeriksaan awal lagi.

  • Jika peringatan dipicu:

    • Untuk peringatan pemblokiran: selesaikan masalah dan jalankan pemeriksaan awal lagi.

    • Untuk peringatan non-pemblokiran: klik Confirm Alert Details > Ignore > OK, lalu klik Precheck Again. Mengabaikan peringatan dapat menyebabkan ketidakkonsistenan data.

Langkah 7: Beli dan mulai instans

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

  2. Di halaman Purchase Instance, konfigurasikan hal berikut:

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

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

Monitor progres migrasi di halaman Data Migration.

  • Hanya migrasi data penuh: Status tugas menunjukkan Completed saat selesai dan tugas berhenti secara otomatis.

  • Migrasi data penuh dan inkremental: Status tugas menunjukkan Running dan tugas berjalan terus-menerus. Hentikan tugas secara manual saat Anda siap beralih workload ke tujuan.

Pemetaan tipe data

Tipe data MongoDBTipe data AnalyticDB for MySQL V3.0
ObjectIdVARCHAR
StringVARCHAR
DokumenVARCHAR
DbPointerVARCHAR
ArrayVARCHAR
DateDATETIME
TimeStampDATETIME
DoubleDOUBLE
Integer 32-bit (BsonInt32)INTEGER
Integer 64-bit (BsonInt64)BIGINT
Decimal128DECIMAL
BooleanBOOLEAN
NullVARCHAR

Contoh pemetaan bidang

Contoh ini menunjukkan cara memetakan bidang dari dokumen MongoDB dengan objek bersarang ke kolom di tabel AnalyticDB for MySQL V3.0.

Struktur Data MongoDB Sumber

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

Struktur Tabel Klaster Tujuan AnalyticDB for MySQL 3.0

Nama kolomTipeCatatan
mongo_idVARCHARKolom kunci primer
person_nameVARCHAR
person_ageDECIMAL

Konfigurasi Kolom Baru

Penting

Untuk bidang bersarang, gunakan bson_value("parent", "child") daripada bson_value("parent"). Menggunakan bson_value("person") memperlakukan seluruh objek person sebagai satu nilai dan tidak menangkap pembaruan inkremental pada subfield seperti name, age, atau sex.

Nama kolomTipeNilai yang ditetapkanCatatan
mongo_idSTRINGbson_value("_id")Kunci primer. Memetakan bidang _id tingkat atas.
person_nameSTRINGbson_value("person", "name")Memetakan subfield name yang bersarang di dalam person.
person_ageDECIMALbson_value("person", "age")Memetakan subfield age yang bersarang di dalam person.

Langkah selanjutnya

Setelah status tugas migrasi menunjukkan Running dan latensi migrasi inkremental mendekati 0, klaster tujuan AnalyticDB for MySQL V3.0 Anda telah tersinkronisasi dengan sumber. Alihkan workload Anda ke klaster tujuan dan hentikan tugas DTS.