Gunakan Data Transmission Service (DTS) untuk mengalirkan data perubahan dari instans PolarDB-X 1.0 ke topik ApsaraMQ for Kafka secara real time. DTS menjalankan sinkronisasi sebagai subtask terdistribusi—satu subtask per instans ApsaraDB RDS for MySQL yang tersambung—sehingga Anda dapat menyebarkan event CDC ke konsumen Kafka tanpa mengubah aplikasi Anda.
Prasyarat
Sebelum memulai, pastikan Anda telah:
Memiliki instans PolarDB-X 1.0. Lihat Create a PolarDB-X 1.0 instance.
Memiliki topik di instans ApsaraMQ for Kafka tujuan untuk menerima data yang disinkronkan. Lihat Getting started overview.
Memiliki ruang penyimpanan kosong yang cukup di instans ApsaraMQ for Kafka untuk menampung seluruh dataset dari PolarDB-X 1.0.
Memiliki izin baca pada objek yang akan disinkronkan, diberikan kepada akun database. Lihat Manage accounts.
Batasan
Persyaratan database sumber
Tabel harus memiliki kendala PRIMARY KEY atau UNIQUE dan semua field harus unik. Jika tidak, database tujuan mungkin berisi catatan data duplikat. Tabel yang hanya memiliki kendala UNIQUE tidak mendukung sinkronisasi skema. Kami merekomendasikan agar Anda menyinkronkan tabel yang memiliki kendala PRIMARY KEY. Tabel dengan indeks secondary tidak dapat disinkronkan.
Jika Anda memilih tabel (bukan seluruh database) sebagai objek sinkronisasi dan perlu mengganti nama tabel atau kolom di tujuan, satu task mendukung hingga 5.000 tabel. Untuk jumlah tabel yang lebih banyak, bagi pekerjaan tersebut ke beberapa task atau sinkronkan seluruh database saja.
Instans ApsaraDB RDS for MySQL yang tersambung ke PolarDB-X 1.0 harus memenuhi persyaratan log biner berikut:PolarDB-X 1.0
Binary logging harus diaktifkan dan
binlog_row_imageharus diatur kefull. Jika tidak, pemeriksaan awal gagal dan task tidak dapat dimulai. Untuk memverifikasi pengaturan ini, jalankan SQL berikut pada database sumber:sql -- Periksa status binary logging SHOW VARIABLES LIKE 'log_bin'; -- Periksa nilai binlog_row_image (harus FULL) SHOW VARIABLES LIKE 'binlog_row_image';Jika salah satu pengaturan tidak sesuai, perbarui file konfigurasi MySQL (
my.cnf) pada setiap instans RDS yang tersambung:log_bin = ON binlog_format = ROW binlog_row_image = FULLUntuk sinkronisasi inkremental saja: log biner harus dipertahankan minimal selama 24 jam.
Untuk sinkronisasi penuh plus inkremental: log biner harus dipertahankan minimal selama tujuh hari. Jika DTS tidak dapat membaca log biner, task gagal dan kemungkinan terjadi kehilangan data. Setelah sinkronisasi data penuh selesai, Anda dapat mengatur periode retensi menjadi lebih dari 24 jam. Pastikan Anda mengatur periode retensi log biner sesuai dengan persyaratan di atas. Jika tidak, keandalan layanan dan kinerja yang dinyatakan dalam Service Level Agreement (SLA) DTS tidak dapat tercapai.
Batasan operasional
Jangan lakukan operasi berikut selama sinkronisasi karena dapat menyebabkan kegagalan task atau inkonsistensi data:
Upgrade atau downgrade instans ApsaraDB RDS for MySQL yang tersambung
Mengubah distribusi database fisik dan tabel yang bersesuaian dengan database logis dan tabel di instans ApsaraDB RDS for MySQL
Mengubah shard key
Menjalankan operasi DDL pada objek yang sedang disinkronkan
Menggunakan gh-ost atau pt-online-schema-change untuk operasi DDL
DTS menonaktifkan pemeriksaan kendala kunci asing dan operasi kaskade pada tingkat session selama sinkronisasi. Jika Anda menjalankan pembaruan atau penghapusan kaskade pada sumber, hal ini dapat menyebabkan inkonsistensi data.
Jika jenis jaringan instans PolarDB-X 1.0 berubah selama sinkronisasi, perbarui pengaturan koneksi jaringan di task DTS.PolarDB-X 1.0
Untuk sinkronisasi penuh saja: jangan menulis ke database sumber selama task berlangsung. Untuk memastikan konsistensi, jalankan sinkronisasi skema, sinkronisasi data penuh, dan sinkronisasi data inkremental secara bersamaan.
Tulis data ke tujuan hanya melalui DTS. Menulis melalui alat lain dapat menyebabkan kehilangan data jika operasi DDL Online dilakukan melalui DMS.
Sinkronisasi PolarDB-X 1.0 dijalankan sebagai sinkronisasi terdistribusi. Setiap instans ApsaraDB RDS for MySQL yang tersambung dipetakan ke satu subtask DTS. Pantau status subtask di topologi task.
Jika instans ApsaraMQ for Kafka tujuan di-upgrade atau di-downgrade, restart instans tersebut untuk melanjutkan sinkronisasi.
Jalankan sinkronisasi selama jam sepi jika memungkinkan. Sinkronisasi data penuh awal meningkatkan beban baca dan tulis pada sumber dan tujuan.
Setelah sinkronisasi data penuh awal selesai, ruang tabel tujuan mungkin lebih besar daripada sumber karena fragmentasi dari operasi INSERT konkuren.
Topologi sinkronisasi yang didukung
Satu arah satu-ke-satu
Satu arah satu-ke-banyak
Satu arah kaskade
Satu arah banyak-ke-satu
Untuk detailnya, lihat Synchronization topologies.
Operasi SQL yang dapat disinkronkan
| Operation type | SQL statements |
|---|---|
| DML | INSERT, UPDATE, DELETE |
Buat task sinkronisasi
Buka halaman Data Synchronization page di Konsol DTS.
CatatanSebagai alternatif, masuk ke Konsol Data Management (DMS), arahkan penunjuk ke Data + AI pada bilah navigasi atas, lalu pilih DTS (DTS) > Data Synchronization.
Di pojok kiri atas, pilih Wilayah tempat instans sinkronisasi akan berada.
Klik Create Task dan konfigurasikan database sumber dan tujuan.
Task settings
Parameter Description Task Name Masukkan nama deskriptif. DTS menghasilkan nama secara otomatis; nama unik tidak diperlukan. Source Database
Parameter Description Select a DMS database instance Opsional. Pilih instans yang sudah ada dan DTS akan mengisi field lainnya secara otomatis. Database Type Pilih PolarDB-X 1.0. Connection Type Pilih Alibaba Cloud Instance. Instance Region Wilayah instans PolarDB-X 1.0 sumber. Cross-account Pilih No untuk sinkronisasi dalam akun yang sama. Instance ID ID instans PolarDB-X 1.0 sumber. Database Account Akun database dengan izin baca pada objek yang akan disinkronkan. Database Password Password untuk akun database. Destination Database
Parameter Description Select a DMS database instance Opsional. Pilih instans yang sudah ada dan DTS akan mengisi field lainnya secara otomatis. Database Type Pilih Kafka. Connection Type Pilih Express Connect, VPN Gateway, or Smart Access Gateway. Alibaba Cloud Instance tidak didukung. Instance Region Wilayah instans ApsaraMQ for Kafka tujuan. Connected VPC ID virtual private cloud (VPC) instans ApsaraMQ for Kafka. Untuk menemukan ID VPC: buka halaman detail instans di Konsol ApsaraMQ for Kafka, lalu periksa Configuration Information di tab Instance Information. Domain Name or IP Alamat IP instans ApsaraMQ for Kafka. Untuk menemukan IP: buka halaman detail instans di Konsol ApsaraMQ for Kafka, lalu salin IP dari field Default Endpoint di bawah Endpoint Information pada tab Instance Information. Port Number Port layanan instans ApsaraMQ for Kafka. Default: 9092.Database Account Akun untuk instans ApsaraMQ for Kafka. Diperlukan hanya jika autentikasi access control list (ACL) diaktifkan. Lihat Grant permissions to SASL users. Database Password Password untuk akun Kafka. Diperlukan hanya jika autentikasi ACL diaktifkan. Kafka Version Versi instans ApsaraMQ for Kafka tujuan. Encryption Pilih Non-encrypted atau SCRAM-SHA-256 berdasarkan kebutuhan bisnis dan keamanan Anda. Topic Topik yang menerima data yang disinkronkan. Pilih dari daftar drop-down. Topic That Stores DDL Information Topik yang menyimpan informasi DDL. Jika dibiarkan kosong, informasi DDL disimpan di topik yang ditentukan oleh Topic. Use Kafka Schema Registry Apakah akan menggunakan Kafka Schema Registry untuk penyimpanan skema Avro. Pilih Yes dan berikan URL Schema Registry untuk mengaktifkannya, atau pilih No untuk menonaktifkannya. Klik Test Connectivity and Proceed. DTS secara otomatis menambahkan blok CIDR servernya ke daftar putih instans database Alibaba Cloud atau ke aturan security group instans Elastic Compute Service (ECS). Untuk database yang dikelola sendiri di pusat data atau yang dihosting oleh penyedia pihak ketiga, tambahkan secara manual blok CIDR server DTS ke daftar putih database. Lihat Add the CIDR blocks of DTS servers.
PeringatanMenambahkan blok CIDR server DTS ke daftar putih atau security group menimbulkan risiko keamanan. Lakukan tindakan pencegahan: perkuat kredensial, batasi port yang terbuka, autentikasi panggilan API, audit aturan daftar putih secara berkala, dan pertimbangkan untuk terhubung melalui Express Connect, VPN Gateway, atau Smart Access Gateway.
Pilih objek yang akan disinkronkan dan konfigurasikan pengaturan sinkronisasi.
Parameter Description Synchronization Types Secara default, Incremental Data Synchronization dipilih. Anda juga harus memilih Schema Synchronization dan Full Data Synchronization. Menjalankan ketiganya memastikan data historis dimuat terlebih dahulu, membentuk garis dasar yang konsisten untuk sinkronisasi inkremental. Processing Mode of Conflicting Tables Precheck and Report Errors (default): pemeriksaan awal gagal jika tujuan berisi tabel dengan nama yang sama. Ignore Errors and Proceed: melewati pemeriksaan, tetapi dapat menyebabkan inkonsistensi data — gunakan dengan hati-hati. Data Format in Kafka DTS Avro (default dan satu-satunya opsi untuk PolarDB-X 1.0): data diurai menggunakan definisi skema DTS Avro. Canal JSON tidak didukung untuk PolarDB-X 1.0. Untuk skema DTS Avro, lihat GitHub. Policy for Shipping Data to Kafka Partitions Tidak didukung. Capitalization of Object Names in Destination Instance Mengontrol kapitalisasi nama database, tabel, dan kolom di tujuan. Default: DTS default policy. Lihat Specify the capitalization of object names. Source Objects Pilih objek dari Source Objects dan klik ikon panah untuk memindahkannya ke Selected Objects. Pilih tabel individual, bukan seluruh database. Jika Anda memilih seluruh database, DTS tidak menyinkronkan operasi CREATE TABLE atau DROP TABLE. Selected Objects Untuk mengganti nama satu objek, klik kanan objek tersebut dan pilih opsi pemetaan. Untuk mengganti nama beberapa objek sekaligus, klik Batch Edit. Untuk memfilter baris berdasarkan kondisi, klik kanan objek dan tentukan klausa WHERE. Lihat Map object names dan Specify filter conditions. Klik Next: Advanced Settings dan konfigurasikan opsi berikut.
Parameter Description Migrate a DTS instance from a dedicated cluster to a shared cluster Biarkan kosong kecuali Anda memerlukan klaster khusus DTS. Lihat What is a DTS dedicated cluster? Monitoring and Alerting Pilih Yes untuk menerima notifikasi ketika task gagal atau latensi sinkronisasi melebihi ambang batas. Konfigurasikan ambang batas peringatan dan kontak. Lihat Configure monitoring and alerting. Retry Time for Failed Connections Rentang waktu di mana DTS mencoba ulang koneksi yang gagal. Rentang: 10–1440 menit. Default: 720 menit. Atur minimal 30 menit. Jika beberapa task berbagi database sumber atau tujuan yang sama, rentang percobaan ulang terpendek yang berlaku. Saat DTS mencoba ulang koneksi, Anda dikenai biaya untuk instans DTS. Kami merekomendasikan agar Anda menentukan rentang waktu percobaan ulang berdasarkan kebutuhan bisnis Anda. Anda juga dapat melepas instans DTS sesegera mungkin setelah instans sumber dan tujuan dilepas. The wait time before a retry when other issues occur in the source and destination databases Rentang waktu di mana DTS mencoba ulang operasi DML atau DDL yang gagal. Rentang: 1–1440 menit. Default: 10 menit. Atur minimal 10 menit, dan pastikan nilai ini lebih rendah daripada pengaturan Retry Time for Failed Connections. Configure ETL Pilih Yes untuk menerapkan transformasi ekstrak, transformasi, muat (ETL) dan masukkan pernyataan pemrosesan di editor kode. Lihat Configure ETL. Simpan pengaturan task dan jalankan pemeriksaan awal.
Untuk melihat pratinjau parameter API untuk konfigurasi task ini, arahkan kursor ke Next: Save Task Settings and Precheck dan klik Preview OpenAPI parameters.
Klik Next: Save Task Settings and Precheck.
CatatanTask hanya dimulai setelah lulus pemeriksaan awal. Jika ada item yang gagal, klik View Details untuk meninjau penyebabnya, perbaiki masalah tersebut, dan jalankan ulang pemeriksaan awal. Untuk item peringatan yang dapat diabaikan dengan aman, klik Confirm Alert Details, lalu Ignore, lalu Precheck Again.
Tunggu hingga Success Rate mencapai 100%, lalu klik Next: Purchase Instance.
Di halaman Buy, konfigurasikan penagihan dan pengaturan instans.
Parameter Description Billing Method Subscription: 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 lagi diperlukan untuk menghentikan penagihan. Resource Group Settings Kelompok sumber daya untuk instans sinkronisasi. Default: default resource group. Lihat What is Resource Management? Instance Class Tier throughput sinkronisasi. Lihat Instance classes of data synchronization instances. Subscription Duration Tersedia hanya untuk metode penagihan Subscription. Opsi: 1–9 bulan, 1 tahun, 2 tahun, 3 tahun, atau 5 tahun. Baca dan terima Data Transmission Service (Pay-as-you-go) Service Terms.
Klik Buy and Start, lalu klik OK di kotak dialog.
Task muncul di daftar task. Anda dapat memantau progres sinkronisasi dari sana.