All Products
Search
Document Center

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

Last Updated:Mar 29, 2026

Data Transmission Service (DTS) menyinkronkan data dari replica set ApsaraDB for MongoDB ke klaster PolarDB for MySQL. Gunakan topik ini untuk membuat dan menjalankan tugas sinkronisasi dari awal hingga selesai.

Sebelum memulai

Sebelum membuat tugas sinkronisasi, selesaikan langkah-langkah persiapan berikut.

Siapkan klaster tujuan

  • Buat klaster PolarDB for MySQL dengan kapasitas penyimpanan yang tersedia lebih besar daripada ukuran total data sumber (disarankan minimal 10% lebih besar). Lihat Pembelian kustom dan Beli klaster langganan.

  • Buat database dan tabel dengan kolom kunci primer di klaster tujuan. Lihat Kelola database.

Penting

Saat merancang skema tabel tujuan:

  • Gunakan varchar untuk kolom apa pun yang memetakan ke field ObjectId MongoDB _id.

  • Jangan memberi nama kolom apa pun dengan _id atau _value.

Konfigurasikan akun dengan izin yang diperlukan

DatabaseIzin yang diperlukanReferensi
ApsaraDB for MongoDB sumberBaca pada database sumber, database admin, dan database localManajemen akun
PolarDB for MySQL tujuanBaca dan tulis pada database tujuanBuat dan kelola akun database

(Hanya untuk klaster sharded) Ajukan titik akhir shard

Jika sumber berupa klaster sharded, ajukan titik akhir untuk semua node shard. Semua node shard harus menggunakan password akun dan titik akhir yang sama. Lihat Ajukan titik akhir untuk shard.

Penagihan

Jenis sinkronisasiBiaya
Sinkronisasi data penuhGratis
Sinkronisasi data inkrementalDikenai biaya. Lihat Ikhtisar penagihan.

Jenis sinkronisasi

JenisDeskripsi
Sinkronisasi data penuhMenyinkronkan data historis dari instans ApsaraDB for MongoDB sumber ke klaster PolarDB for MySQL tujuan.
Sinkronisasi data inkrementalSetelah sinkronisasi data penuh selesai, secara terus-menerus menyinkronkan operasi insert, update, dan delete. Hanya dokumen yang diperbarui menggunakan perintah $set yang disertakan.

Batasan

Batasan database sumber

BatasanDetail
Bandwidth keluarServer sumber harus memiliki bandwidth keluar yang mencukupi. Bandwidth yang tidak mencukupi mengurangi kecepatan sinkronisasi.
Batas koleksiSatu tugas mendukung hingga 1.000 koleksi ketika diperlukan penggantian nama objek. Untuk lebih dari 1.000 koleksi, konfigurasikan beberapa tugas.
Database yang tidak didukungDTS tidak dapat menyinkronkan data dari database admin, config, atau local.
Jenis sumber yang tidak didukungInstans ApsaraDB for MongoDB standalone, klaster Azure Cosmos DB for MongoDB, dan klaster elastis Amazon DocumentDB tidak didukung.
Oplog atau change streamFitur oplog harus diaktifkan dengan log operasi dipertahankan minimal selama 7 hari, ATAU change stream harus diaktifkan dan DTS harus dapat berlangganan perubahan dalam 7 hari terakhir. Jika kedua kondisi tersebut tidak terpenuhi, DTS mungkin gagal memperoleh log, sehingga menyebabkan kegagalan tugas atau inkonsistensi data.
Versi change streamChange stream memerlukan MongoDB V4.0 atau versi yang lebih baru.
Klaster inelastis Amazon DocumentDBAtur Migration Method ke ChangeStream dan Architecture ke Sharded Cluster.
Operasi selama sinkronisasi penuhJangan mengubah skema database atau koleksi, atau memodifikasi data bertipe ARRAY. Jika hanya menjalankan sinkronisasi penuh (tanpa inkremental), jangan menulis ke database sumber.

Batasan tambahan untuk klaster sharded:

  • Field _id di setiap koleksi harus unik. Nilai _id yang duplikat menyebabkan inkonsistensi data.

  • Jumlah node mongos tidak boleh melebihi 10.

  • Instans tidak boleh berisi dokumen orphaned. Lihat dokumentasi MongoDB dan topik FAQ.

  • Jika balancer ApsaraDB for MongoDB diaktifkan, instans mungkin mengalami penundaan.

Batasan database tujuan dan tugas

BatasanDetail
Jenis objek sinkronisasiHanya koleksi yang dapat dipilih sebagai objek sinkronisasi.
Persyaratan kunci primerTabel tujuan harus memiliki kunci primer unik satu kolom (kunci primer komposit tidak didukung). Tetapkan bson_value("_id") ke kolom kunci primer.
Nama kolom yang dicadangkanTabel tujuan tidak boleh memiliki kolom bernama _id atau _value.
TransaksiTransaksi tidak dipertahankan. Transaksi yang disinkronkan dikonversi menjadi catatan tunggal.
Set karakterJika data mencakup karakter langka atau emoji (karakter 4-byte), database dan tabel tujuan harus menggunakan set karakter UTF8mb4. Jika Anda menggunakan sinkronisasi skema DTS, atur parameter character_set_server ke UTF8mb4.
Presisi FLOAT/DOUBLEDTS menggunakan ROUND(COLUMN,PRECISION) untuk menangani nilai FLOAT dan DOUBLE. Jika presisi tidak ditentukan, DTS menggunakan default 38 digit untuk FLOAT dan 308 digit untuk DOUBLE. Verifikasi nilai default ini sebelum memulai sinkronisasi.
Jam sepiJalankan sinkronisasi selama jam sepi. Sinkronisasi data penuh menggunakan sumber daya baca dan tulis kedua database, yang dapat meningkatkan beban server.
Penyimpanan pasca-sinkronisasiSetelah sinkronisasi penuh, operasi INSERT konkuren dapat menyebabkan fragmentasi pada koleksi tujuan, sehingga penggunaan penyimpanan lebih tinggi dibandingkan sumber.
Melanjutkan tugas yang gagalDTS mencoba melanjutkan tugas yang gagal hingga 7 hari. Sebelum mengalihkan beban kerja ke tujuan, hentikan atau rilis tugas yang gagal, atau cabut izin tulis DTS menggunakan REVOKE. Jika tidak, data sumber dapat menimpa data tujuan saat tugas dilanjutkan.
Perhitungan latensiDTS menghitung latensi sinkronisasi inkremental berdasarkan timestamp data terbaru yang telah disinkronkan di tujuan dan timestamp saat ini di sumber. Periode panjang tanpa pembaruan sumber dapat menyebabkan pembacaan latensi yang tidak akurat. Lakukan pembaruan pada sumber untuk memperbarui latensi.
Pemulihan kegagalan tugasJika tugas DTS gagal, dukungan teknis DTS mencoba memulihkannya dalam waktu 8 jam. Tugas mungkin dimulai ulang dan parameter tugas (bukan parameter database) mungkin dimodifikasi.

Buat tugas sinkronisasi data

Konfigurasi tugas terdiri dari lima langkah:

  1. Buka halaman sinkronisasi data.

  2. Konfigurasikan database sumber dan tujuan.

  3. Konfigurasikan objek yang akan disinkronkan.

  4. Jalankan pemeriksaan awal.

  5. Beli instans.

Langkah 1: Buka halaman sinkronisasi data

Gunakan salah satu metode berikut.

Konsol DTS

  1. Login ke Konsol DTS.Konsol DTS

  2. Di panel navigasi kiri, klik Data Synchronization.

  3. Di pojok kiri atas, pilih wilayah tempat tugas sinkronisasi berada.

Konsol DMS

Langkah aktual dapat berbeda tergantung pada mode dan tata letak konsol DMS. 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 lalu pilih DTS (DTS) > Data Synchronization.

  3. Dari daftar drop-down di sebelah kanan Data Synchronization Tasks, pilih wilayah tempat tugas berada.

Langkah 2: Konfigurasikan database sumber dan tujuan

  1. Klik Create Task.

  2. (Opsional) Klik New Configuration Page di pojok kanan atas.

    - Lewati langkah ini jika Back to Previous Version ditampilkan — halaman sudah menggunakan versi baru. - Gunakan versi baru halaman konfigurasi jika memungkinkan.
  3. Konfigurasikan database sumber dan tujuan menggunakan parameter berikut.

Umum

ParameterDeskripsi
Task NameNama tugas DTS. DTS menghasilkan nama secara otomatis. Tentukan nama deskriptif untuk mengidentifikasi tugas. Nama tidak perlu unik.

Database sumber

ParameterDeskripsi
Select Existing ConnectionJika instans sumber sudah terdaftar di DTS, pilih dari daftar drop-down. DTS akan mengisi parameter lainnya secara otomatis. Jika tidak, konfigurasikan parameter di bawah ini secara manual. Di konsol DMS, pilih instans dari daftar drop-down Select a DMS database instance.
Database TypePilih MongoDB.
Access MethodPilih Alibaba Cloud Instance.
Instance RegionWilayah tempat instans ApsaraDB for MongoDB sumber berada.
Replicate Data Across Alibaba Cloud AccountsPilih No jika database sumber milik Akun Alibaba Cloud saat ini.
ArchitectureArsitektur instans sumber. Pilih Replica Set untuk contoh ini. Jika sumber berupa Sharded Cluster, tentukan juga Shard account dan Shard password.
Migration MethodMetode yang digunakan untuk menyinkronkan data inkremental. Opsi: Oplog (disarankan) atau ChangeStream.- Oplog: Memerlukan fitur oplog diaktifkan. Oplog diaktifkan secara default untuk instans ApsaraDB for MongoDB dan memberikan latensi sinkronisasi rendah karena kecepatan pengambilan log yang cepat.- ChangeStream: Memerlukan change stream diaktifkan. Tersedia untuk MongoDB V4.0 atau versi yang lebih baru. Untuk klaster Amazon DocumentDB inelastis, gunakan ChangeStream saja. Jika Architecture adalah Sharded Cluster, parameter Shard account dan Shard password tidak diperlukan. Lihat Change Streams.
Instance IDID instans ApsaraDB for MongoDB sumber.
Authentication DatabaseDatabase yang menyimpan kredensial akun. Default: admin.
Database AccountAkun dengan izin yang diperlukan.
Database PasswordPassword untuk akun database.
EncryptionMetode enkripsi koneksi: Non-encrypted, SSL-encrypted, atau Mongo Atlas SSL. Opsi yang tersedia bergantung pada pengaturan Access Method dan Architecture — opsi yang ditampilkan di konsol berlaku.
Catatan

SSL-encrypted tidak tersedia ketika Architecture adalah Sharded Cluster dan Migration Method adalah Oplog. Untuk MongoDB yang dikelola sendiri menggunakan arsitektur Replica Set dengan metode akses non-Alibaba Cloud dan enkripsi SSL, unggah sertifikat CA untuk memverifikasi koneksi.

Database tujuan

ParameterDeskripsi
Select Existing ConnectionJika instans tujuan sudah terdaftar di DTS, pilih dari daftar drop-down. DTS akan mengisi parameter lainnya secara otomatis. Jika tidak, konfigurasikan parameter di bawah ini secara manual.
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 jika database tujuan milik Akun Alibaba Cloud saat ini.
PolarDB Cluster IDID klaster PolarDB for MySQL tujuan.
Database AccountAkun dengan izin yang diperlukan.
Database PasswordPassword untuk akun database.
EncryptionMetode enkripsi koneksi. Lihat Konfigurasikan enkripsi SSL.
  1. Klik Test Connectivity and Proceed.

    - Blok CIDR server DTS harus ditambahkan ke pengaturan keamanan kedua database. DTS menambahkannya secara otomatis, atau tambahkan secara manual. Lihat Tambahkan blok CIDR server DTS. - Untuk database yang dikelola sendiri di mana Access Method bukan Alibaba Cloud Instance, klik Test Connectivity di kotak dialog CIDR Blocks of DTS Servers.

Langkah 3: Konfigurasikan objek yang akan disinkronkan

  1. Di langkah Configure Objects, atur parameter berikut.

ParameterDeskripsi
Synchronization TypesIncremental Data Synchronization dipilih secara default. Pilih Full Data Synchronization jika diperlukan. Schema Synchronization tidak dapat dipilih.
Processing Mode of Conflicting TablesPrecheck and Report Errors (default): Memeriksa konflik nama tabel sebelum memulai. Jika ada nama tabel identik, pemeriksaan awal gagal dan tugas tidak dapat dimulai. Gunakan fitur pemetaan nama objek untuk mengganti nama tabel yang bertabrakan jika tidak dapat dihapus atau diganti namanya.Ignore Errors and Proceed: Melewati pemeriksaan konflik.
Peringatan

Opsi ini berisiko menyebabkan inkonsistensi data. Selama sinkronisasi penuh, catatan tujuan yang sudah ada dengan kunci primer atau unik yang cocok tetap dipertahankan. Selama sinkronisasi inkremental, catatan tersebut ditimpa. Jika skema berbeda, inisialisasi mungkin gagal atau hanya kolom parsial yang disinkronkan.

Capitalization of Object Names in Destination InstanceKebijakan kapitalisasi untuk nama database, nama tabel, dan nama kolom di tujuan. Default: DTS default policy. Lihat Tentukan kapitalisasi nama objek.
Source ObjectsPilih satu atau beberapa koleksi dari bagian Source Objects, lalu klik ikon 向右 untuk memindahkannya ke bagian Selected Objects.
  1. Di bagian Selected Objects, konfigurasikan pemetaan objek. (Opsional) Untuk menghapus field yang tidak perlu disinkronkan, klik ikon image setelah baris tersebut.

    1. Ganti nama database: Klik kanan database di Selected Objects. image Ubah Schema Name menjadi nama database target di PolarDB for MySQL. image Klik OK.

    2. Ganti nama koleksi: Klik kanan koleksi di Selected Objects. image Ubah Table Name menjadi nama tabel target di PolarDB for MySQL. image

      • (Opsional) Tentukan kondisi filter. Lihat Tentukan kondisi filter. image

      • (Opsional) Di bagian Select DDL and DML Operations to Be Synchronized, pilih operasi inkremental mana yang akan disinkronkan. image

    3. Petakan field: DTS secara otomatis memetakan data koleksi dan menghasilkan ekspresi bson_value() di kolom Assign Value. Verifikasi bahwa ekspresi tersebut sesuai kebutuhan Anda, lalu konfigurasikan Column Name, Type, Length, dan Precision untuk setiap field.

      Penting

      Tetapkan bson_value("_id") ke kolom kunci primer tabel tujuan. Tentukan field dan subfield-nya dalam setiap ekspresi bson_value() sesuai hierarki dokumen. Menentukan hanya field induk (misalnya, bson_value("person")) tidak menyinkronkan subfield-nya ke tujuan.

      Field dengan ekspresi yang benar

      1. Atur Column Name menjadi nama kolom yang sesuai di tabel PolarDB for MySQL tujuan.

      2. Pilih Type yang kompatibel dengan data sumber. Untuk pemetaan tipe data, lihat bagian Pemetaan tipe data.

      3. (Opsional) Atur Length dan Precision.

      4. Ulangi untuk setiap field.

      Field dengan ekspresi yang salah

      1. Klik ikon image di kolom Actions untuk baris tersebut.

      2. Klik + Add Column. image

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

      4. Masukkan ekspresi bson_value() yang benar di Assign Value. Untuk contoh, lihat bagian Contoh pemetaan field.

      5. Ulangi untuk setiap field.

      Penting

      - Tetapkan bson_value("_id") ke kolom kunci primer tabel tujuan. - Tentukan field dan subfield-nya dalam setiap ekspresi bson_value() sesuai hierarki dokumen. Menentukan hanya field induk (misalnya, bson_value("person")) tidak menyinkronkan subfield-nya ke tujuan.

    4. Klik OK.

  2. Klik Next: Advanced Settings dan konfigurasikan parameter berikut.

ParameterDeskripsi
Dedicated Cluster for Task SchedulingSecara default, DTS menjadwalkan tugas ke klaster bersama. Beli klaster khusus untuk meningkatkan stabilitas sinkronisasi. Lihat Apa itu klaster khusus DTS.
Select the engine type of the destination databaseMesin penyimpanan database tujuan. Opsi: InnoDB (default) atau X-Engine (untuk beban kerja OLTP).
Retry Time for Failed ConnectionsRentang waktu di mana DTS mencoba koneksi yang gagal. Nilai valid: 10–1440 menit. Default: 720. Atur ke nilai lebih dari 30. Jika DTS terhubung kembali dalam rentang ini, tugas dilanjutkan. Jika tidak, tugas gagal. Jika beberapa tugas berbagi database sumber atau tujuan yang sama dengan rentang percobaan ulang berbeda, rentang terpendek yang berlaku. DTS terus menagih selama percobaan ulang.
Retry Time for Other IssuesRentang waktu di mana DTS mencoba ulang operasi DDL atau DML yang gagal. Nilai valid: 1–1440 menit. Default: 10. Atur ke nilai lebih dari 10 dan kurang dari nilai Retry Time for Failed Connections.
Enable Throttling for Full Data SynchronizationMembatasi penggunaan sumber daya baca/tulis selama sinkronisasi penuh untuk mengurangi beban server database. 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 ketika Full Data Synchronization dipilih.
Only one data type for primary key _id in a table of the data to be synchronizedMengontrol apakah DTS memindai tipe data _id selama sinkronisasi penuh. Yespengaturan pemberitahuan peringatan: Lewati pemindaian. No: Lakukan pemindaian tipe. Ditampilkan hanya ketika Full Data Synchronization dipilih.
Enable Throttling for Incremental Data SynchronizationMembatasi penggunaan sumber daya selama sinkronisasi inkremental. Konfigurasikan RPS of Incremental Data Synchronization dan Data synchronization speed for incremental synchronization (MB/s).
Environment TagTag opsional untuk mengkategorikan tugas.
Configure ETLTentukan apakah akan mengaktifkan fitur ekstrak, transformasi, dan muat (ETL). Yes: Masukkan pernyataan pemrosesan data di editor kode. Lihat Konfigurasi ETL. No: Nonaktifkan ETL.
Monitoring and AlertingMenentukan apakah akan mengonfigurasi peringatan. Yes: Atur ambang batas peringatan dan kontak notifikasi. No: Tidak ada peringatan. Lihat Konfigurasikan pemantauan dan peringatan.

Langkah 4: Simpan pengaturan dan jalankan pemeriksaan awal

  • Untuk melihat pratinjau parameter API untuk tugas ini, arahkan pointer ke Next: Save Task Settings and Precheck lalu klik Preview OpenAPI parameters.

  • Untuk melanjutkan, klik Next: Save Task Settings and Precheck.

DTS menjalankan pemeriksaan awal sebelum memulai tugas. Tugas hanya dimulai setelah lulus pemeriksaan awal.
Jika pemeriksaan awal gagal, klik View Details di sebelah setiap item yang gagal, perbaiki masalahnya, lalu klik Precheck Again.
Jika peringatan dipicu: untuk item yang tidak dapat diabaikan, perbaiki masalah dan jalankan ulang pemeriksaan awal. Untuk item yang dapat diabaikan, klik Confirm Alert Details > Ignore > OK > Precheck Again. Mengabaikan peringatan dapat menyebabkan inkonsistensi data.

Langkah 5: Beli instans

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

  2. Di halaman buy, konfigurasikan parameter berikut.

ParameterDeskripsi
Billing MethodSubscription: Bayar di muka. Lebih hemat biaya untuk penggunaan jangka panjang. Pay-as-you-go: Ditagih per jam. Cocok untuk penggunaan jangka pendek. Rilis instans saat tidak lagi diperlukan untuk menghentikan tagihan.
Resource Group SettingsKelompok sumber daya untuk instans sinkronisasi. Default: default resource group. Lihat Apa itu Resource Management?
Instance ClassKelas instans menentukan kecepatan sinkronisasi. Lihat Kelas instans.
Subscription DurationTersedia hanya untuk metode penagihan Subscription. Opsi: 1–9 bulan, atau 1, 2, 3, atau 5 tahun.
  1. Baca dan pilih Data Transmission Service (Pay-as-you-go) Service Terms.

  2. Klik Buy and Start, lalu klik OK di kotak dialog.

Setelah tugas dimulai, pantau perkembangannya di daftar tugas.

Pemetaan tipe data

Tabel berikut menunjukkan cara tipe data MongoDB dipetakan ke tipe data PolarDB for MySQL.

Tipe data MongoDBTipe data PolarDB for MySQLCatatan
ObjectIdVARCHARDisimpan sebagai representasi string.
StringVARCHAR
DocumentVARCHAR
DbPointerVARCHAR
ArrayVARCHAR
DateDATETIME
TimeStampDATETIME
DoubleDOUBLEPresisi default 308 digit melalui ROUND(COLUMN,PRECISION) jika tidak ditentukan.
Integer 32-bit (BsonInt32)INTEGER
Integer 64-bit (BsonInt64)BIGINT
Decimal128DECIMAL
BooleanBOOLEAN
NullVARCHAR

Contoh pemetaan field

Contoh berikut menggunakan struktur dokumen sumber dan skema tabel tujuan berikut.

Struktur data instans ApsaraDB for MongoDB sumber

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

Skema tabel klaster PolarDB for MySQL tujuan

Nama kolomTipeCatatan
mongo_idvarcharKunci primer
person_namevarchar
person_agedecimal

Konfigurasi kolom baru

Ketiga kolom tujuan memerlukan ekspresi field bersarang karena person adalah field induk yang berisi subfield.

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

Menentukan hanya bson_value("person") tidak menyinkronkan subfield name, age, atau sex ke kolom individual. Selalu gunakan jalur hierarkis lengkap dalam ekspresi bson_value().

Setelah konfigurasi ini, tabel tujuan menerima data dalam struktur berikut:

mongo_idperson_nameperson_age
62cd344c85c1ea6a2a9f****neo26