All Products
Search
Document Center

Data Transmission Service:Sinkronisasi data dari instans ApsaraDB RDS for MySQL ke instans ApsaraMQ for Kafka

Last Updated:Mar 28, 2026

Layanan Transmisi Data (Data Transmission Service/DTS) dapat mengalirkan data perubahan dari ApsaraDB RDS for MySQL ke ApsaraMQ for Kafka secara real time. Hal ini memungkinkan konsumen downstream—seperti pipeline analitik, layanan berbasis event, atau gudang data—bereaksi terhadap perubahan tingkat baris tanpa melakukan kueri langsung ke database sumber.

Prasyarat

Sebelum memulai, pastikan Anda telah memiliki:

  • Instans ApsaraDB RDS for MySQL dan instans ApsaraMQ for Kafka. Untuk informasi tentang cara membuat instans RDS, lihat Buat instans ApsaraDB RDS for MySQL. Untuk kombinasi versi yang didukung, lihat Ikhtisar skenario sinkronisasi data.

  • Topik yang dibuat di instans Kafka tujuan untuk menerima data yang disinkronkan. Lihat Langkah 1: Buat topik.

  • Ruang penyimpanan kosong yang cukup di instans Kafka untuk menampung seluruh data dari instans RDS MySQL sumber.

Penagihan

Jenis sinkronisasiBiaya
Sinkronisasi skema dan sinkronisasi data penuhGratis
Sinkronisasi data inkrementalDikenai biaya. Lihat Ikhtisar penagihan.

Batasan

Persyaratan database sumber

  • Tabel yang akan disinkronkan harus memiliki PRIMARY KEY atau kendala UNIQUE tanpa nilai bidang duplikat. Jika tidak, tujuan mungkin berisi catatan duplikat.

  • Jika Anda mengganti nama tabel atau kolom selama sinkronisasi dan memilih tabel individual sebagai objek sinkronisasi, satu tugas mendukung hingga 1.000 tabel. Untuk menyinkronkan lebih banyak tabel, bagi ke beberapa tugas atau sinkronkan seluruh database.

  • Jangan menjalankan pernyataan DDL yang mengubah skema database atau tabel selama sinkronisasi skema atau sinkronisasi data penuh. Melakukannya menyebabkan tugas gagal.

  • DTS tidak menyinkronkan kunci asing. Operasi kaskade dan penghapusan pada database sumber tidak tercermin di tujuan.

  • Data yang dihasilkan oleh pemulihan backup fisik atau operasi kaskade tidak ditangkap atau disinkronkan selama tugas berjalan. Jika data ini hilang dari tujuan, hapus dan tambahkan kembali database serta tabel yang terpengaruh dalam objek sinkronisasi. Lihat Ubah objek yang akan disinkronkan.

Persyaratan binary logging:

Jenis sumberPersyaratan
ApsaraDB RDS for MySQLBinary logging diaktifkan secara default. Atur binlog_row_image ke full. Lihat Ubah parameter instans. Simpan log biner selama minimal 3 hari (disarankan 7 hari).
MySQL yang dikelola sendiriAktifkan binary logging. Atur binlog_format ke row dan binlog_row_image ke full. Untuk kluster dual-primary, atur juga log_slave_updates ke ON. Lihat Buat akun untuk database MySQL yang dikelola sendiri dan konfigurasi binary logging. Simpan log biner selama minimal 7 hari.
Penting

Jika DTS tidak dapat membaca log biner, tugas gagal dan ketidakkonsistenan data mungkin terjadi. Untuk mengatur periode retensi log biner RDS MySQL, lihat bagian Hapus file log biner.

MySQL 8.0.23 dan versi setelahnya — kolom tak terlihat (invisible columns):

Kolom tak terlihat tidak dapat disinkronkan dan datanya hilang. Untuk menjadikan kolom terlihat, jalankan:

ALTER TABLE <table_name> ALTER COLUMN <column_name> SET VISIBLE;

Tabel tanpa primary key eksplisit secara otomatis mendapatkan primary key tak terlihat. Jadikan primary key tersebut terlihat sebelum menyinkronkan. Lihat Invisible Columns dan Generated Invisible Primary Keys.

Batasan lainnya

  • Evaluasi dampak performa sebelum memulai. Sinkronisasi data penuh membaca dan menulis kedua database secara intensif. Jalankan sinkronisasi selama jam sepi untuk mengurangi beban.

  • Sinkronisasi data penuh dengan operasi INSERT bersamaan menyebabkan fragmentasi tabel di tujuan. Setelah sinkronisasi penuh selesai, ruang tabel tujuan lebih besar daripada sumber.

  • Jika Anda menyinkronkan tabel individual (bukan seluruh database), jangan gunakan pt-online-schema-change untuk operasi DDL online. Gunakan Data Management (DMS) sebagai gantinya.

  • Jangan menulis data dari sumber lain ke instans Kafka tujuan selama sinkronisasi. Melakukannya menyebabkan ketidakkonsistenan data.

  • Jika Anda melakukan penskalaan instans atau kluster Kafka tujuan selama sinkronisasi, restart setelahnya.

  • Jika tugas DTS gagal, dukungan teknis DTS berusaha memulihkannya dalam waktu 8 jam. Tugas mungkin di-restart dan parameter tugas mungkin dimodifikasi selama pemulihan.

ApsaraDB RDS for MySQL — batasan spesifik instans:

Jenis instansBatasan
EncDB diaktifkanSinkronisasi data penuh tidak didukung.
Transparent Data Encryption (TDE) diaktifkanSinkronisasi skema, sinkronisasi data penuh, dan sinkronisasi data inkremental semuanya didukung.
RDS MySQL 5.6 hanya-baca (tanpa log transaksi)Tidak dapat digunakan sebagai database sumber.

Kasus khusus untuk MySQL yang dikelola sendiri

  • Melakukan failover primer/sekunder saat tugas sedang berjalan akan menyebabkan tugas gagal.

  • Jika tidak ada operasi DML yang dilakukan pada database sumber dalam waktu lama, pelaporan latensi sinkronisasi mungkin tidak akurat. Lakukan operasi DML pada database sumber untuk mengatur ulang nilai latensi. Jika Anda menyinkronkan seluruh database, buat tabel heartbeat yang diperbarui setiap detik.

  • DTS menjalankan CREATE DATABASE IF NOT EXISTS 'test' di database sumber secara berkala untuk memajukan posisi file log biner.

Kasus khusus untuk ApsaraDB RDS for MySQL

  • DTS menjalankan CREATE DATABASE IF NOT EXISTS 'test' di database sumber secara berkala untuk memajukan posisi file log biner.

Batas ukuran catatan tunggal

Ukuran maksimum catatan tunggal yang ditulis ke Kafka adalah 10 MB. Jika baris sumber melebihi batas ini, tugas DTS berhenti.

Untuk mengatasinya, kecualikan tabel dengan bidang besar dari objek sinkronisasi, atau gunakan kondisi filter untuk mengecualikan bidang yang terlalu besar. Jika tabel sudah termasuk, hapus, tambahkan kembali, dan tentukan kondisi filter yang mengecualikan bidang besar tersebut.

Topologi sinkronisasi yang didukung

  • Sinkronisasi satu arah satu-ke-satu

  • Sinkronisasi satu arah satu-ke-banyak

  • Sinkronisasi satu arah banyak-ke-satu

Untuk detailnya, lihat Topologi sinkronisasi.

Operasi SQL yang dapat disinkronkan

TypeOperasi
DMLINSERT, UPDATE, DELETE
DDLCREATE TABLE, ALTER TABLE, DROP TABLE, RENAME TABLE, TRUNCATE TABLE; CREATE VIEW, ALTER VIEW, DROP VIEW; CREATE PROCEDURE, ALTER PROCEDURE, DROP PROCEDURE; CREATE FUNCTION, DROP FUNCTION, CREATE TRIGGER, DROP TRIGGER; CREATE INDEX, DROP INDEX

Buat tugas sinkronisasi data

Langkah 1: Buka halaman sinkronisasi data

Gunakan salah satu metode berikut:

Konsol DTS

  1. Masuk ke Konsol DTS.Konsol DTS

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

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

Konsol DMS

Note

Langkah-langkah berikut mungkin berbeda tergantung mode dan tata letak Konsol DMS Anda. Lihat Mode simple dan Sesuaikan tata letak dan gaya Konsol DMS.

  1. Masuk ke Konsol DMS.Konsol DMS

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

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

Langkah 2: Konfigurasi database sumber dan tujuan

  1. Klik Create Task untuk membuka halaman konfigurasi tugas.

  2. Konfigurasikan parameter database sumber dan tujuan.

    Peringatan

    Setelah mengonfigurasi database sumber dan tujuan, baca Limits yang ditampilkan di halaman. Melewatkan langkah ini dapat menyebabkan tugas gagal atau ketidakkonsistenan data.

    Parameter database sumber

    ParameterDeskripsi
    Task NameMasukkan nama deskriptif. DTS menghasilkan nama secara otomatis, tetapi nama yang bermakna membantu mengidentifikasi tugas. Nama tugas tidak perlu unik.
    Select Existing ConnectionPilih instans database terdaftar untuk mengisi otomatis bidang koneksi. Jika instans belum terdaftar, konfigurasikan bidang secara manual. Untuk instruksi pendaftaran, lihat Kelola koneksi database.
    Database TypePilih MySQL.
    Access MethodPilih Alibaba Cloud Instance.
    Instance RegionPilih wilayah tempat instans RDS MySQL sumber berada.
    Replicate Data Across Alibaba Cloud AccountsPilih No untuk sinkronisasi dalam akun yang sama.
    RDS Instance IDPilih instans RDS MySQL sumber.
    Database AccountMasukkan akun dengan izin baca pada objek yang akan disinkronkan.
    Database PasswordMasukkan kata sandi untuk akun database.
    EncryptionPilih Non-encrypted atau SSL-encrypted. Untuk menggunakan enkripsi SSL, aktifkan terlebih dahulu di instans RDS. Lihat Gunakan sertifikat cloud untuk mengaktifkan enkripsi SSL.

    Parameter database tujuan

    ParameterDeskripsi
    Select Existing ConnectionPilih instans database terdaftar untuk mengisi otomatis bidang koneksi. Jika instans belum terdaftar, konfigurasikan bidang secara manual.
    Database TypePilih Kafka.
    Access MethodPilih Alibaba Cloud Instance.
    Instance RegionPilih wilayah tempat instans Kafka tujuan berada.
    Kafka Instance IDPilih instans Kafka tujuan.
    EncryptionPilih Non-encrypted atau SCRAM-SHA-256 sesuai kebutuhan keamanan Anda.
    TopicPilih topik untuk menerima data yang disinkronkan.
    Topic That Stores DDL Information(Opsional) Pilih topik untuk menyimpan informasi DDL secara terpisah. Jika dibiarkan kosong, informasi DDL disimpan di topik yang ditetapkan oleh Topic.
    Use Kafka Schema RegistryPilih No atau Yes. Jika Anda memilih Yes, masukkan URL atau alamat IP yang terdaftar di Kafka Schema Registry untuk skema Avro Anda. Kafka Schema Registry menyediakan API RESTful untuk menyimpan dan mengambil skema Avro.
  3. Klik Test Connectivity and Proceed.

    Blok CIDR server DTS harus ditambahkan ke pengaturan keamanan database sumber dan tujuan. DTS menambahkannya secara otomatis untuk instans Alibaba Cloud. Untuk database yang dikelola sendiri, lihat Tambahkan blok CIDR server DTS. Jika metode akses bukan Alibaba Cloud Instance, klik Test Connectivity di kotak dialog CIDR Blocks of DTS Servers terlebih dahulu.

Langkah 3: Konfigurasi objek dan opsi sinkronisasi

  1. Pada langkah Configure Objects, atur parameter berikut.

    ParameterDeskripsi
    Synchronization TypesIncremental Data Synchronization dipilih secara default. Pilih juga Full Data Synchronization untuk menyinkronkan data historis terlebih dahulu, yang berfungsi sebagai garis dasar untuk sinkronisasi inkremental.
    Catatan

    Jika tujuannya adalah instans ApsaraMQ for Kafka, fitur Schema Synchronization tidak tersedia.

    Processing Mode of Conflicting TablesPrecheck and Report Errors: gagal dalam pemeriksaan awal jika terdapat nama tabel identik di kedua database. Gunakan pemetaan nama objek untuk mengganti nama tabel yang bertentangan. Ignore Errors and Proceed: lewati pemeriksaan. Jika database sumber dan tujuan memiliki skema yang sama dan catatan di tujuan memiliki nilai primary key atau unique key yang sama dengan catatan di sumber: selama sinkronisasi penuh, catatan yang ada di tujuan dipertahankan; selama sinkronisasi inkremental, catatan yang ada di tujuan ditimpa. Ketidaksesuaian skema dapat menyebabkan kegagalan inisialisasi.
    Data Format in KafkaDTS Avro: data diurai menggunakan skema DTS Avro. Lihat definisi skema di GitHub. Canal JSON: data dalam format Canal JSON. Lihat bagian Canal JSON.
    Kafka Data Compression FormatPilih berdasarkan workload Anda: LZ4 (default) — rasio kompresi rendah, kecepatan tinggi; GZIP — rasio kompresi tinggi, kecepatan lambat, penggunaan CPU tinggi; Snappy — rasio dan kecepatan seimbang.
    Policy for Shipping Data to Kafka PartitionsPilih kebijakan perutean partisi. Lihat Tentukan kebijakan untuk migrasi data ke partisi Kafka.
    Message acknowledgement mechanismKonfigurasikan berdasarkan kebutuhan keandalan Anda. Lihat Mekanisme pengakuan pesan.
    Capitalization of Object Names in Destination InstancePilih DTS default policy atau pilih opsi lain agar sesuai dengan kapitalisasi database sumber atau tujuan. Lihat Tentukan kapitalisasi nama objek di instans tujuan.
    Source ObjectsPilih satu atau beberapa objek dan klik 向右 untuk menambahkannya ke Selected Objects. Hanya tabel yang dapat dipilih sebagai objek sinkronisasi.
    Selected ObjectsGunakan fitur pemetaan nama objek untuk mengatur topik tujuan, jumlah partisi, dan kunci partisi per tabel. Lihat Gunakan fitur pemetaan nama objek. Untuk memfilter operasi SQL tertentu untuk sebuah tabel, klik kanan objek di Selected Objects dan pilih operasinya. Catatan: Mengganti nama objek dapat merusak objek dependen.
  2. Klik Next: Advanced Settings dan konfigurasikan parameter berikut.

    ParameterDeskripsi
    Dedicated Cluster for Task SchedulingSecara default, DTS menjadwalkan tugas ke kluster bersama. Beli kluster khusus untuk meningkatkan stabilitas. Lihat Apa itu kluster khusus DTS.
    Retry Time for Failed ConnectionsRentang waktu DTS mencoba koneksi yang gagal. Nilai valid: 10–1440 menit. Default: 720 menit. Atur lebih dari 30 menit. Jika beberapa tugas berbagi database sumber atau tujuan, waktu retry terpendek yang berlaku. DTS menagih instans selama proses retry.
    Retry Time for Other IssuesRentang waktu DTS mencoba ulang operasi DDL atau DML yang gagal. Nilai valid: 1–1440 menit. Default: 10 menit. Atur lebih dari 10 menit. Nilai ini harus kurang dari Retry Time for Failed Connections.
    Enable Throttling for Full Data SynchronizationBatasi QPS baca (queries per second) dan throughput tulis selama sinkronisasi penuh untuk mengurangi beban pada tujuan. Konfigurasikan parameter 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.
    Enable Throttling for Incremental Data SynchronizationBatasi throughput tulis untuk sinkronisasi inkremental dengan mengonfigurasi parameter RPS of Incremental Data Synchronization dan Data synchronization speed for incremental synchronization (MB/s).
    Whether to delete SQL operations on heartbeat tables of forward and reverse tasksYes: DTS tidak menulis SQL heartbeat ke database sumber. Latensi sinkronisasi mungkin muncul di tugas. No: DTS menulis SQL heartbeat ke sumber. Operasi backup fisik dan kloning pada database sumber mungkin terpengaruh.
    Environment Tag(Opsional) Tetapkan tag lingkungan untuk mengidentifikasi instans DTS ini.
    Configure ETLYes: konfigurasikan pemrosesan ekstrak, transformasi, dan muat (ETL) dengan memasukkan pernyataan pemrosesan data. Lihat Konfigurasikan ETL dalam tugas migrasi data atau sinkronisasi data. No: lewati ETL.
    Monitoring and AlertingYes: konfigurasikan ambang batas peringatan dan kontak notifikasi. DTS mengirim peringatan saat tugas gagal atau latensi sinkronisasi melebihi ambang batas. Lihat Konfigurasikan pemantauan dan peringatan saat membuat tugas DTS. No: tanpa peringatan.

Langkah 4: Jalankan pemeriksaan awal

  1. Klik Next: Save Task Settings and Precheck. Untuk melihat pratinjau parameter API untuk konfigurasi ini, arahkan kursor ke Next: Save Task Settings and Precheck dan klik Preview OpenAPI parameters sebelum melanjutkan.

    DTS menjalankan pemeriksaan awal sebelum tugas sinkronisasi dimulai. Tugas hanya dimulai setelah semua item pemeriksaan awal lolos.
  2. Jika ada item pemeriksaan awal yang gagal, klik View Details untuk melihat penyebabnya, perbaiki masalahnya, lalu klik Precheck Again. Jika item pemeriksaan awal menghasilkan peringatan:

    • Jika peringatan tidak dapat diabaikan, perbaiki masalah dan jalankan kembali pemeriksaan awal.

    • Jika peringatan dapat diabaikan, klik Confirm Alert Details, lalu klik Ignore di kotak dialog, klik OK, lalu klik Precheck Again. Mengabaikan peringatan dapat menyebabkan ketidakkonsistenan data.

Langkah 5: Beli dan mulai 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. Hapus instans saat tidak diperlukan lagi untuk menghindari biaya berkelanjutan.
    Resource Group SettingsPilih kelompok sumber daya untuk instans ini. Default: default resource group. Lihat Apa itu Resource Management?
    Instance ClassPilih kelas instans berdasarkan throughput sinkronisasi yang dibutuhkan. Lihat Kelas instans untuk instansi sinkronisasi data.
    Subscription Duration(Hanya Subscription) Atur durasi: 1–9 bulan, 1 tahun, 2 tahun, 3 tahun, atau 5 tahun.
  3. Baca dan pilih Data Transmission Service (Pay-as-you-go) Service Terms.

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

Tugas muncul di daftar tugas. Pantau perkembangannya dari sana.

Gunakan fitur pemetaan nama objek

Fitur pemetaan nama objek memungkinkan Anda mengarahkan data dari setiap tabel sumber ke topik Kafka tertentu, mengatur jumlah partisi, dan menentukan kunci partisi.

  1. Di bagian Selected Objects, arahkan kursor ke nama tabel.

  2. Klik kanan dan pilih Edit.

  3. Di kotak dialog Edit Table, konfigurasikan parameter berikut.

    ParameterDeskripsi
    Table NameMasukkan nama topik tujuan. Secara default, ini adalah topik yang ditetapkan di bagian Destination Database. Jika tujuan adalah instans ApsaraMQ for Kafka, topik tersebut harus sudah ada — DTS tidak membuatnya. Jika tujuan adalah kluster Kafka yang dikelola sendiri dan sinkronisasi skema disertakan, DTS mencoba membuat topik tersebut.
    Filter ConditionsTentukan kondisi SQL untuk memfilter baris mana yang disinkronkan. Lihat Tentukan kondisi filter.
    Number of PartitionsAtur jumlah partisi di topik tujuan.
    Partition KeyTersedia saat Policy for Shipping Data to Kafka Partitions diatur ke Ship Data to Separate Partitions Based on Hash Values of Primary Keys. Tentukan satu atau beberapa kolom sebagai kunci partisi. DTS mengarahkan baris ke partisi berdasarkan nilai hash kolom-kolom tersebut. Untuk memilih kolom sebagai kunci partisi, pertama-tama hapus centang Synchronize All Tables.
  4. Klik OK.

FAQ

Apakah saya dapat mengubah Kafka Data Compression Format atau Message acknowledgement mechanism setelah tugas dibuat?

Ya. Ubah pengaturan ini melalui fitur modifikasi objek. Lihat Ubah objek yang akan disinkronkan.