全部产品
Search
文档中心

Data Transmission Service:Menyinkronkan data dari instans replika ApsaraDB for MongoDB ke fungsi Function Compute

更新时间:Jul 06, 2025

Topik ini menjelaskan cara menyinkronkan data inkremental dari instans ApsaraDB for MongoDB set replika ke fungsi Function Compute menggunakan Data Transmission Service (DTS). Anda dapat menulis kode fungsi untuk memproses lebih lanjut data yang disinkronkan.

Prasyarat

  • Instans sumber ApsaraDB for MongoDB set replika telah dibuat. Untuk informasi lebih lanjut, lihat Buat Instans Set Replika.

  • Layanan tujuan dan fungsi telah dibuat, serta parameter Handler Type diatur ke Event Handler untuk fungsi tersebut. Untuk informasi lebih lanjut tentang cara membuat fungsi, lihat Buat Fungsi dengan Cepat.

Catatan penggunaan

Kategori

Deskripsi

Batasan pada database sumber

  • Persyaratan bandwidth: Server tempat database sumber ditempatkan harus memiliki bandwidth keluar yang cukup. Jika tidak, kecepatan penyinkronan data akan terpengaruh.

  • Koleksi yang akan disinkronkan harus memiliki PRIMARY KEY atau UNIQUE constraints dan semua bidang harus unik. Jika tidak, database tujuan mungkin berisi catatan data duplikat.

  • Ukuran satu entri data dalam database sumber tidak boleh melebihi 16 MB. Jika tidak, DTS tidak dapat menulis data ke fungsi tujuan dan kesalahan akan dilaporkan. Jika Anda tidak ingin menyinkronkan semua bidang, Anda dapat menggunakan fitur extract, transform, dan load (ETL) untuk memfilter data dengan bidang besar.

  • Jika objek yang akan disinkronkan adalah koleksi, Anda dapat menyinkronkan hingga 1.000 koleksi sekaligus. Jika Anda menjalankan tugas untuk menyinkronkan lebih dari 1.000 koleksi, kesalahan permintaan akan terjadi. Dalam hal ini, kami sarankan Anda mengonfigurasi beberapa tugas untuk menyinkronkan koleksi atau mengonfigurasi satu tugas untuk menyinkronkan seluruh database.

  • Database sumber tidak bisa menjadi klaster Azure Cosmos DB untuk MongoDB atau klaster elastis Amazon DocumentDB.

  • Fitur oplog harus diaktifkan untuk database sumber dan harus menyimpan data log setidaknya selama tujuh hari. Sebagai alternatif, aliran perubahan harus diaktifkan untuk memastikan bahwa DTS dapat berlangganan perubahan data dalam database sumber dalam tujuh hari terakhir. Jika tidak, DTS mungkin gagal mendapatkan perubahan data dalam database sumber dan penyinkronan data gagal. Dalam beberapa keadaan, ketidaksesuaian data atau kehilangan data mungkin terjadi. Masalah yang timbul dalam keadaan seperti itu tidak dicakup oleh perjanjian tingkat layanan (SLA) DTS.

    Penting
    • Kami sarankan Anda menggunakan oplog untuk mencatat perubahan data dalam database sumber.

    • Hanya MongoDB 4.0 dan versi lebih baru yang memungkinkan Anda menggunakan aliran perubahan untuk mendapatkan perubahan data dalam database sumber. Sinkronisasi dua arah tidak didukung saat Anda menggunakan aliran perubahan untuk mendapatkan perubahan data dalam database sumber.

    • Jika database sumber adalah klaster Amazon DocumentDB non-elastis, Anda harus mengaktifkan aliran perubahan dan mengatur parameter Migration Method ke ChangeStream dan parameter Architecture ke Sharded Cluster.

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

Batasan lainnya

  • DTS tidak dapat menyinkronkan data dari database admin atau local.

  • Penyinkronan data penuh tidak didukung.

  • Penyinkronan lintas wilayah tidak didukung.

  • Fitur pemetaan tidak didukung.

  • Kami sarankan Anda mengonfigurasi hanya satu tugas DTS untuk menyinkronkan data ke satu fungsi. Jika tidak, kesalahan mungkin terjadi pada data fungsi tujuan.

  • Informasi transaksi tidak dipertahankan. Saat transaksi disinkronkan ke database tujuan, transaksi dikonversi menjadi catatan tunggal.

  • Jika instans gagal berjalan, staf dukungan teknis DTS akan mencoba memulihkan instans dalam waktu 8 jam. Selama proses pemulihan, instans mungkin dimulai ulang atau parameter mungkin disesuaikan.

    Catatan

    Saat parameter disesuaikan, hanya parameter instans DTS yang dimodifikasi. Parameter database tidak dimodifikasi. Parameter yang mungkin dimodifikasi termasuk tetapi tidak terbatas pada parameter dalam Ubah parameter instans.

Kasus khusus

Jika database sumber adalah database MongoDB yang dikelola sendiri, perhatikan batasan berikut:

  • Jika Anda melakukan switchover primer/sekunder pada database sumber saat tugas penyinkronan data sedang berjalan, tugas tersebut gagal.

  • DTS menghitung latensi sinkronisasi berdasarkan timestamp data tersinkronisasi terbaru dalam database tujuan dan timestamp saat ini dalam database sumber. Jika tidak ada operasi pembaruan yang dilakukan pada database sumber untuk jangka waktu yang lama, latensi sinkronisasi mungkin tidak akurat. Jika latensi tugas sinkronisasi terlalu tinggi, Anda dapat melakukan operasi pembaruan pada database sumber untuk memperbarui latensi.

Catatan

Jika Anda memilih seluruh database sebagai objek yang akan disinkronkan, Anda dapat membuat tabel detak jantung. Tabel detak jantung diperbarui atau menerima data setiap detik.

Penagihan

Tipe sinkronisasi

Biaya konfigurasi tugas

Penyinkronan data inkremental

Dikenakan biaya. Untuk informasi lebih lanjut, lihat Ikhtisar penagihan.

Operasi yang mendukung penyinkronan data

Tipe sinkronisasi

Deskripsi

Penyinkronan data inkremental

Gunakan oplog

Tugas DTS tidak menyinkronkan data inkremental dari database yang dibuat setelah tugas mulai berjalan. DTS menyinkronkan data inkremental yang dihasilkan oleh operasi berikut:

  • CREATE COLLECTION dan CREATE INDEX

  • DROP DATABASE, DROP COLLECTION, dan DROP INDEX

  • RENAME COLLECTION

  • Operasi yang dilakukan untuk menyisipkan, memperbarui, dan menghapus dokumen dalam koleksi.

    Catatan

    Saat tugas DTS menyinkronkan data inkremental dari file, hanya perintah $set yang dapat dijalankan secara sinkron.

Gunakan aliran perubahan

DTS menyinkronkan data inkremental yang dihasilkan oleh operasi berikut:

  • DROP DATABASE dan DROP COLLECTION

  • RENAME COLLECTION

  • Operasi yang dilakukan untuk menyisipkan, memperbarui, dan menghapus dokumen dalam koleksi.

    Catatan

    Saat tugas DTS menyinkronkan data inkremental dari file, hanya perintah $set yang dapat dijalankan secara sinkron.

Izin yang diperlukan untuk akun database

Database

Izin yang diperlukan

Referensi

Instans sumber MongoDB

Izin baca pada database sumber, admin, dan local.

Kelola izin pengguna database MongoDB

Prosedur

  1. Gunakan salah satu metode berikut untuk pergi ke halaman Penyinkronan Data dan pilih wilayah tempat instans penyinkronan data berada.

    Konsol DTS

    1. Masuk ke Konsol DTS.

    2. Di bilah navigasi sebelah kiri, klik Data Synchronization.

    3. Di sudut kiri atas halaman, pilih wilayah tempat tugas penyinkronan data berada.

    Konsol DMS

    Catatan

    Operasi sebenarnya mungkin berbeda berdasarkan mode dan tata letak Konsol DMS. Untuk informasi lebih lanjut, lihat Mode Sederhana dan Sesuaikan Tata Letak dan Gaya Konsol DMS.

    1. Masuk ke Konsol DMS.

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

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

  2. Klik Create Task untuk pergi ke halaman konfigurasi tugas.

  3. Konfigurasikan database sumber dan tujuan. Tabel berikut menjelaskan parameter.

    Bagian

    Parameter

    Deskripsi

    N/A

    Task Name

    Nama tugas DTS. DTS secara otomatis menghasilkan nama tugas. Kami sarankan Anda menentukan nama deskriptif yang memudahkan identifikasi tugas. Anda tidak perlu menentukan nama tugas yang unik.

    Source Database

    Select Existing Connection

    • Jika Anda menggunakan instans database yang terdaftar dengan DTS, pilih instans dari daftar drop-down. DTS secara otomatis mengisi parameter database berikut untuk instans tersebut. Untuk informasi lebih lanjut, lihat Kelola koneksi database.

      Catatan

      Di Konsol DMS, Anda dapat memilih instans database dari daftar drop-down Select a DMS database instance.

    • Jika Anda gagal mendaftarkan instans dengan DTS, atau Anda tidak perlu menggunakan instans yang terdaftar dengan DTS, Anda harus mengonfigurasi informasi database berikut.

    Database Type

    Tipe database sumber. Pilih MongoDB.

    Access Method

    Metode akses database sumber. Pilih Alibaba Cloud Instance.

    Instance Region

    Wilayah tempat instans sumber MongoDB berada.

    Replicate Data Across Alibaba Cloud Accounts

    Menentukan apakah data disinkronkan lintas akun Alibaba Cloud. Dalam contoh ini, No dipilih.

    Architecture

    Arsitektur tempat database sumber diterapkan. Pilih Replica Set.

    Migration Method

    Metode yang digunakan untuk menyinkronkan data inkremental dari database sumber. Pilih metode berdasarkan kebutuhan bisnis Anda. Nilai valid:

    • Oplog (direkomendasikan):

      Opsi ini tersedia jika fitur oplog diaktifkan untuk database sumber.

      Catatan

      Secara default, fitur oplog diaktifkan untuk kedua database MongoDB yang dikelola sendiri dan instans ApsaraDB for MongoDB. Fitur ini memungkinkan Anda menyinkronkan data inkremental dengan latensi rendah karena kecepatan penarikan log yang cepat. Oleh karena itu, kami sarankan Anda memilih Oplog untuk parameter Metode Migrasi.

    • ChangeStream:

      Opsi ini tersedia jika aliran perubahan diaktifkan untuk database sumber. Untuk informasi lebih lanjut, lihat Aliran Perubahan.

      Catatan
      • Jika database sumber adalah klaster inelastis Amazon DocumentDB, Anda hanya dapat mengatur parameter Metode Migrasi ke ChangeStream.

      • Jika Anda memilih Sharded Cluster untuk parameter Architecture, Anda tidak perlu mengonfigurasi parameter Shard account dan Shard password.

    Instance ID

    ID instans sumber MongoDB.

    Authentication Database

    Nama database otentikasi yang menyimpan akun dan kata sandi database dari instans sumber ApsaraDB for MongoDB. Jika Anda tidak mengubah nama database otentikasi sebelumnya, nilai defaultnya adalah admin.

    Database Account

    Akun database dari instans sumber ApsaraDB for MongoDB. Untuk informasi tentang izin yang diperlukan untuk akun tersebut, lihat bagian Izin yang diperlukan untuk akun database dari topik ini.

    Database Password

    Kata sandi yang digunakan untuk mengakses database.

    Encryption

    Menentukan apakah akan mengenkripsi koneksi ke database sumber. Anda dapat memilih Non-encrypted, SSL-encrypted, atau Mongo Atlas SSL berdasarkan kebutuhan bisnis Anda. Opsi yang tersedia untuk parameter Encryption ditentukan oleh nilai yang dipilih untuk parameter Access Method dan Architecture. Opsi yang ditampilkan di Konsol DTS yang berlaku.

    Catatan
    • Jika parameter Architecture diatur ke Sharded Cluster, dan parameter Migration Method diatur ke Oplog untuk database ApsaraDB for MongoDB, parameter Enkripsi SSL-encrypted tidak tersedia.

    • Jika database sumber adalah database MongoDB yang dikelola sendiri yang menggunakan arsitektur Replica Set, parameter Access Method tidak diatur ke Alibaba Cloud Instance, dan parameter Enkripsi diatur ke SSL-encrypted, Anda dapat mengunggah sertifikat otoritas sertifikasi (CA) untuk memverifikasi koneksi ke database sumber.

    Destination Database

    Select Existing Connection

    • Jika Anda menggunakan instans database yang terdaftar dengan DTS, pilih instans dari daftar drop-down. DTS secara otomatis mengisi parameter database berikut untuk instans tersebut. Untuk informasi lebih lanjut, lihat Kelola koneksi database.

      Catatan

      Di Konsol DMS, Anda dapat memilih instans database dari daftar drop-down Select a DMS database instance.

    • Jika Anda gagal mendaftarkan instans dengan DTS, atau Anda tidak perlu menggunakan instans yang terdaftar dengan DTS, Anda harus mengonfigurasi informasi database berikut.

    Database Type

    Tipe database tujuan. Pilih Function Compute.

    Access Method

    Metode akses database tujuan. Pilih Alibaba Cloud Instance.

    Instance Region

    Wilayah tempat database tujuan berada. Secara default, nilainya sama dengan parameter Instance Region dari database sumber dan tidak dapat diubah.

    Service

    Nama layanan tempat fungsi tujuan berada.

    Function

    Fungsi tujuan yang menerima data tersinkronisasi.

    Service Version and Alias

    Versi atau alias layanan. Konfigurasikan parameter ini berdasarkan kebutuhan bisnis Anda.

    • Jika Anda memilih Default Version, nilai parameter Service Version tetap pada LATEST.

    • Jika Anda memilih Specified Version, Anda harus mengonfigurasi parameter Service Version.

    • Jika Anda memilih Specified Alias, Anda harus mengonfigurasi parameter Service Alias.

    Catatan

    Untuk informasi lebih lanjut tentang istilah Function Compute, lihat Istilah.

  4. Klik Test Connectivity and Proceed di bagian bawah halaman.

    Catatan
    • Pastikan blok CIDR server DTS dapat ditambahkan secara otomatis atau manual ke pengaturan keamanan database sumber dan tujuan untuk mengizinkan akses dari server DTS. Untuk informasi lebih lanjut, lihat Tambahkan Blok CIDR Server DTS.

    • Jika database sumber atau tujuan adalah database yang dikelola sendiri dan parameter Access Method tidak diatur ke Alibaba Cloud Instance, klik Test Connectivity di kotak dialog CIDR Blocks of DTS Servers.

  5. Konfigurasikan objek yang akan disinkronkan.

    1. Di langkah Configure Objects, konfigurasikan objek yang ingin Anda sinkronkan.

      Parameter

      Deskripsi

      Synchronization Types

      Secara default, Incremental Data Synchronization dipilih dan Anda tidak dapat mengubah nilainya.

      Data Format

      Format penyimpanan data yang disinkronkan ke fungsi tujuan. Hanya format Canal Json yang didukung.

      Catatan

      Untuk informasi lebih lanjut tentang parameter format Canal JSON, lihat bagian Canal Json dari topik Format data klaster Kafka.

      Source Objects

      Pilih satu atau lebih objek dari bagian Source Objects dan klik ikon 向右 untuk menambahkan objek ke bagian Selected Objects.

      Catatan

      Pilih database atau koleksi sebagai objek yang akan disinkronkan.

      Selected Objects

      Di bagian Selected Objects, periksa data yang ingin Anda sinkronkan.

      Catatan
      • Untuk menghapus objek terpilih, pilih objek yang ingin Anda hapus di bagian Selected Objects dan klik ikon zuoyi.

      • Untuk menyinkronkan data inkremental berdasarkan database atau koleksi, klik kanan Selected Objects dan pilih operasi dalam kotak dialog yang muncul.

    2. Klik Next: Advanced Settings untuk mengonfigurasi pengaturan lanjutan.

      Parameter

      Deskripsi

      Dedicated Cluster for Task Scheduling

      Secara default, DTS menjadwalkan tugas ke klaster bersama jika Anda tidak menentukan klaster khusus. Jika Anda ingin meningkatkan stabilitas instans penyinkronan data, beli klaster khusus. Untuk informasi lebih lanjut, lihat Apa itu Klaster Khusus DTS.

      Retry Time for Failed Connections

      Rentang waktu ulang untuk koneksi gagal. Jika database sumber atau tujuan gagal terhubung setelah tugas penyinkronan data dimulai, DTS segera mencoba kembali koneksi dalam rentang waktu tersebut. Nilai valid: 10 hingga 1440. Unit: menit. Nilai default: 720. Kami sarankan Anda mengatur parameter ini ke nilai lebih besar dari 30. Jika DTS berhasil menyambung kembali ke database sumber dan tujuan dalam rentang waktu yang ditentukan, DTS melanjutkan tugas penyinkronan data. Jika tidak, tugas penyinkronan data gagal.

      Catatan
      • Jika Anda menentukan rentang waktu ulang yang berbeda untuk beberapa tugas penyinkronan data yang memiliki database sumber atau tujuan yang sama, rentang waktu ulang terpendek yang berlaku.

      • Saat DTS mencoba kembali koneksi, Anda akan dikenakan biaya untuk instans DTS. Kami sarankan Anda menentukan rentang waktu ulang berdasarkan kebutuhan bisnis Anda. Anda juga dapat melepaskan instans DTS sesegera mungkin setelah instans sumber dan tujuan dilepaskan.

      Retry Time for Other Issues

      Rentang waktu ulang untuk masalah lainnya. Misalnya, jika operasi DDL atau DML gagal dilakukan setelah tugas penyinkronan data dimulai, DTS segera mencoba kembali operasi dalam rentang waktu tersebut. Nilai valid: 1 hingga 1440. Unit: menit. Nilai default: 10. Kami sarankan Anda mengatur parameter ini ke nilai lebih besar dari 10. Jika operasi gagal berhasil dilakukan dalam rentang waktu yang ditentukan, DTS melanjutkan tugas penyinkronan data. Jika tidak, tugas penyinkronan data gagal.

      Penting

      Nilai parameter Retry Time for Other Issues harus lebih kecil dari nilai parameter Retry Time for Failed Connections.

      Obtain the entire document after it is updated.

      Menentukan apakah akan menyinkronkan data lengkap dokumen setelah operasi pembaruan ke database tujuan selama penyinkronan data inkremental.

      Catatan

      Parameter ini tersedia hanya jika Anda mengatur Migration Method ke ChangeStream.

      • Yes: menyinkronkan data lengkap dokumen setelah operasi pembaruan.

      • No: hanya menyinkronkan data yang diperbarui.

      Enable Throttling for Incremental Data Synchronization

      Menentukan apakah akan mengaktifkan pembatasan untuk penyinkronan data inkremental. Anda dapat mengaktifkan pembatasan untuk penyinkronan data inkremental berdasarkan kebutuhan bisnis Anda. Untuk mengonfigurasi pembatasan, Anda harus mengatur parameter RPS of Incremental Data Synchronization dan Data synchronization speed for incremental synchronization (MB/s). Ini mengurangi beban pada server database tujuan.

      Environment Tag

      Tag lingkungan yang digunakan untuk mengidentifikasi instans DTS. Anda dapat memilih tag lingkungan berdasarkan kebutuhan bisnis Anda. Dalam contoh ini, Anda tidak perlu mengonfigurasi parameter ini.

      Configure ETL

      Menentukan apakah akan mengaktifkan fitur extract, transform, dan load (ETL). Untuk informasi lebih lanjut, lihat Apa itu ETL? Nilai valid:

      Monitoring and Alerting

      Menentukan apakah akan mengonfigurasi peringatan untuk instans penyinkronan data. Jika tugas gagal atau latensi sinkronisasi melebihi ambang batas tertentu, kontak peringatan akan menerima notifikasi. Nilai valid:

      • No: Tidak mengaktifkan peringatan.

      • Yes: Mengonfigurasi peringatan. Dalam hal ini, Anda juga harus menetapkan ambang batas peringatan dan pengaturan notifikasi peringatan. Untuk informasi lebih lanjut, lihat bagian "Konfigurasikan pemantauan dan peringatan saat membuat tugas DTS" dari topik Konfigurasikan pemantauan dan peringatan.

  6. Simpan pengaturan tugas dan jalankan pra-pemeriksaan.

    • Untuk melihat parameter yang harus ditentukan saat Anda memanggil operasi API terkait untuk mengonfigurasi tugas DTS, arahkan pointer ke Next: Save Task Settings and Precheck dan klik Preview OpenAPI parameters.

    • Jika Anda tidak perlu melihat atau telah melihat parameter tersebut, klik Next: Save Task Settings and Precheck di bagian bawah halaman.

    Catatan
    • Sebelum Anda dapat memulai tugas penyinkronan data, DTS melakukan pra-pemeriksaan. Anda hanya dapat memulai tugas penyinkronan data setelah tugas tersebut lulus pra-pemeriksaan.

    • Jika tugas penyinkronan data gagal dalam pra-pemeriksaan, klik View Details di sebelah setiap item yang gagal. Setelah Anda menganalisis penyebab berdasarkan hasil pemeriksaan, atasi masalah tersebut. Kemudian, jalankan kembali pra-pemeriksaan.

    • Jika peringatan dipicu untuk suatu item selama pra-pemeriksaan:

      • Jika item peringatan tidak dapat diabaikan, klik View Details di sebelah item yang gagal dan atasi masalah tersebut. Kemudian, jalankan pra-pemeriksaan lagi.

      • Jika item peringatan dapat diabaikan, klik Confirm Alert Details. Di kotak dialog Lihat Detail, klik Ignore. Di pesan yang muncul, klik OK. Kemudian, klik Precheck Again untuk menjalankan pra-pemeriksaan lagi. Jika Anda mengabaikan item peringatan, ketidaksesuaian data mungkin terjadi, dan bisnis Anda mungkin terpapar risiko potensial.

  7. Beli instans.

    1. Tunggu hingga Success Rate menjadi 100%. Kemudian, klik Next: Purchase Instance.

    2. Di halaman buy, konfigurasikan parameter Metode Penagihan dan Kelas Instans untuk tugas penyinkronan data. Tabel berikut menjelaskan parameter tersebut.

      Bagian

      Parameter

      Deskripsi

      New Instance Class

      Metode Penagihan

      • Langganan: Anda membayar langganan saat membuat instans penyinkronan data. Metode penagihan langganan lebih hemat biaya daripada metode penagihan bayar sesuai pemakaian untuk penggunaan jangka panjang.

      • Bayar sesuai pemakaian: Instans bayar sesuai pemakaian ditagih per jam. Metode penagihan bayar sesuai pemakaian cocok untuk penggunaan jangka pendek. Jika Anda tidak lagi memerlukan instans penyinkronan data bayar sesuai pemakaian, Anda dapat melepaskan instans untuk mengurangi biaya.

      Pengaturan Grup Sumber Daya

      Grup sumber daya tempat instans penyinkronan data berada. Nilai default: default resource group. Untuk informasi lebih lanjut, lihat Apa itu Resource Management?

      Kelas Instans

      DTS menyediakan kelas instans yang bervariasi dalam kecepatan sinkronisasi. Anda dapat memilih kelas instans berdasarkan kebutuhan bisnis Anda. Untuk informasi lebih lanjut, lihat Kelas instans tugas penyinkronan data.

      Durasi Langganan

      Jika Anda memilih metode penagihan langganan, tentukan durasi langganan dan jumlah instans penyinkronan data yang ingin Anda buat. Durasi langganan bisa satu hingga sembilan bulan, satu tahun, dua tahun, tiga tahun, atau lima tahun.

      Catatan

      Parameter ini tersedia hanya jika Anda memilih metode penagihan Subscription.

    3. Baca dan pilih Data Transmission Service (Pay-as-you-go) Service Terms.

    4. Klik Buy and Start. Di kotak dialog yang muncul, klik OK.

      Anda dapat melihat kemajuan tugas di daftar tugas.

Apa yang harus dilakukan selanjutnya

  • Jika ukuran satu entri data yang akan disinkronkan melebihi 16 MB, kesalahan akan dilaporkan untuk tugas DTS. Anda dapat memodifikasi objek yang akan disinkronkan atau menggunakan fitur ETL untuk memfilter entri data berukuran besar. Untuk informasi lebih lanjut, lihat bagian Ubah konfigurasi ETL dari tugas penyinkronan data yang ada dari topik Konfigurasikan ETL dalam tugas migrasi atau sinkronisasi data dan Ubah objek yang akan disinkronkan.

  • Tulis kode fungsi berdasarkan kebutuhan bisnis Anda. Untuk informasi lebih lanjut, lihat Ikhtisar.

Format data yang diterima oleh fungsi tujuan

Data yang diterima oleh fungsi tujuan adalah tipe Objek. Data inkremental dari database sumber disimpan dalam bidang Records dalam format array. Setiap elemen dalam array menunjukkan catatan data tipe Objek. Tabel berikut menjelaskan bidang dalam catatan data tipe Objek.

Catatan

Fungsi tujuan menerima data yang mencatat dua jenis operasi SQL berikut:

  • DDL: operasi pada perubahan skema data, seperti CreateIndex, CreateCollection, DropIndex, dan DropCollection.

  • DML: operasi pada manajemen data, seperti INSERT, UPDATE, dan DELETE.

Parameter

Kategori

Deskripsi

isDdl

Boolean

Menunjukkan apakah operasi tersebut adalah operasi DDL. Nilai valid:

  • True

  • False

type

String

Tipe operasi SQL.

  • Nilai valid untuk operasi DML: DELETE, UPDATE, dan INSERT

  • Nilai valid untuk operasi DDL: DDL

database

String

Nama database MongoDB.

table

String

Nama koleksi dalam database MongoDB.

pkNames

String

Nama kunci utama dalam database MongoDB. Atur nilainya ke _id.

es

Long

Waktu operasi dilakukan pada database sumber. Nilainya adalah timestamp UNIX 13-bit. Unit: milidetik.

Catatan

Anda dapat menggunakan mesin pencari untuk mendapatkan konverter timestamp UNIX.

ts

Long

Waktu operasi mulai dilakukan pada database tujuan. Nilainya adalah timestamp UNIX 13-bit. Unit: milidetik.

Catatan

Anda dapat menggunakan mesin pencari untuk mendapatkan konverter timestamp UNIX.

data

Array Objek

Array yang hanya berisi satu elemen tipe Objek. Kunci elemen tersebut adalah doc, dan nilai elemen tersebut adalah string JSON.

Catatan

Deserialize nilai tersebut untuk mendapatkan catatan data.

old

Array Objek

Array tempat data asli disimpan. Format bidang ini sama dengan bidang data.

Penting

Bidang ini tersedia dan memiliki format yang sama dengan bidang data hanya jika nilai bidang type adalah UPDATE.

id

Int

Nomor seri operasi.

Contoh Operasi DDL dan Data yang Diterima oleh Fungsi Tujuan

Buat Koleksi

Pernyataan SQL

db.createCollection("testCollection")

Data yang Diterima oleh Fungsi Tujuan

{
	'Records': [{
		'data': [{
			'doc': '{"create": "testCollection", "idIndex": {"v": 2, "key": {"_id": 1}, "name": "_id_"}}'
		}],
		'pkNames': ['_id'],
		'type': 'DDL',
		'es': 1694056437000,
		'database': 'MongoDBTest',
		'id': 0,
		'isDdl': True,
		'table': 'testCollection',
		'ts': 1694056437510
	}]
}

Hapus Koleksi

Pernyataan SQL

db.testCollection.drop()

Data yang Diterima oleh Fungsi Tujuan

{
	'Records': [{
		'data': [{
			'doc': '{"drop": "testCollection"}'
		}],
		'pkNames': ['_id'],
		'type': 'DDL',
		'es': 1694056577000,
		'database': 'MongoDBTest',
		'id': 0,
		'isDdl': True,
		'table': 'testCollection',
		'ts': 1694056577789
	}]
}

Buat Indeks

Pernyataan SQL

db.testCollection.createIndex({name:1})

Data yang Diterima oleh Fungsi Tujuan

{
	'Records': [{
		'data': [{
			'doc': '{"createIndexes": "testCollection", "v": 2, "key": {"name": 1}, "name": "name_1"}'
		}],
		'pkNames': ['_id'],
		'type': 'DDL',
		'es': 1694056670000,
		'database': 'MongoDBTest',
		'id': 0,
		'isDdl': True,
		'table': 'testCollection',
		'ts': 1694056670719
	}]
}

Hapus Indeks

Pernyataan SQL

db.testCollection.dropIndex({name:1})

Data yang Diterima oleh Fungsi Tujuan

{
	'Records': [{
		'data': [{
			'doc': '{"dropIndexes": "testCollection", "index": "name_1"}'
		}],
		'pkNames': ['_id'],
		'type': 'DDL',
		'es': 1694056817000,
		'database': 'MongoDBTest',
		'id': 0,
		'isDdl': True,
		'table': '$cmd',
		'ts': 1694056818035
	}]
}

Contoh Operasi DML dan Data yang Diterima oleh Fungsi Tujuan

Sisipkan Data

Pernyataan SQL

// Sisipkan beberapa catatan data sekaligus.
db.runCommand({insert: "user", documents: [{"name":"jack","age":20},{"name":"lili","age":20}]})

// Sisipkan satu catatan data pada satu waktu.
db.user.insert({"name":"jack","age":20})
db.user.insert({"name":"lili","age":20})

Data yang Diterima oleh Fungsi Tujuan

{
	'Records': [{
		'data': [{
			'doc': '{"_id": {"$oid": "64f9397f6e255f74d65a****"}, "name": "jack", "age": 20}'
		}],
		'pkNames': ['_id'],
		'type': 'INSERT',
		'es': 1694054783000,
		'database': 'MongoDBTest',
		'id': 0,
		'isDdl': False,
		'table': 'user',
		'ts': 1694054784427
	}, {
		'data': [{
			'doc': '{"_id": {"$oid": "64f9397f6e255f74d65a****"}, "name": "lili", "age": 20}'
		}],
		'pkNames': ['_id'],
		'type': 'INSERT',
		'es': 1694054783000,
		'database': 'MongoDBTest',
		'id': 0,
		'isDdl': False,
		'table': 'user',
		'ts': 1694054784428
	}]
}

Perbarui Data

Pernyataan SQL

db.user.update({"name":"jack"},{$set:{"age":30}}) 

Data yang Diterima oleh Fungsi Tujuan

{
	'Records': [{
		'data': [{
			'doc': '{"$set": {"age": 30}}'
		}],
		'pkNames': ['_id'],
		'old': [{
			'doc': '{"_id": {"$oid": "64f9397f6e255f74d65a****"}}'
		}],
		'type': 'UPDATE',
		'es': 1694054989000,
		'database': 'MongoDBTest',
		'id': 0,
		'isDdl': False,
		'table': 'user',
		'ts': 1694054990555
	}]
}

Hapus Data

Pernyataan SQL

db.user.remove({"name":"jack"})

Data yang Diterima oleh Fungsi Tujuan

{
	'Records': [{
		'data': [{
			'doc': '{"_id": {"$oid": "64f9397f6e255f74d65a****"}}'
		}],
		'pkNames': ['_id'],
		'type': 'DELETE',
		'es': 1694055452000,
		'database': 'MongoDBTest',
		'id': 0,
		'isDdl': False,
		'table': 'user',
		'ts': 1694055452852
	}]
}