全部产品
Search
文档中心

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

更新时间:Jul 06, 2025

Anda dapat menggunakan Data Transmission Service (DTS) untuk menyinkronkan data inkremental dari instans ApsaraDB for MongoDB kluster sharded ke fungsi Function Compute. Anda juga dapat menulis kode fungsi untuk memproses lebih lanjut data yang disinkronkan.

Prasyarat

  • Instans sumber ApsaraDB for MongoDB kluster sharded telah dibuat. Untuk informasi lebih lanjut, lihat Membuat Instans Kluster Sharded.

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

Catatan penggunaan

Kategori

Deskripsi

Batas pada database sumber

  • Persyaratan bandwidth: Server tempat database sumber ditempatkan harus memiliki bandwidth keluar yang cukup. Jika tidak, kecepatan sinkronisasi 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 dalam satu tugas sinkronisasi data. 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 secara batch atau mengonfigurasi tugas untuk menyinkronkan seluruh database.

  • Database sumber tidak bisa menjadi kluster Azure Cosmos DB for MongoDB atau kluster elastis Amazon DocumentDB.

  • Fitur oplog harus diaktifkan untuk database sumber dan harus menyimpan data log setidaknya selama tujuh hari. Sebagai alternatif, change streams 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 sinkronisasi data gagal. Dalam beberapa keadaan, ketidaksesuaian data atau kehilangan data mungkin terjadi. Masalah yang muncul 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 change streams untuk mendapatkan perubahan data dalam database sumber. Sinkronisasi dua arah tidak didukung saat Anda menggunakan change streams untuk mendapatkan perubahan data dalam database sumber.

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

  • Selama tugas sinkronisasi data, instans kluster sharded ApsaraDB for MongoDB sumber tidak dapat diskalakan. Jika tidak, tugas akan gagal.

  • Jumlah node Mongos dalam instans kluster sharded ApsaraDB for MongoDB sumber tidak boleh melebihi 10.

  • Jika database sumber adalah database MongoDB yang dikelola sendiri yang menggunakan arsitektur kluster sharded, atur parameter Access Method ke Express Connect, VPN Gateway, or Smart Access Gateway atau Cloud Enterprise Network (CEN).

  • Jika balancer dari database sumber diaktifkan untuk menyeimbangkan data, tugas DTS mungkin tertunda.

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

Batas lainnya

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

  • Sinkronisasi data penuh tidak didukung.

  • Sinkronisasi lintas wilayah tidak didukung.

  • Fitur pemetaan tidak didukung.

  • Selama sinkronisasi data, jika Anda mengeksekusi pernyataan INSERT untuk menyisipkan data ke dalam data yang akan disinkronkan, data yang akan disinkronkan harus berisi kunci shard. Jika Anda mengeksekusi pernyataan UPDATE untuk memodifikasi data yang akan disinkronkan, Anda tidak dapat memodifikasi kunci shard.

  • 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 di-restart 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 Memodifikasi parameter instans.

Penagihan

Tipe sinkronisasi

Biaya konfigurasi tugas

Sinkronisasi data inkremental

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

Operasi yang mendukung sinkronisasi data

Tipe sinkronisasi

Deskripsi

Sinkronisasi data inkremental

Menggunakan 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 file, hanya perintah $set yang dapat dijalankan secara sinkron.

Menggunakan change streams

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 file, hanya perintah $set yang dapat dijalankan secara sinkron.

Izin yang diperlukan untuk akun database

Database

Izin yang diperlukan

Referensi

Instans sumber ApsaraDB for MongoDB

Izin baca pada database sumber, admin, dan local.

Mengelola izin pengguna database MongoDB

Prosedur

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

    Konsol DTS

    1. Masuk ke Konsol DTS.

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

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

    Konsol DMS

    Catatan

    Operasi aktual mungkin bervariasi 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, gerakkan 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 sinkronisasi 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

    T/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 MongoDB sumber berada.

    Replicate Data Across Alibaba Cloud Accounts

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

    Architecture

    Arsitektur tempat database sumber diterapkan. Pilih Sharded Cluster.

    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 change streams diaktifkan untuk database sumber. Untuk informasi lebih lanjut, lihat Change Streams.

      Catatan
      • Jika database sumber adalah kluster 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 MongoDB sumber.

    Authentication Database

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

    Database Account

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

    Database Password

    Kata sandi yang digunakan untuk mengakses database.

    Shard account

    Akun yang digunakan untuk mengakses shard dalam instans ApsaraDB for MongoDB sumber.

    Shard password

    Kata sandi akun shard dari instans ApsaraDB for MongoDB sumber.

    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 disetel ke Sharded Cluster, dan parameter Migration Method disetel 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 disetel ke Alibaba Cloud Instance, dan parameter Enkripsi disetel 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 yang disinkronkan.

    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 disetel 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 kluster 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, centang data yang ingin Anda sinkronkan.

      Catatan
      • Untuk menghapus objek yang dipilih, 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 kluster bersama jika Anda tidak menentukan kluster khusus. Jika Anda ingin meningkatkan stabilitas instans sinkronisasi data, beli kluster khusus. Untuk informasi lebih lanjut, lihat Apa itu Kluster Khusus DTS?

      Retry Time for Failed Connections

      Rentang waktu ulang untuk koneksi gagal. Jika database sumber atau tujuan gagal terhubung setelah tugas sinkronisasi 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 dari 30. Jika DTS berhasil menyambungkan kembali ke database sumber dan tujuan dalam rentang waktu yang ditentukan, DTS melanjutkan tugas sinkronisasi data. Jika tidak, tugas sinkronisasi data gagal.

      Catatan
      • Jika Anda menentukan rentang waktu ulang yang berbeda untuk beberapa tugas sinkronisasi 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 percobaan ulang untuk masalah lain. Sebagai contoh, jika operasi DDL atau DML gagal dilakukan setelah tugas sinkronisasi data dimulai, DTS segera mencoba kembali operasi tersebut dalam rentang waktu yang ditentukan. Nilai valid: 1 sampai 1440. Satuan: menit. Nilai default: 10. Kami menyarankan Anda mengatur parameter ini ke nilai yang lebih besar dari 10. Jika operasi yang gagal berhasil dilakukan dalam rentang waktu yang ditentukan, DTS melanjutkan tugas sinkronisasi data. Jika tidak, tugas sinkronisasi data gagal.

      Penting

      Nilai parameter Retry Time for Other Issues harus lebih kecil daripada 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 sinkronisasi 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 sinkronisasi data inkremental. Anda dapat mengaktifkan pembatasan untuk sinkronisasi 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 sinkronisasi 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 mengonfigurasi 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, gerakkan pointer ke Next: Save Task Settings and Precheck dan klik Preview OpenAPI parameters.

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

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

    • Jika tugas sinkronisasi data gagal dalam pra-pemeriksaan, klik View Details di sebelah setiap item yang gagal. Setelah Anda menganalisis penyebab berdasarkan hasil pemeriksaan, atasi masalah tersebut. Lalu, 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. Lalu, 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. Lalu, 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%. Lalu, klik Next: Purchase Instance.

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

      Bagian

      Parameter

      Deskripsi

      New Instance Class

      Metode Penagihan

      • Langganan: Anda membayar langganan saat membuat instans sinkronisasi 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 sinkronisasi data bayar sesuai pemakaian, Anda dapat melepaskan instans untuk mengurangi biaya.

      Pengaturan Grup Sumber Daya

      Grup sumber daya tempat instans sinkronisasi data berada. Nilai default: default resource group. Untuk informasi lebih lanjut, lihat Apa itu Manajemen Sumber Daya?

      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 sinkronisasi data.

      Durasi Langganan

      Jika Anda memilih metode penagihan langganan, tentukan durasi langganan dan jumlah instans sinkronisasi 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 dalam daftar tugas.

Format data yang diterima oleh fungsi tujuan

Data yang diterima oleh fungsi tujuan adalah tipe Objek. Data inkremental dari database sumber disimpan di 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 ketika 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 ketika 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 adalah doc, dan nilai elemen adalah string JSON.

Catatan

Deserialize nilai 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

Membuat 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
	}]
}