All Products
Search
Document Center

Data Transmission Service:Sinkronisasi\ data\ dari\ ApsaraDB\ for\ MongoDB\ ke\ AnalyticDB\ for\ PostgreSQL

Last Updated:Mar 29, 2026

Layanan Transmisi Data (DTS) secara terus-menerus menyinkronkan data dari instans ApsaraDB for MongoDB berupa replica set atau sharded cluster ke instans AnalyticDB for PostgreSQL. Topik ini mencakup sinkronisasi data penuh dan sinkronisasi data inkremental.

Prasyarat

Sebelum memulai, pastikan Anda telah:

  • Memiliki instans AnalyticDB for PostgreSQL dengan ruang penyimpanan yang tersedia lebih besar daripada ukuran total data pada instans sumber ApsaraDB for MongoDB. Sediakan ruang penyimpanan tujuan sebesar 110% dari ukuran data sumber untuk menjaga ruang cadangan 10%. Untuk membuat instans, lihat Create an instance.

  • Membuat database, skema, dan tabel dengan kolom kunci primer di instans tujuan untuk menerima data. Untuk sintaks SQL, lihat SQL syntax.

Penting
  • Tipe data setiap kolom tujuan harus kompatibel dengan field MongoDB yang sesuai. Misalnya, jika field _id bertipe ObjectId, tipe kolom tujuan harus varchar.

  • Jangan memberi nama kolom tujuan apa pun sebagai _id atau _value.

  • (Untuk sumber berupa sharded cluster) Memiliki endpoint, username, dan password semua node shard. Semua akun shard harus menggunakan kredensial yang sama. Untuk mendapatkan endpoint shard, lihat Apply for an endpoint for a shard.

Penagihan

Tipe sinkronisasiBiaya
Sinkronisasi data penuhGratis
Sinkronisasi data inkrementalDikenai biaya. Lihat Billing overview.

Tipe sinkronisasi

Tipe sinkronisasiDeskripsi
Sinkronisasi data penuhDTS menyalin seluruh data yang ada dari koleksi yang dipilih di instans sumber ke instans tujuan.
Sinkronisasi data inkrementalSetelah sinkronisasi data penuh selesai, DTS terus-menerus menerapkan operasi insert, update, dan delete dari sumber ke tujuan. Untuk data inkremental berbasis file, hanya perintah $set yang didukung.

Izin yang diperlukan

Metode sinkronisasi inkremental yang tersedia untuk DTS bergantung pada izin yang diberikan kepada akun database.

DatabaseIzin yang diperlukanMetode sinkronisasi inkrementalReferensi
Instans sumber ApsaraDB for MongoDBIzin baca pada database sumber, admin, dan localOplog (direkomendasikan untuk sinkronisasi latensi rendah) atau ChangeStreamManage the permissions of MongoDB database users
Instans tujuan AnalyticDB for PostgreSQLIzin baca dan tulis pada database tujuan. Gunakan akun awal atau akun dengan izin RDS_SUPERUSER.N/AMembuat dan mengelola akun database serta Mengelola pengguna dan izin

Pemilihan antara Oplog dan ChangeStream:

MetodePersyaratanCatatan
Oplog (direkomendasikan)Oplog diaktifkan dan menyimpan data log minimal selama 7 hariDiaktifkan secara default baik pada MongoDB self-managed maupun ApsaraDB for MongoDB. Latensi lebih rendah karena pengambilan log yang cepat.
ChangeStreamMongoDB 4.0 atau versi lebih baru; change streams diaktifkanTidak mendukung sinkronisasi dua arah. Diperlukan untuk kluster Amazon DocumentDB non-elastis (atur Migration Method ke ChangeStream dan Architecture ke Sharded Cluster).

Batasan

Batasan database sumber

LimitDetail
BandwidthServer database sumber harus memiliki bandwidth keluar yang cukup; jika tidak, kecepatan sinkronisasi akan terpengaruh.
Pemetaan nama koleksiSaat mengonfigurasi pemetaan nama untuk koleksi, satu tugas mendukung hingga 1.000 koleksi. Untuk koleksi lebih banyak, buat beberapa tugas atau sinkronkan seluruh database.
Sharded cluster: keunikan _idField _id di setiap koleksi harus unik; jika tidak, ketidakkonsistenan data dapat terjadi.
Sharded cluster: batas node MongosJumlah node Mongos tidak boleh melebihi 10.
Sharded cluster: dokumen yatim (orphaned documents)Instans sumber tidak boleh mengandung dokumen yatim. Dokumen yatim menyebabkan ketidakkonsistenan data dan kegagalan tugas. Lihat dokumentasi MongoDB dan How do I delete orphaned documents?
Tipe sumber yang tidak didukungInstans ApsaraDB for MongoDB standalone, kluster Azure Cosmos DB for MongoDB, dan kluster elastis Amazon DocumentDB tidak didukung sebagai sumber. DTS tidak dapat terhubung ke database MongoDB melalui endpoint SRV.
Retensi oplog atau change streamOplog harus diaktifkan dan menyimpan data log minimal selama tujuh hari, atau change streams harus diaktifkan. Jika DTS tidak dapat mengakses perubahan selama tujuh hari terakhir, sinkronisasi gagal dan ketidakkonsistenan atau kehilangan data dapat terjadi. Hal ini tidak dicakup oleh SLA DTS.

Pembatasan selama sinkronisasi:

  • Selama sinkronisasi data penuh, jangan memodifikasi skema database atau koleksi, atau mengubah data bertipe ARRAY. Tindakan tersebut menyebabkan kegagalan tugas atau ketidakkonsistenan data.

  • Jika sumber berupa sharded cluster, jangan menjalankan perintah yang mengubah distribusi data—shardCollection, reshardCollection, unshardCollection, moveCollection, atau movePrimary—selama tugas berjalan. Tindakan tersebut menyebabkan ketidakkonsistenan data.

  • Jika balancer aktif pada sumber sharded cluster, latensi dapat meningkat selama sinkronisasi.

Batasan lainnya

BatasDetail
Tipe objekHanya koleksi yang dapat dipilih sebagai objek sinkronisasi.
Persyaratan kunci primerTabel tujuan harus memiliki kunci primer unik bersifat kolom tunggal (bukan kunci primer komposit). Ekspresi bson_value("_id") harus ditetapkan ke kolom kunci primer.
Nama kolom yang dicadangkanTabel tujuan tidak boleh berisi kolom bernama _id atau _value.
Tabel append-optimizedTabel tujuan tidak boleh berupa tabel append-optimized (AO).
Database yang dikecualikanDTS tidak dapat menyinkronkan data dari database admin, config, atau local.
TransaksiInformasi transaksi tidak dipertahankan. Transaksi ditulis ke tujuan sebagai catatan individual.
Presisi FLOAT/DOUBLEDTS menggunakan ROUND(COLUMN,PRECISION) untuk mengambil nilai dari kolom FLOAT dan DOUBLE. Presisi default adalah 38 digit untuk FLOAT dan 308 digit untuk DOUBLE. Pastikan hal ini memenuhi kebutuhan Anda.
Pemulihan otomatis tugasDTS mencoba memulihkan tugas yang gagal hingga tujuh hari. Sebelum mengalihkan beban kerja ke tujuan, hentikan atau lepas tugas yang gagal, atau jalankan REVOKE untuk menghapus izin tulis DTS pada tujuan. Jika tidak, data sumber dapat menimpa data tujuan setelah pemulihan otomatis.
Perhitungan latensiDTS menghitung latensi sinkronisasi inkremental berdasarkan waktu data terbaru yang disinkronkan. Jika tidak ada penulisan pada sumber dalam periode panjang, latensi yang dilaporkan mungkin tidak akurat. Lakukan update pada sumber untuk memperbarui pembacaan latensi.
Kegagalan tugas DTSJika tugas DTS gagal, tim dukungan DTS akan mencoba memulihkannya dalam waktu 8 jam. Selama pemulihan, tugas mungkin dimulai ulang dan parameter tugas mungkin dimodifikasi. Parameter database tidak dimodifikasi.

Buat tugas sinkronisasi

Langkah 1: Buka halaman Sinkronisasi Data

Gunakan salah satu metode berikut:

Konsol DTS

  1. Masuk ke Konsol DTS.

  2. Di panel navigasi kiri, klik Data Synchronization.

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

Konsol DMS

Langkah-langkah dapat berbeda tergantung pada mode dan tata letak konsol DMS. Lihat Simple mode dan Customize the layout and style of the DMS console.
  1. Masuk ke Konsol DMS.

  2. Di bilah navigasi atas, arahkan kursor ke Data + AI lalu pilih DTS (DTS) > Data Synchronization.

  3. Dari daftar drop-down di samping Data Synchronization Tasks, pilih wilayah tempat instans sinkronisasi berada.

Langkah 2: Konfigurasi database sumber dan tujuan

Klik Create Task, lalu konfigurasi parameter di bawah ini.

BagianParameterDeskripsi
N/ATask NameMasukkan nama deskriptif untuk mengidentifikasi tugas. Nama tidak perlu unik. DTS akan menghasilkan nama secara otomatis jika Anda melewati bidang ini.
Source DatabaseSelect Existing ConnectionJika instans sumber sudah terdaftar di DTS, pilih dari daftar drop-down. DTS akan mengisi otomatis parameter lainnya. Jika tidak, konfigurasi parameter berikut secara manual. Di konsol DMS, pilih instans dari Select a DMS database instance.
Database TypePilih MongoDB.
Access MethodPilih Alibaba Cloud Instance.
Instance RegionPilih wilayah tempat instans sumber ApsaraDB for MongoDB berada.
Replicate Data Across Alibaba Cloud AccountsPilih No untuk menggunakan instans di bawah Akun Alibaba Cloud saat ini.
ArchitecturePilih arsitektur instans sumber: Replica Set atau Sharded Cluster. Jika Anda memilih Sharded Cluster, konfigurasikan juga Shard account dan Shard password.
Migration MethodPilih cara DTS membaca data inkremental dari sumber: Oplog (direkomendasikan jika oplog diaktifkan) atau ChangeStream (untuk MongoDB 4.0+ atau kluster Amazon DocumentDB non-elastis). Jika Sharded Cluster dipilih untuk Architecture dan ChangeStream untuk Migration Method, kredensial shard tidak diperlukan.
Instance IDPilih ID instans sumber ApsaraDB for MongoDB.
Authentication DatabaseMasukkan nama database autentikasi. Nilai default adalah admin.
Database AccountMasukkan akun database. Lihat Required permissions.
Database PasswordMasukkan password untuk akun database.
EncryptionPilih Non-encrypted, SSL-encrypted, atau Mongo Atlas SSL sesuai kebutuhan Anda. Opsi yang tersedia bergantung pada Access Method dan Architecture. Opsi yang ditampilkan di konsol DTS memiliki prioritas.
Catatan

SSL-encrypted tidak tersedia jika Architecture adalah Sharded Cluster dan Migration Method adalah Oplog. Untuk replica set MongoDB self-managed dengan SSL-encrypted dipilih, unggah sertifikat CA untuk memverifikasi koneksi.

Destination DatabaseSelect Existing ConnectionJika instans tujuan sudah terdaftar di DTS, pilih dari daftar drop-down. DTS akan mengisi otomatis parameter lainnya. Jika tidak, konfigurasi parameter berikut secara manual. Di konsol DMS, pilih instans dari Select a DMS database instance.
Database TypePilih AnalyticDB for PostgreSQL.
Access MethodPilih Alibaba Cloud Instance.
Instance RegionPilih wilayah tempat instans tujuan AnalyticDB for PostgreSQL berada.
Instance IDPilih ID instans tujuan AnalyticDB for PostgreSQL.
Database NameMasukkan nama database di instans tujuan yang akan menerima data yang disinkronkan.
Database AccountMasukkan akun database. Lihat Required permissions.
Database PasswordMasukkan password untuk akun database.

Langkah 3: Uji konektivitas

Klik Test Connectivity and Proceed di bagian bawah halaman.

DTS secara otomatis menambahkan blok CIDR-nya ke pengaturan keamanan database sumber dan tujuan. Untuk informasi lebih lanjut, lihat Add the CIDR blocks of DTS servers.
Jika database sumber atau tujuan bersifat self-managed dan Access Method bukan Alibaba Cloud Instance, klik Test Connectivity di kotak dialog CIDR Blocks of DTS Servers.

Langkah 4: Konfigurasi objek yang akan disinkronkan

Pada langkah Configure Objects, atur parameter berikut.

ParameterDeskripsi
Synchronization TypesSecara default, Incremental Data Synchronization dipilih. Secara opsional pilih Full Data Synchronization. Schema Synchronization tidak didukung.
DDL and DML Operations to Be SynchronizedPilih operasi DDL dan DML yang akan disinkronkan selama sinkronisasi data inkremental di tingkat instans. Untuk mengonfigurasi di tingkat koleksi, klik kanan koleksi di bagian Selected Objects.
Processing Mode of Conflicting TablesPrecheck and Report Errors (default): Pemeriksaan Awal memverifikasi bahwa tidak ada tabel tujuan yang memiliki nama sama dengan koleksi sumber. Jika ada nama duplikat, tugas tidak dapat dimulai. Gunakan pemetaan nama objek untuk mengganti nama objek. Lihat Map object names. Ignore Errors and Proceed: Melewati pemeriksaan nama duplikat.
Peringatan

Hal ini dapat menyebabkan ketidakkonsistenan data. Selama sinkronisasi data penuh, jika catatan dengan kunci primer yang sama sudah ada di tujuan, DTS mempertahankan catatan tujuan yang ada. Selama sinkronisasi data inkremental, DTS menimpa catatan tujuan yang ada.

Source ObjectsPilih koleksi dari Source Objects lalu klik ikon 向右 untuk memindahkannya ke Selected Objects.
Selected ObjectsKonfigurasi pemetaan nama database, pemetaan nama tabel, dan pemetaan field seperti dijelaskan dalam langkah-langkah berikut.

Konfigurasi pemetaan nama database:

  1. Di Selected Objects, klik kanan database yang berisi koleksi yang akan disinkronkan.image

  2. Ubah Database Name menjadi nama skema di instans tujuan AnalyticDB for PostgreSQL.image

  3. (Opsional) Di Select DDL and DML Operations to Be Synchronized, pilih operasi yang akan disinkronkan selama sinkronisasi data inkremental.image

  4. Klik OK.

Konfigurasi pemetaan nama tabel:

  1. Di Selected Objects, klik kanan koleksi.image

  2. Ubah Table Name menjadi nama tabel di instans tujuan.image

  3. (Opsional) Tentukan kondisi filter untuk menyinkronkan subset data. Lihat Specify filter conditions.image

  4. (Opsional) Di Select DDL and DML Operations to Be Synchronized, pilih operasi yang akan disinkronkan selama sinkronisasi data inkremental.image

Konfigurasi pemetaan field:

DTS menghasilkan ekspresi bson_value() default untuk setiap field dalam koleksi. Tinjau dan perbarui pemetaan sebagai berikut.

  1. Di kolom Assign Value, ekspresi bson_value() menampilkan nama field sumber dalam tanda kutip. Misalnya, bson_value("age") memetakan field age dari MongoDB.

  2. (Opsional) Klik ikon image di samping baris untuk menghapus field yang tidak perlu disinkronkan.

  3. Konfigurasi pemetaan berdasarkan apakah ekspresi default sesuai:

    Field dengan ekspresi yang sesuai

    1. Atur Column Name menjadi nama kolom tujuan.

    2. Pilih Type untuk setiap kolom. Pastikan tipe tersebut kompatibel dengan field sumber.

    3. (Opsional) Atur Length dan Precision.

    4. Ulangi untuk semua kolom.

    Field dengan ekspresi yang tidak sesuai

    Catatan

    Misalnya, untuk field bersarang dengan hubungan induk-anak.

    1. Klik ikon image di samping baris.

    2. Klik + Add Column.image

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

    4. Masukkan ekspresi bson_value() di Assign Value. Untuk field bersarang, tentukan setiap level hierarki (lihat Field mapping example).

      Penting
      • Tetapkan bson_value("_id") ke kolom kunci primer tabel tujuan.

      • Tentukan path field lengkap dalam ekspresi bson_value() untuk setiap kolom. Menentukan hanya field tingkat atas (misalnya, bson_value("person")) mencegah DTS menulis data inkremental ke subfield.

    5. Ulangi untuk semua kolom.

  4. Klik OK.

Langkah 5: Konfigurasi pengaturan lanjutan

Klik Next: Advanced Settings untuk mengonfigurasi parameter berikut.

ParameterDeskripsi
Dedicated Cluster for Task SchedulingSecara default, DTS menggunakan kluster bersama. Untuk meningkatkan stabilitas, beli kluster khusus. Lihat What is a DTS dedicated cluster.
Retry Time for Failed ConnectionsRentang waktu selama DTS mencoba koneksi yang gagal. Nilai valid: 10–1.440 menit. Default: 720 menit. Atur minimal 30 menit. Jika sumber atau tujuan yang sama digunakan di beberapa tugas, waktu retry terpendek yang dikonfigurasi berlaku. DTS menagih instans selama periode retry.
Retry Time for Other IssuesRentang waktu selama DTS mencoba ulang operasi DDL atau DML yang gagal. Nilai valid: 1–1.440 menit. Default: 10 menit. Atur minimal 10 menit. Nilai ini harus lebih kecil daripada Retry Time for Failed Connections.
Enable Throttling for Full Data SynchronizationBatasi penggunaan sumber daya selama sinkronisasi data penuh dengan mengatur Queries per second (QPS) to the source database, RPS of Full Data Migration, dan Data migration speed for full migration (MB/s). Tersedia hanya jika Full Data Synchronization dipilih.
Only one data type for primary key _id in a table of the data to be synchronizedTentukan apakah field _id memiliki satu tipe data di seluruh dokumen dalam koleksi. Yes: DTS melewati pemindaian tipe data dan hanya menyinkronkan dokumen dengan satu tipe _id per koleksi. No: DTS memindai semua tipe data _id dan menyinkronkan semua dokumen. Tersedia hanya jika Full Data Synchronization dipilih.
Enable Throttling for Incremental Data SynchronizationBatasi penggunaan sumber daya selama sinkronisasi data inkremental dengan mengatur RPS of Incremental Data Synchronization dan Data synchronization speed for incremental synchronization (MB/s).
Environment TagBeri label lingkungan pada instans DTS. Opsional.
Configure ETLAktifkan fitur ekstrak, transformasi, muat (ETL) untuk menerapkan transformasi data selama sinkronisasi. Lihat What is ETL? dan Configure ETL in a data migration or data synchronization task.
Monitoring and AlertingKonfigurasi peringatan untuk memberi tahu kontak jika tugas gagal atau latensi sinkronisasi melebihi ambang batas. Lihat Configure monitoring and alerting when you create a DTS task.

Langkah 6: Jalankan Pemeriksaan Awal

Klik Next: Save Task Settings and Precheck.

Untuk melihat parameter API untuk konfigurasi tugas ini, arahkan kursor ke tombol lalu klik Preview OpenAPI parameters.
DTS menjalankan Pemeriksaan Awal sebelum memulai tugas. Tugas hanya dimulai setelah Pemeriksaan Awal berhasil.
Jika Pemeriksaan Awal gagal, klik View Details di samping setiap item yang gagal, selesaikan masalahnya, lalu jalankan Pemeriksaan Awal lagi.
Jika Pemeriksaan Awal memicu peringatan: jika peringatan tidak dapat diabaikan, selesaikan dan jalankan ulang. Jika dapat diabaikan, klik Confirm Alert Details > Ignore > OK, lalu klik Precheck Again.

Langkah 7: Beli dan mulai instans

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

  2. Di halaman buy, konfigurasi parameter berikut.

BagianParameterDeskripsi
New Instance ClassBilling MethodSubscription: Bayar di muka untuk periode tetap. Lebih hemat biaya untuk penggunaan jangka panjang. Pay-as-you-go: Ditagih per jam. Cocok untuk penggunaan jangka pendek. Lepaskan instans saat tidak diperlukan lagi untuk menghentikan tagihan.
Resource Group SettingsPilih kelompok sumber daya untuk instans. Default: default resource group. Lihat What is Resource Management?
Instance ClassPilih kelas instans berdasarkan kecepatan sinkronisasi yang dibutuhkan. Lihat Instance classes of data synchronization instances.
Subscription DurationTentukan durasi langganan dan jumlah instans yang akan dibuat. Tersedia untuk 1–9 bulan, atau 1, 2, 3, atau 5 tahun. Tersedia hanya untuk metode penagihan Subscription.
  1. Baca dan pilih Data Transmission Service (Pay-as-you-go) Service Terms.

  2. Klik Buy and Start. Di kotak dialog, klik OK.

Tugas muncul di daftar tugas. Anda dapat memantau progres sinkronisasi di sana.

Contoh pemetaan field

Contoh ini menunjukkan cara memetakan field dari dokumen MongoDB bersarang ke kolom datar di AnalyticDB for PostgreSQL.

Struktur dokumen sumber:

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

Skema tabel tujuan:

Nama kolomTipeCatatan
mongo_idvarcharKolom kunci primer
person_namevarchar
person_agedecimal

Konfigurasi pemetaan field di DTS:

Nama kolomTipeAssign Value
mongo_idSTRINGbson_value("_id")
person_nameSTRINGbson_value("person","name")
person_ageDECIMALbson_value("person","age")

Setelah sinkronisasi, tabel tujuan berisi:

mongo_idperson_nameperson_age
62cd344c85c1ea6a2a9f****neo26
Penting

Selalu tentukan path field lengkap dalam bson_value() untuk field bersarang. Menggunakan bson_value("person") alih-alih bson_value("person","name") memetakan seluruh objek person sebagai satu nilai dan mencegah DTS menulis pembaruan inkremental ke subfield individual.