All Products
Search
Document Center

Data Transmission Service:Sinkronisasi data dari database TiDB yang dikelola sendiri ke kluster AnalyticDB for MySQL V3.0

Last Updated:Mar 29, 2026

Gunakan Data Transmission Service (DTS) untuk menyinkronkan data dari database TiDB yang dikelola sendiri ke kluster AnalyticDB for MySQL V3.0 guna analitik real-time.

Cara kerja

DTS membaca perubahan inkremental dari TiDB melalui kluster Kafka yang berfungsi sebagai buffer change data capture (CDC), lalu menuliskan data tersebut ke AnalyticDB for MySQL V3.0. Alur lengkapnya adalah:

TiDB → kluster Kafka → DTS → AnalyticDB for MySQL V3.0

TiDB tidak mengekspos log biner secara langsung ke DTS. Anda harus menyiapkan salah satu komponen CDC berikut untuk memublikasikan perubahan inkremental ke topik Kafka:

  • TiDB Binlog — menggunakan komponen Pump dan Drainer

  • TiCDC — menggunakan format Canal-JSON

DTS membaca dari partisi 0 topik Kafka dan menerapkan perubahan ke kluster tujuan.

Batasan

Tinjau batasan berikut sebelum mengonfigurasi tugas.

Batasan database sumber

BatasanDetail
Kunci primer atau kendala unik wajibTabel yang akan disinkronkan harus memiliki PRIMARY KEY atau UNIQUE constraint dengan semua bidang unik. Tabel tanpa constraint ini dapat menghasilkan catatan duplikat di tujuan.
Pembatasan DDL selama sinkronisasiJangan menjalankan pernyataan DDL yang mengubah skema database atau tabel selama sinkronisasi skema atau sinkronisasi data penuh. Tugas akan gagal.
Kehilangan panjang indeks awalanTiDB tidak menyimpan panjang indeks awalan dalam metadata. Panjang tersebut hilang saat data disinkronkan ke AnalyticDB for MySQL V3.0, yang dapat menyebabkan instans tujuan gagal. Perbaiki secara manual panjang indeks awalan untuk tabel apa pun yang menggunakannya.
Batas tabel per tugasJika Anda memilih tabel individual (bukan seluruh database) dan mengganti namanya, satu tugas mendukung hingga 1.000 tabel. Jika melebihi batas ini, konfigurasikan beberapa tugas atau sinkronkan seluruh database sebagai gantinya.
Penyiapan Kafka wajibTerapkan kluster Kafka dan instal TiDB Binlog atau TiCDC sebelum membuat tugas DTS.
Bandwidth keluarServer yang menjalankan TiDB harus memiliki bandwidth keluar yang mencukupi. Bandwidth yang tidak mencukupi mengurangi kecepatan sinkronisasi.

Batasan tujuan dan tugas

BatasDetail
Partisi KafkaDTS hanya membaca dari partisi 0 topik Kafka. Buat topik dengan tepat satu partisi.
Kunci primer kustom wajibTentukan kunci primer kustom di AnalyticDB for MySQL V3.0, atau konfigurasikan Primary Key Column pada langkah Configurations for Databases, Tables, and Columns. Jika tidak, tugas dapat gagal.
Ambang batas penggunaan diskJika penggunaan disk pada node mana pun di kluster AnalyticDB for MySQL V3.0 melebihi 80%, tugas DTS tertunda dan mengembalikan error. Perkirakan ruang disk yang dibutuhkan sebelum memulai.
Konflik backupJika kluster tujuan sedang dibackup saat DTS berjalan, tugas gagal.
Tipe data heterogenTipe data TiDB dan AnalyticDB for MySQL V3.0 tidak memiliki pemetaan satu-ke-satu. Lihat Pemetaan tipe data untuk sinkronisasi skema awal untuk detailnya.
Presisi FLOAT/DOUBLEDTS menggunakan ROUND(COLUMN,PRECISION) untuk mengambil nilai FLOAT dan DOUBLE. FLOAT default ke presisi 38 digit, DOUBLE ke 308 digit. Verifikasi bahwa default ini sesuai dengan kebutuhan Anda.
Inisialisasi offset tugasSetelah membuat tugas, segera lakukan operasi pada database sumber atau masukkan data uji. Ini memperbarui offset tugas. Jika langkah ini dilewati, tugas dapat gagal karena latensi berlebihan.
Data dari sumber lainJangan menulis data ke kluster tujuan dari sumber lain selama sinkronisasi. Hal ini menyebabkan inkonsistensi data.
Pelanjutan tugas gagalDTS secara otomatis mencoba ulang tugas yang gagal hingga 7 hari. Sebelum beralih beban kerja ke kluster tujuan, hentikan atau lepaskan tugas yang gagal. Atau, jalankan REVOKE untuk mencabut izin tulis DTS dari database tujuan agar tugas yang dilanjutkan tidak menimpa data baru.
Kinerja sinkronisasi data penuhSinkronisasi data penuh meningkatkan beban pada database sumber dan tujuan. Jalankan selama jam sepi, ketika penggunaan CPU di bawah 30%.
Ukuran ruang tabel setelah sinkronisasi penuhOperasi INSERT konkuren selama sinkronisasi data penuh menyebabkan fragmentasi tabel. Ruang tabel tujuan akan lebih besar daripada sumber.
Kegagalan DDLJika pernyataan DDL gagal di database tujuan, tugas tetap berlanjut. Periksa log tugas untuk melihat pernyataan DDL yang gagal.
SLA dukungan teknis DTSJika tugas DTS gagal berjalan, dukungan teknis DTS akan mencoba memulihkan tugas dalam waktu 8 jam. Selama pemulihan, tugas mungkin dimulai ulang dan parameter tugas mungkin dimodifikasi. Hanya parameter tugas yang dapat diubah — parameter database tidak diubah.

Operasi SQL untuk sinkronisasi inkremental

Jenis operasiPernyataan yang didukung
DMLINSERT, UPDATE, DELETE
DDLCREATE TABLE, DROP TABLE, RENAME TABLE, TRUNCATE TABLE, ADD COLUMN, DROP COLUMN
Saat DTS menulis pernyataan UPDATE ke AnalyticDB for MySQL V3.0, pernyataan tersebut secara otomatis dikonversi menjadi REPLACE INTO. Jika pernyataan UPDATE memengaruhi kunci primer, DTS mengonversinya menjadi DELETE diikuti oleh INSERT.

Penagihan

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

Prasyarat

Sebelum memulai, pastikan Anda telah:

  • Kluster AnalyticDB for MySQL V3.0 dengan penyimpanan tersedia lebih besar dari ukuran total data database TiDB Anda. Lihat Buat kluster

  • Kluster Kafka atau instance ApsaraMQ for Kafka yang telah diterapkan dan dapat diakses dari server TiDB

  • Izin akun database yang diperlukan (lihat Izin yang diperlukan)

Izin yang diperlukan

DatabaseIzin yang diperlukanReferensi
TiDBSELECT pada objek yang akan disinkronkan, SHOW VIEWManajemen Hak Istimewa
AnalyticDB for MySQL V3.0Izin baca dan tulis pada database tujuanBuat akun database

Siapkan tangkapan data inkremental

DTS memerlukan event perubahan inkremental dari TiDB dipublikasikan ke topik Kafka. Pilih salah satu metode berikut.

Pilih metode

TiDB BinlogTiCDC
KomponenPump + DrainerTiCDC (dikelola melalui TiUP)
Format outputFormat log biner TiDB defaultFormat Canal-JSON
Cocok untukPenerapan TiDB Binlog yang sudah adaPengaturan baru dan TiDB v4.0+
Pengaturan DTSGunakan format log biner default database TiDBGunakan format TiCDC Canal-JSON

Siapkan kluster Kafka

Kedua metode memerlukan kluster Kafka. Gunakan salah satu opsi berikut:

Terlepas dari opsi yang Anda pilih:

  • Terapkan kluster Kafka di jaringan atau virtual private cloud (VPC) yang sama dengan server TiDB untuk meminimalkan latensi jaringan.

  • Atur parameter broker Kafka message.max.bytes dan replica.fetch.max.bytes ke nilai besar, dan atur parameter konsumen fetch.message.max.bytes ke nilai besar yang sesuai. Ini memastikan kluster dapat menangani volume data log biner dari TiDB. Lihat Referensi konfigurasi Kafka.

Setelah menyiapkan kluster, buat topik dengan exactly one partition. DTS hanya membaca dari partisi 0, sehingga beberapa partisi akan menyebabkan kehilangan data.

Opsi 1: TiDB Binlog

  1. Terapkan Pump dan Drainer pada server di jaringan internal yang sama dengan TiDB. Lihat Penerapan kluster TiDB Binlog.

  2. Edit file konfigurasi Drainer agar mengarah ke kluster Kafka Anda sebagai sink downstream. Lihat Panduan pengguna Binlog Consumer Client. Verifikasi bahwa server TiDB dapat terhubung ke kluster Kafka sebelum melanjutkan.

  3. Tambahkan blok CIDR server DTS ke daftar izin database TiDB. Lihat Tambahkan blok CIDR server DTS.

Opsi 2: TiCDC

  1. Instal TiCDC menggunakan TiUP. Tambahkan node TiCDC baru atau scale out node yang sudah ada di kluster TiDB. Lihat Terapkan dan kelola TiCDC.

  2. Buat changefeed untuk mereplikasi data inkremental dari TiDB ke kluster Kafka Anda. Gunakan tiup cdc cli changefeed create dan tentukan URI sink Canal-JSON. Lihat Replikasi data ke KafkaSinkronisasi data ke Kafka. Verifikasi bahwa server TiDB dapat terhubung ke kluster Kafka sebelum melanjutkan.

Buat tugas sinkronisasi data

Langkah 1: Buka halaman Sinkronisasi Data

Gunakan Konsol DTS atau Konsol DMS.

Konsol DTS

  1. Masuk ke Konsol DTS.Konsol DTS

  2. Di panel navigasi kiri, klik Data Synchronization.

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

Konsol DMS

Langkah-langkah dapat berbeda tergantung tata letak Konsol DMS. Lihat Mode simple dan Sesuaikan tata letak dan gaya Konsol DMS.
  1. Masuk ke Konsol DMS.Konsol DMS

  2. Di bilah navigasi atas, arahkan pointer 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 akan berada.

Langkah 2: Konfigurasi database sumber dan tujuan

Klik Create Task, lalu konfigurasikan parameter berikut.

Database sumber

ParameterDeskripsi
Task NameNama untuk tugas DTS. DTS menghasilkan nama secara otomatis. Tentukan nama deskriptif untuk memudahkan identifikasi. Nama tidak perlu unik.
Select a DMS database instancePilih database yang telah terdaftar, atau biarkan kosong dan isi parameter di bawah ini. Untuk mendaftarkan database: di Konsol DMS, klik Add DMS Database Instance; di Konsol DTS, gunakan halaman Database Connections. Lihat Mendaftarkan instans database Alibaba Cloud dan Mendaftarkan database yang dihosting di layanan cloud pihak ketiga atau database yang dikelola sendiri.
Database TypePilih TiDB.
Access MethodPilih metode akses yang sesuai dengan tempat TiDB diterapkan. Contoh ini menggunakan Self-managed Database on ECS. Untuk metode akses lain, siapkan lingkungan yang diperlukan terlebih dahulu. Lihat Ikhtisar persiapan.
Instance RegionWilayah tempat TiDB berada.
ECS Instance IDID instance ECS yang menjalankan TiDB.
Port NumberPort layanan TiDB. Default: 4000.
Database AccountAkun TiDB dengan izin yang diperlukan.
Database PasswordKata sandi untuk akun TiDB.
Migrate Incremental DataSelalu atur ke Yespengaturan pemberitahuan peringatan. Ini tidak dapat diubah. Untuk menyinkronkan tanpa data inkremental, buat tugas migrasi data sebagai gantinya. Lihat Migrasi data dari database TiDB yang dikelola sendiri ke kluster AnalyticDB for MySQL V3.0.
Kafka Cluster TypePilih metode akses yang sesuai dengan tempat kluster Kafka Anda diterapkan. Contoh ini menggunakan Self-managed Database on ECS. Jika Anda memilih Express Connect, VPN Gateway, or Smart Access Gateway, pilih juga VPC dari Connected VPC dan tentukan Domain Name or IP.
Kafka Data Source ComponentPilih Use the default binlog format of the TiDB database (untuk TiDB Binlog) atau Use the TiCDC Canal-JSON format (untuk TiCDC), berdasarkan yang Anda siapkan di Siapkan tangkapan data inkremental.
ECS Instance IDID instance ECS tempat kluster Kafka diterapkan.
Port NumberPort layanan Kafka.
Kafka Cluster Account / Kafka Cluster PasswordUsername dan kata sandi Kafka. Biarkan kosong jika autentikasi tidak diaktifkan.
Kafka VersionVersi Kafka. Jika versi 1.0 atau lebih baru, pilih 1.0.
EncryptionPilih Non-encrypted atau SCRAM-SHA-256 berdasarkan kebutuhan keamanan Anda.
TopicTopik Kafka yang menerima data inkremental dari TiDB.

Database tujuan

ParameterDeskripsi
Select a DMS database instancePilih database terdaftar yang sudah ada, atau biarkan kosong dan isi parameter di bawah.
Database TypePilih AnalyticDB for MySQL 3.0.
Access MethodPilih Alibaba Cloud Instance.
Instance RegionWilayah tempat kluster AnalyticDB for MySQL V3.0 berada.
Instance IDID kluster AnalyticDB for MySQL V3.0 tujuan.
Database AccountAkun database dengan izin baca dan tulis.
Database PasswordKata sandi untuk akun database.

Langkah 3: Uji konektivitas

Klik Test Connectivity and Proceed. Di kotak dialog CIDR Blocks of DTS Servers, klik Test Connectivity.

Jika blok CIDR DTS belum ditambahkan ke pengaturan keamanan database Anda, tambahkan terlebih dahulu sebelum melanjutkan. Lihat Tambahkan blok CIDR server DTS.

Langkah 4: Konfigurasi objek untuk disinkronkan

Pada langkah Configure Objects, atur parameter berikut.

ParameterDeskripsi
Synchronization TypesPilih Schema Synchronization, Full Data Synchronization, dan Incremental Data Synchronization. Ketiganya wajib. Incremental Data Synchronization dipilih secara default; Anda juga harus memilih dua lainnya. Sinkronisasi data penuh menyediakan garis dasar data historis untuk sinkronisasi inkremental.
Processing Mode of Conflicting TablesPrecheck and Report Errors (default): gagal dalam pemeriksaan awal jika tabel dengan nama identik ada di tujuan. Gunakan pemetaan nama objek untuk menyelesaikan konflik tanpa menghapus tabel tujuan. Lihat Pemetaan nama objek. Ignore Errors and Proceed: melewati pemeriksaan awal untuk nama tabel identik. Selama sinkronisasi penuh, catatan tujuan yang sudah ada dipertahankan. Selama sinkronisasi inkremental, catatan tujuan ditimpa. Gunakan dengan hati-hati — ini dapat menyebabkan inkonsistensi data.
Capitalization of Object Names in Destination InstanceMengontrol kapitalisasi nama database, tabel, dan kolom di tujuan. Default: DTS default policy. Lihat Tentukan kapitalisasi nama objek di instans tujuan.
Source ObjectsPilih database atau tabel untuk disinkronkan dan klik ikon panah untuk memindahkannya ke Selected Objects.
Selected ObjectsUntuk mengganti nama objek di tujuan, klik kanan objek tersebut dan gunakan pemetaan nama objek. Untuk mengganti nama beberapa objek sekaligus, klik Batch Edit. Untuk memfilter baris dengan kondisi WHERE SQL, klik kanan tabel dan tentukan kondisi. Lihat Tentukan kondisi filter. Mengganti nama objek dapat merusak objek dependen.

    Langkah 5: Konfigurasi pengaturan lanjutan

    Klik Next: Advanced Settings dan konfigurasikan hal berikut.

    ParameterDeskripsi
    Retry Time for Failed ConnectionsBerapa lama DTS mencoba ulang koneksi yang gagal setelah tugas dimulai. Rentang: 10–1.440 menit. Default: 720 menit. Atur lebih dari 30 menit. Jika beberapa tugas berbagi database sumber atau tujuan yang sama, waktu coba ulang terpendek yang berlaku.
    Retry Time for Other IssuesBerapa lama DTS mencoba ulang operasi DDL atau DML yang gagal. Rentang: 1–1.440 menit. Default: 10 menit. Atur lebih dari 10 menit. Nilai ini harus kurang dari Retry Time for Failed Connections.
    Enable Throttling for Full Data SynchronizationMembatasi beban baca dan tulis selama sinkronisasi data penuh. Konfigurasikan QPS (queries per second) 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 SynchronizationMembatasi beban tulis selama sinkronisasi data inkremental. Konfigurasikan RPS of Incremental Data Synchronization dan Data synchronization speed for incremental synchronization (MB/s).
    Environment TagTag opsional untuk mengidentifikasi instans DTS berdasarkan lingkungan (misalnya, produksi atau uji).
    Configure ETLPilih Yes untuk mengaktifkan ekstrak, transformasi, muat (ETL) dan masukkan pernyataan pemrosesan data. Pilih No untuk melewati. Lihat Apa itu ETL?
    Monitoring and AlertingPilih Yes untuk mengonfigurasi peringatan untuk kegagalan tugas atau pelanggaran ambang batas latensi. Konfigurasikan ambang batas peringatan dan pengaturan notifikasi. Lihat Konfigurasi pemantauan dan peringatan.

    Langkah 6: Konfigurasi verifikasi data (opsional)

    Klik Next Step: Data Verification untuk menyiapkan verifikasi data. Lihat Konfigurasi tugas verifikasi data.

    Langkah 7: Konfigurasi bidang database dan tabel (opsional)

    Klik Next: Configure Database and Table Fields untuk mengonfigurasi pengaturan khusus AnalyticDB for MySQL V3.0 untuk setiap tabel.

    Langkah ini hanya tersedia jika Schema Synchronization dipilih. Atur Definition Status ke All untuk melihat dan memodifikasi semua tabel.
    ParameterDeskripsi
    TypeJenis tabel di AnalyticDB for MySQL V3.0.
    Primary Key ColumnKolom kunci primer untuk tabel. Mendukung kunci primer komposit.
    Distribution KeyKunci distribusi untuk tabel. Harus berupa satu atau lebih kolom kunci primer.
    Partition Key / Partitioning Rules / Partition LifecyclePengaturan partisi untuk tabel. Lihat CREATE TABLE.

    Langkah 8: Simpan tugas dan jalankan pemeriksaan awal

    • Untuk melihat pratinjau parameter API untuk konfigurasi tugas ini, arahkan pointer ke Next: Save Task Settings and Precheck lalu klik Preview OpenAPI parameters.

    • Klik Next: Save Task Settings and Precheck untuk menyimpan dan memulai pemeriksaan awal.

    Jika pemeriksaan awal gagal:

    • Klik View Details di sebelah setiap item yang gagal, perbaiki masalahnya, lalu jalankan pemeriksaan awal lagi.

    • Jika suatu item menampilkan peringatan yang dapat diabaikan, klik Confirm Alert Details, lalu Ignore, lalu OK, dan kemudian Precheck Again. Mengabaikan peringatan dapat menyebabkan inkonsistensi data.

    Langkah 9: Beli instans

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

    2. Di halaman pembelian, konfigurasikan hal berikut.

    ParameterDeskripsi
    Billing MethodSubscription: bayar di muka untuk jangka waktu 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 menghindari biaya berlebihan.
    Resource Group SettingsKelompok sumber daya untuk instans sinkronisasi. Default: default resource group. Lihat Apa itu Manajemen Sumber Daya?
    Instance ClassTier kecepatan sinkronisasi. Lihat Kelas instans instansi sinkronisasi data.
    Subscription DurationTersedia untuk metode penagihan subscription. Opsi: 1–9 bulan, 1 tahun, 2 tahun, 3 tahun, atau 5 tahun.
    1. Baca dan pilih Data Transmission Service (Pay-as-you-go) Service Terms.

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

    Tugas muncul di daftar tugas. Pantau perkembangannya di sana.

    Langkah selanjutnya