Topik ini menjelaskan cara menggunakan layanan transmisi data untuk menyinkronkan data dari OceanBase Database ke instance RocketMQ.
Latar Belakang
Message Queue for Apache RocketMQ adalah perangkat lunak pesan terdistribusi yang dikembangkan oleh Alibaba Cloud berdasarkan Apache RocketMQ. Fiturnya mencakup latensi rendah, konkurensi tinggi, dan keandalan tinggi. Layanan transmisi data memungkinkan sinkronisasi real-time antara tabel fisik OceanBase Database dan sumber data RocketMQ, memperluas kemampuan pemrosesan pesan.
Untuk informasi lebih lanjut tentang format data untuk dua jenis tenant, lihat Format Data yang Digunakan Saat Data Ditransmisikan dari OceanBase Database ke Sistem Antrian Pesan.
Prasyarat
Layanan transmisi data memiliki hak istimewa untuk mengakses sumber daya cloud. Untuk informasi lebih lanjut, lihat Berikan Hak Istimewa kepada Peran untuk Transmisi Data.
Anda telah membuat pengguna database khusus untuk sinkronisasi data di database OceanBase sumber dan memberikan hak istimewa yang sesuai kepada pengguna tersebut. Untuk informasi lebih lanjut, lihat Buat Pengguna Database.
Batasan
Layanan transmisi data mendukung instance RocketMQ versi 4.x dan 5.x, termasuk edisi komersial dan komunitas.
Hanya tabel fisik yang dapat disinkronkan.
Selama sinkronisasi data, layanan transmisi data memungkinkan Anda menghapus tabel sebelum membuat yang baru. Dengan kata lain, Anda dapat mengeksekusi
DROP TABLElalu mengeksekusiCREATE TABLE. Namun, layanan ini tidak mendukung pembuatan tabel baru dengan mengganti nama tabel. Dengan kata lain, Anda tidak dapat mengeksekusiRENAME TABLE a TO a_tmp.Nama tabel yang akan disinkronkan, serta nama kolom dalam tabel, tidak boleh mengandung karakter Cina.
Layanan transmisi data hanya mendukung migrasi objek jika kondisi berikut terpenuhi: nama database, nama tabel, dan nama kolom objek dikodekan ASCII tanpa karakter khusus. Karakter khusus meliputi jeda baris, spasi, dan karakter berikut: . | " ' ` ( ) = ; / & \.
Layanan transmisi data tidak mendukung OceanBase database standby sebagai sumber.
Pertimbangan
Jika sumbernya adalah OceanBase Database versi antara V4.0.0 hingga V4.3.x (kecuali V4.2.5 BP1) dan Anda telah memilih sinkronisasi tambahan, Anda perlu menentukan atribut STORED untuk kolom yang dihasilkan. Jika Anda tidak menentukan atribut ini, tidak ada informasi tentang kolom yang dihasilkan yang disimpan dalam log tambahan, yang dapat mengakibatkan kesalahan data dalam sinkronisasi tambahan.
Perhatikan pertimbangan berikut ketika baris yang diperbarui berisi kolom objek besar (LOB):
Jika kolom LOB diperbarui, jangan gunakan nilai yang disimpan dalam kolom LOB sebelum operasi
UPDATEatauDELETE.Tipe data berikut disimpan dalam kolom LOB: JSON, GIS, XML, tipe yang ditentukan pengguna (UDT), dan TEXT seperti LONGTEXT dan MEDIUMTEXT.
Jika kolom LOB tidak diperbarui, nilai yang disimpan dalam kolom LOB sebelum dan sesudah operasi
UPDATEatauDELETEadalah NULL.
Ketika transfer data dilanjutkan untuk suatu tugas, beberapa data (dalam satu menit terakhir) mungkin duplikat dalam instance RocketMQ. Oleh karena itu, deduplikasi diperlukan di sistem hilir.
Jika jam antar node atau antara klien dan server tidak tersinkronisasi, latensi mungkin tidak akurat selama sinkronisasi tambahan.
Sebagai contoh, jika jam lebih awal dari waktu standar, latensi bisa negatif. Jika jam lebih lambat dari waktu standar, latensi bisa positif.
Jika Anda hanya memilih Incremental Synchronization saat membuat tugas sinkronisasi data, layanan transmisi data memerlukan agar log tambahan lokal di database sumber disimpan setidaknya selama 48 jam.
Jika Anda memilih Full Synchronization dan Incremental Synchronization saat membuat tugas sinkronisasi data, layanan transmisi data memerlukan agar log tambahan lokal di database sumber disimpan setidaknya selama tujuh hari. Jika tidak, tugas sinkronisasi data mungkin gagal atau data di database sumber dan target mungkin tidak konsisten karena layanan transmisi data tidak dapat memperoleh log tambahan.
Jenis instance sumber dan target yang didukung
Dalam tabel berikut, OB_MySQL berarti tenant MySQL dari OceanBase Database, dan OB_Oracle berarti tenant Oracle dari OceanBase Database.
Sumber | Target |
OB_MySQL (instance kluster OceanBase) | RocketMQ (instance RocketMQ di Alibaba Cloud) |
OB_MySQL (instance serverless) | RocketMQ (instance RocketMQ di Alibaba Cloud) |
OB_Oracle (instance kluster OceanBase) | RocketMQ (instance RocketMQ di Alibaba Cloud) |
Prosedur
Masuk ke Konsol ApsaraDB for OceanBase dan beli tugas sinkronisasi data.
Untuk informasi lebih lanjut, lihat Beli Tugas Sinkronisasi Data.
Pilih Data Transmission > Data Synchronization. Pada halaman yang muncul, klik Configuration untuk tugas sinkronisasi data.

Jika Anda ingin merujuk konfigurasi tugas yang ada, klik Reference Configuration. Untuk informasi lebih lanjut, lihat Referensi dan Hapus Konfigurasi Tugas Sinkronisasi Data.
Di halaman Select Source and Target, konfigurasikan parameter.
Parameter
Deskripsi
Nama Tugas Sinkronisasi
Kami sarankan Anda mengatur kombinasi digit dan huruf. Tidak boleh mengandung spasi dan tidak boleh melebihi 64 karakter.
Sumber
Jika Anda telah membuat sumber data OceanBase, pilih dari daftar drop-down. Jika tidak, klik New Data Source di daftar drop-down dan buat satu di kotak dialog yang muncul di sebelah kanan. Untuk informasi lebih lanjut tentang parameter, lihat Buat sumber data OceanBase.
Target
Jika Anda telah membuat sumber data RocketMQ, pilih dari daftar drop-down. Jika tidak, klik New Data Source di daftar drop-down dan buat satu di kotak dialog yang muncul di sebelah kanan. Untuk informasi lebih lanjut, lihat Buat sumber data RocketMQ.
Tag (Opsional)
Pilih tag target dari daftar drop-down. Anda juga dapat mengklik Manage Tags untuk membuat, memodifikasi, dan menghapus tag. Untuk informasi lebih lanjut, lihat Gunakan tag untuk mengelola tugas sinkronisasi data.
Klik Next. Di halaman Select Synchronization Type, tentukan jenis sinkronisasi untuk tugas sinkronisasi data saat ini.

Jenis sinkronisasi yang didukung adalah Full Synchronization dan Incremental Synchronization. Incremental Synchronization hanya mendukung DML Synchronization. Operasi DML yang didukung adalah
INSERT,DELETE, danUPDATE. Anda dapat memilih opsi sesuai kebutuhan. Untuk informasi lebih lanjut, lihat Konfigurasikan Sinkronisasi DDL/DML.Klik Next. Di halaman Select Synchronization Objects, pilih objek yang akan disinkronkan dalam tugas sinkronisasi data saat ini.
Anda dapat menggunakan opsi Specify Objects atau Match Rules untuk menentukan objek sinkronisasi. Topik ini menjelaskan cara menggunakan opsi Specify Objects untuk menentukan objek sinkronisasi. Untuk informasi tentang cara mengonfigurasi aturan pencocokan, lihat bagian "Pola wildcard untuk migrasi/sinkronisasi data antara database dan instance antrian pesan" dalam topik Konfigurasikan dan Modifikasi Aturan Pencocokan.
CatatanJika Anda memilih DDL Synchronization di langkah Select Synchronization Type, kami sarankan Anda memilih objek sinkronisasi menggunakan opsi Aturan Pencocokan. Ini memastikan bahwa semua objek baru yang memenuhi aturan pencocokan disinkronkan. Jika Anda memilih objek sinkronisasi menggunakan opsi Tentukan Objek, objek baru atau yang berganti nama tidak akan disinkronkan.
Saat Anda menyinkronkan data dari database OceanBase ke instance RocketMQ, Anda dapat memilih beberapa tabel untuk memetakan ke beberapa topik.
Di bagian Select Synchronization Objects, pilih Specify Objects.
Di panel sisi kiri, pilih objek yang akan disinkronkan.
Klik >.
Klik daftar drop-down Existing Topics di kotak dialog Map Object to Topic dan pilih topik target.
Anda juga dapat memasukkan nama topik yang ada dan memilihnya setelah muncul.

Klik OK.
Layanan transmisi data memungkinkan Anda mengimpor objek menggunakan teks. Layanan ini juga memungkinkan Anda mengubah topik objek, menyetel filter baris, dan menghapus satu objek atau semua objek. Objek di database target terdaftar dalam struktur Topik > Database > Tabel.
CatatanSaat Anda memilih Match Rules untuk menentukan objek sinkronisasi, penggantian nama objek diimplementasikan berdasarkan sintaks aturan pencocokan yang ditentukan. Di area operasi, Anda hanya dapat menyetel kondisi filter dan memilih kolom sharding dan kolom yang akan disinkronkan. Untuk informasi lebih lanjut, lihat Konfigurasikan dan Modifikasi Aturan Pencocokan.

Operasi
Deskripsi
Impor objek
Di daftar di sebelah kanan, klik Impor Objek di pojok kanan atas.
Di kotak dialog yang muncul, klik OK.
PentingOperasi ini akan menimpa pilihan sebelumnya. Lanjutkan dengan hati-hati.
Di kotak dialog Impor Objek Sinkronisasi, impor objek yang akan disinkronkan. Anda dapat mengimpor file CSV untuk menyetel kondisi filter baris, filter kolom, dan kolom sharding. Untuk informasi lebih lanjut, lihat Unduh dan impor pengaturan objek sinkronisasi.
Klik Validasi.
Setelah validasi berhasil, klik OK.
Ubah topik
Layanan transmisi data memungkinkan Anda mengubah topik untuk objek di database target. Untuk informasi lebih lanjut, lihat Ubah topik.
Konfigurasikan pengaturan
Anda dapat menggunakan klausa
WHEREuntuk memfilter data berdasarkan baris dan memilih kolom sharding dan kolom yang akan disinkronkan.Di kotak dialog Settings, Anda dapat melakukan operasi berikut:
Di bagian Row Filters, tentukan klausa SQL standar
WHEREuntuk memfilter data berdasarkan baris. Untuk informasi lebih lanjut, lihat Gunakan kondisi SQL untuk memfilter data.Pilih kolom sharding yang ingin Anda gunakan dari daftar drop-down Sharding Columns. Anda dapat memilih beberapa bidang sebagai kolom sharding. Parameter ini opsional.
Kecuali dinyatakan lain, pilih kunci utama sebagai kolom sharding. Jika kunci utama tidak seimbang beban, pilih bidang dengan pengenal unik yang seimbang beban sebagai kolom sharding untuk menghindari potensi masalah kinerja. Kolom sharding dapat digunakan untuk tujuan berikut:
Penyeimbangan beban: Thread yang digunakan untuk mengirim pesan dapat dikenali berdasarkan kolom sharding jika tabel target mendukung penulisan bersamaan.
Keteraturan: Layanan transmisi data memastikan bahwa pesan diterima dalam urutan jika nilai kolom sharding sama. Keteraturan menentukan urutan eksekusi pernyataan DML untuk kolom.
Di bagian Select Columns, pilih kolom yang akan disinkronkan. Untuk informasi lebih lanjut, lihat Penyaringan kolom.
Hapus satu atau semua objek
Layanan transmisi data memungkinkan Anda menghapus satu atau semua objek sinkronisasi yang ditambahkan ke daftar sisi kanan selama pemetaan data.
Hapus satu objek sinkronisasi
Di daftar di sebelah kanan, arahkan ke objek yang ingin Anda hapus, dan klik Remove untuk menghapus objek sinkronisasi.
Hapus semua objek sinkronisasi
Di daftar di sebelah kanan, klik Remove All di pojok kanan atas. Di kotak dialog yang muncul, klik OK untuk menghapus semua objek sinkronisasi.
Klik Next. Di halaman Synchronization Options, konfigurasikan parameter.
Sinkronisasi Penuh
Tabel berikut menjelaskan parameter sinkronisasi penuh, yang hanya ditampilkan jika Anda telah memilih Full Synchronization di halaman Select Synchronization Type.

Parameter
Deskripsi
Konkurensi Baca
Konkurensi untuk membaca data dari sumber selama sinkronisasi penuh. Nilai maksimumnya adalah 512. Konkurensi tinggi dapat menyebabkan stres berlebih pada sumber, sehingga mempengaruhi bisnis.
Konkurensi Tulis
Konkurensi untuk menulis data ke tujuan selama sinkronisasi penuh. Nilai maksimumnya adalah 512. Konkurensi tulis tinggi dapat menyebabkan stres berlebih pada target, mempengaruhi bisnis.
Batas Laju Sinkronisasi Penuh
Anda dapat memilih apakah akan membatasi laju sinkronisasi penuh sesuai kebutuhan. Jika Anda memilih untuk membatasi laju sinkronisasi penuh, Anda harus menentukan rekaman per detik (RPS) dan byte per detik (BPS). RPS menentukan jumlah maksimum baris data yang disinkronkan ke tujuan per detik selama sinkronisasi penuh, dan BPS menentukan jumlah maksimum data dalam byte yang disinkronkan ke tujuan per detikselama sinkronisasi penuh.
CatatanNilai RPS dan BPS yang ditentukan di sini hanya untuk pembatasan. Kinerja sinkronisasi penuh sebenarnya bergantung pada faktor-faktor seperti pengaturan sumber dan tujuan serta spesifikasi instance.
Sinkronisasi Tambahan
Tabel berikut menjelaskan parameter sinkronisasi tambahan, yang hanya ditampilkan saat Anda telah memilih Sinkronisasi Tambahan di halaman Pilih Jenis Sinkronisasi.

Parameter
Deskripsi
Konkurensi Tulis
Konkurensi untuk menulis data ke tujuan selama sinkronisasi tambahan. Nilai maksimumnya adalah 512. Konkurensi tulis tinggi dapat menyebabkan stres berlebih pada tujuan, mempengaruhi bisnis.
Batas Laju Sinkronisasi Tambahan
Anda dapat memilih apakah akan membatasi laju sinkronisasi tambahan sesuai kebutuhan. Jika Anda memilih untuk membatasi laju sinkronisasi tambahan, Anda harus menentukan RPS dan BPS. RPS menentukan jumlah maksimum baris data yang disinkronkan ke tujuan per detik selama sinkronisasi tambahan, dan BPS menentukan jumlah maksimum data dalam byte yang disinkronkan ke tujuan per detik selama sinkronisasi tambahan.
CatatanNilai RPS dan BPS yang ditentukan di sini hanya untuk pembatasan. Kinerja sinkronisasi tambahan sebenarnya bergantung pada faktor-faktor seperti pengaturan sumber dan tujuan serta spesifikasi instance.
Waktu Mulai Sinkronisasi Tambahan
Parameter ini tidak tersedia jika Anda telah memilih Full Synchronization.
Jika Anda telah memilih Incremental Synchronization tetapi tidak Full Synchronization, tentukan titik waktu setelah mana data akan disinkronkan. Nilai defaultnya adalah waktu sistem saat ini. Untuk informasi lebih lanjut, lihat Atur timestamp sinkronisasi tambahan.
Parameter Lanjutan

Parameter
Deskripsi
Metode Serialisasi
Format pesan untuk menyinkronkan data ke instance RocketMQ target. Nilai yang valid: Default, Canal, DataWorks (versi 2.0 didukung), SharePlex, DefaultExtendColumnType, Debezium, DebeziumFlatten, dan DebeziumSmt. Untuk informasi lebih lanjut, lihat Format data.
PentingHanya tenant MySQL dari OceanBase Database yang mendukung Debezium, DebeziumFlatten, dan DebeziumSmt.
Aturan Partisi
Saat Anda menyinkronkan data ke instance RocketMQ, hanya Hash yang didukung. Hash menunjukkan bahwa layanan transmisi data menggunakan algoritma hash untuk memilih antrian pesan RocketMQ berdasarkan nilai kunci utama atau kolom sharding.
Identifikasi Sistem Bisnis (Opsional)
Mengidentifikasi sistem bisnis sumber data. Parameter ini hanya ditampilkan saat Anda memilih DataWorks untuk Serialization Method. Pengenal sistem bisnis terdiri dari 1 hingga 20 karakter.
Target

Parameter
Deskripsi
Masukkan nama grup produser
Menentukan grup produser yang dapat menulis data ke beberapa topik.
Apakah Mengizinkan Pelacakan Pesan
Menentukan apakah mengizinkan pelacakan pesan. Jika pelacakan pesan diaktifkan, Anda dapat melacak informasi tugas lengkap, termasuk waktu node dan status, dari pesan dalam siklus hidupnya mulai dari transmisi ke server RocketMQ oleh produser hingga dikonsumsi oleh konsumen. Fitur pelacakan pesan memberikan dukungan data untuk pemecahan masalah di lingkungan produksi.
Klik Precheck.
Selama prapemeriksaan, layanan transmisi data mendeteksi koneksi antara sumber dan tujuan. Jika terjadi kesalahan selama prapemeriksaan, Anda dapat melakukan operasi berikut:
Identifikasi dan atasi masalah lalu lakukan prapemeriksaan lagi.
Klik Skip di kolom Actions item prapemeriksaan yang gagal. Di kotak dialog yang meminta konsekuensi dari operasi tersebut, klik
OK .
Setelah prapemeriksaan berhasil, klik Start Task.
Jika Anda tidak perlu memulai tugas sekarang, klik Save. Anda dapat memulai tugas secara manual di halaman Synchronization Tasks atau dengan melakukan operasi batch nanti. Untuk informasi lebih lanjut tentang operasi batch, lihat Lakukan Operasi Batch pada Tugas Sinkronisasi Data.
Layanan transmisi data memungkinkan Anda memodifikasi objek sinkronisasi saat tugas sinkronisasi sedang berjalan. Untuk informasi lebih lanjut, lihat Lihat dan Modifikasi Objek Sinkronisasi dan Kondisi Filter Mereka. Setelah tugas sinkronisasi data dimulai, tugas tersebut akan dieksekusi berdasarkan jenis sinkronisasi yang dipilih. Untuk informasi lebih lanjut, lihat Lihat Detail Tugas Sinkronisasi Data.
Jika tugas sinkronisasi data mengalami pengecualian eksekusi karena kegagalan jaringan atau startup proses yang lambat, Anda dapat mengklik Restore di halaman Tugas Sinkronisasi atau Detail Tugas Sinkronisasi.