Data Transmission Service (DTS) menjaga sinkronisasi real-time antara kluster PolarDB for MySQL dan kluster ApsaraDB for ClickHouse, memungkinkan analitik terpusat tanpa mengganggu database sumber Anda.
Jenis sinkronisasi dan penagihan
| Jenis sinkronisasi | Penagihan |
|---|---|
| Schema synchronization | Gratis |
| Full data synchronization | Gratis |
| Incremental data synchronization | Dikenai biaya. Untuk detailnya, lihat Billing overview. |
Prasyarat
Sebelum memulai, pastikan bahwa:
Kluster ApsaraDB for ClickHouse yang menjalankan ClickHouse V20.8 atau versi lebih baru telah siap sebagai tujuan. Lihat Create an ApsaraDB for ClickHouse cluster.
Kluster tujuan memiliki ruang penyimpanan tersedia lebih besar daripada ukuran total data di kluster sumber PolarDB for MySQL.
Binary logging diaktifkan pada kluster sumber dan
loose_polar_log_bindiatur keon. Lihat Enable binary logging dan Modify parameters.Akun database sumber memiliki izin yang diperlukan (lihat Permissions required for database accounts).
Log biner pada kluster sumber harus dipertahankan minimal selama tujuh hari. Periode retensi yang lebih pendek dapat menyebabkan DTS kehilangan posisinya dalam binlog, sehingga menyebabkan kegagalan tugas atau kehilangan data. Mengaktifkan binary logging menimbulkan biaya penyimpanan pada PolarDB for MySQL.
Izin yang diperlukan untuk akun database
| Database | Izin yang diperlukan | Referensi |
|---|---|---|
| Kluster sumber PolarDB for MySQL | Izin baca pada semua objek yang akan disinkronkan | Membuat dan mengelola akun database serta mengelola kata sandi akun database |
| ApsaraDB for ClickHouse tujuan V22.8 atau versi lebih baru | Izin baca dan tulis pada database tujuan (akun istimewa dapat digunakan) | Mengelola akun database di kluster Edisi yang Kompatibel dengan Komunitas |
| ApsaraDB for ClickHouse tujuan V21.8 | Read, Write and Set Permissions dan Enable DDL | Sama seperti di atas |
Batasan
Batasan instans sumber
Server sumber harus memiliki bandwidth outbound yang mencukupi. Bandwidth yang tidak mencukupi memperlambat proses sinkronisasi.
Jika Anda menyinkronkan tabel dan ingin mengganti nama atau memodifikasi kolom di tujuan, satu tugas mendukung hingga 1.000 tabel. Untuk lebih dari 1.000 tabel, bagi menjadi beberapa tugas atau sinkronkan seluruh database.
Jangan menjalankan operasi DDL pada sumber selama sinkronisasi data penuh. Melakukannya akan menyebabkan kegagalan tugas.
Batasan lainnya
DTS tidak menyinkronkan node read-only atau tabel eksternal Object Storage Service (OSS) dari kluster sumber.
Pernyataan DDL yang bukan sintaks standar MySQL dapat menyebabkan kegagalan tugas atau kehilangan data.
RENAME TABLE tidak didukung.
Nilai DATETIME di sumber harus berada dalam rentang waktu yang didukung oleh ClickHouse (lihat Time range).
Semua kolom yang dipilih sebagai Partition Key harus berupa bidang non-kosong.
Maksimal 256 database dapat disinkronkan ke satu kluster ApsaraDB for ClickHouse.
Nama database, tabel, dan kolom harus mematuhi konvensi penamaan ApsaraDB for ClickHouse. Lihat Limits on object naming conventions.
Selama schema synchronization, DTS menambahkan bidang
_sign,_is_deleted, dan_versionke tabel tujuan. Jika Anda menonaktifkan Schema Synchronization, buat tabel tujuan secara manual dan sertakan bidang-bidang tersebut.Jangan menulis data dari sumber lain ke database tujuan selama sinkronisasi. Penulisan konkuren menyebabkan ketidakkonsistenan data.
Jangan gunakan pt-online-schema-change untuk menjalankan DDL pada tabel yang sedang disinkronkan di tingkat tabel. Gunakan Data Management (DMS) lock-free DDL sebagai gantinya.
Jalankan sinkronisasi selama jam sepi jika memungkinkan. Sinkronisasi data penuh menggunakan sumber daya baca dan tulis pada kedua kluster.
Jika suatu tugas gagal, tim dukungan DTS akan berusaha memulihkannya dalam waktu 8 jam dan mungkin me-restart tugas atau memodifikasi parameter tugas (bukan parameter database).
Operasi SQL yang mendukung sinkronisasi data
DML
INSERT, UPDATE, dan DELETE
DDL
| Operasi DDL | Didukung |
|---|---|
| CREATE TABLE | Ya |
| TRUNCATE TABLE | Ya |
| ALTER TABLE | Ya |
| ADD COLUMN | Ya |
| MODIFY COLUMN | Ya |
| DROP TABLE | Ya |
| DROP COLUMN | Ya |
| RENAME TABLE | Tidak |
Pemetaan tipe data
PolarDB for MySQL dan ApsaraDB for ClickHouse mendukung tipe data yang berbeda. Selama initial schema synchronization, DTS memetakan tipe sumber ke tipe tujuan yang kompatibel. Lihat Data type mappings for initial schema synchronization.
Buat tugas sinkronisasi
Langkah 1: Buka halaman sinkronisasi data
Konsol DTS
Login ke Konsol DTS
Pada panel navigasi kiri, klik Data Synchronization.
Pada pojok kiri atas, pilih wilayah tempat instans sinkronisasi akan berada.
Konsol DMS
Jalur navigasi yang tepat bervariasi tergantung mode konsol DMS. Lihat Simple mode dan Customize the layout and style of the DMS console.
Login ke Konsol DMS
Pada bilah navigasi atas, arahkan kursor ke Data + AI lalu pilih DTS (DTS) > Data Synchronization.
Dari daftar drop-down di samping Data Synchronization Tasks, pilih wilayah tempat instans sinkronisasi akan berada.
Langkah 2: Konfigurasi database sumber dan tujuan
Klik Create Task, lalu isi parameter berikut.
| Bagian | Parameter | Deskripsi |
|---|---|---|
| N/A | Task Name | Nama untuk tugas DTS. DTS menghasilkan nama secara otomatis. Gunakan nama deskriptif agar mudah mengidentifikasi tugas. Nama tidak perlu unik. |
| Source Database | Select Existing Connection | Pilih instans database terdaftar dari daftar drop-down, atau konfigurasi koneksi secara manual jika instans belum terdaftar. |
| Database Type | Pilih PolarDB for MySQL. | |
| Access Method | Pilih Alibaba Cloud Instance. | |
| Instance Region | Wilayah tempat kluster sumber PolarDB for MySQL berada. | |
| Replicate Data Across Alibaba Cloud Accounts | Pilih No untuk sinkronisasi dalam akun yang sama. | |
| PolarDB Cluster ID | ID kluster sumber PolarDB for MySQL. | |
| Database Account | Akun database untuk kluster sumber. | |
| Database Password | Kata sandi untuk akun tersebut. | |
| Encryption | Apakah koneksi ke database sumber dienkripsi. Lihat Configure SSL encryption. | |
| Destination Database | Select Existing Connection | Pilih instans terdaftar atau konfigurasi koneksi secara manual. |
| Database Type | Pilih ClickHouse. | |
| Access Method | Pilih Alibaba Cloud Instance. | |
| Instance Region | Wilayah tempat kluster tujuan ApsaraDB for ClickHouse berada. | |
| Replicate Data Across Alibaba Cloud Accounts | Pilih No untuk sinkronisasi dalam akun yang sama. | |
| Cluster Type | Jenis kluster tujuan ApsaraDB for ClickHouse. | |
| Cluster ID | ID kluster tujuan ApsaraDB for ClickHouse. | |
| Database Account | Akun database untuk kluster tujuan. | |
| Database Password | Kata sandi untuk akun tersebut. |
Klik Test Connectivity and Proceed.
Pastikan blok CIDR server DTS telah ditambahkan ke aturan grup keamanan database sumber dan tujuan. Lihat Add the CIDR blocks of DTS servers.
Langkah 3: Konfigurasi objek yang akan disinkronkan
Pada langkah Configure Objects, atur parameter berikut.
| Parameter | Deskripsi |
|---|---|
| Synchronization Types | Pilih Schema Synchronization, Full Data Synchronization, dan Incremental Data Synchronization. Sinkronisasi data penuh memuat data historis sebelum sinkronisasi inkremental dimulai. |
| Processing Mode of Conflicting Tables | Precheck and Report Errors (default): gagal dalam pemeriksaan awal jika tujuan memiliki tabel dengan nama yang sama dengan sumber. Gunakan object name mapping untuk menghindari konflik. Ignore Errors and Proceed: melewati pemeriksaan konflik. Selama sinkronisasi penuh, catatan yang sudah ada di tujuan dipertahankan; selama sinkronisasi inkremental, catatan tersebut ditimpa. Jika skema berbeda, tugas mungkin gagal. Gunakan dengan hati-hati. |
| Capitalization of Object Names in Destination Instance | Mengontrol penanganan huruf besar/kecil untuk nama database, tabel, dan kolom. Default: DTS default policy. Lihat Specify the capitalization of object names in the destination instance. |
| Source Objects | Pilih database, tabel, atau kolom yang akan disinkronkan lalu klik ikon panah untuk menambahkannya ke Selected Objects. |
| Selected Objects | Klik kanan objek untuk mengganti namanya, atau klik Batch Edit untuk mengganti nama beberapa objek sekaligus. Klik kanan tabel untuk menambahkan kondisi filter SQL. Lihat Map object names dan Set filter conditions |
Jika Anda menggunakan pemetaan nama objek, objek yang bergantung pada objek yang diganti nama mungkin gagal disinkronkan.
Klik Next: Advanced Settings dan konfigurasi parameter berikut.
| Parameter | Deskripsi |
|---|---|
| Dedicated Cluster for Task Scheduling | Secara default, DTS menggunakan kluster bersama. Untuk stabilitas lebih tinggi, beli kluster khusus. Lihat What is a DTS dedicated cluster. |
| Time zone of destination database | Zona waktu yang diterapkan pada data DateTime yang ditulis ke kluster ClickHouse tujuan. |
| Retry Time for Failed Connections | Durasi DTS mencoba kembali koneksi yang gagal setelah tugas dimulai. Nilai valid: 10–1440 menit. Default: 720 menit. Atur minimal 30 menit. Jika beberapa tugas berbagi sumber atau tujuan yang sama, waktu coba ulang terpendek yang berlaku. Biaya DTS tetap berjalan selama percobaan ulang. |
| Retry Time for Other Issues | Durasi DTS mencoba kembali operasi DDL atau DML yang gagal. Nilai valid: 1–1440 menit. Default: 10 menit. Atur minimal 10 menit. Nilai ini harus lebih kecil dari Retry Time for Failed Connections. |
| Enable Throttling for Full Data Synchronization | Membatasi beban baca dan tulis selama sinkronisasi penuh. Konfigurasi 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 Synchronization | Membatasi beban selama sinkronisasi inkremental. Konfigurasi 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 tasks | Yesalert notification settings: DTS tidak menulis SQL heartbeat ke sumber, yang dapat menunjukkan latensi tugas. No: DTS menulis SQL heartbeat, yang dapat memengaruhi backup fisik dan kloning sumber. |
| Environment Tag | Tag opsional untuk mengkategorikan instans sinkronisasi. |
| Configure ETL | Apakah fitur extract, transform, and load (ETL) diaktifkan. Yes: masukkan pernyataan pemrosesan data di editor kode. Lihat Configure ETL in a data migration or data synchronization task. No: lewati ETL. |
| Monitoring and Alerting | Yes: konfigurasi ambang batas peringatan dan kontak notifikasi agar DTS memberi peringatan saat tugas gagal atau latensi sinkronisasi melebihi ambang batas. Lihat Configure monitoring and alerting. No: tanpa peringatan. |
Klik Next: Configure Database and Table Fields untuk mengatur Type, Primary Key Column, Sort Key, Distribution Key, dan Partition Key untuk setiap tabel tujuan ClickHouse.
DTS mengonfigurasi bidang-bidang ini secara otomatis secara default. Untuk mengubahnya, atur Definition Status ke All.
Primary Key Column dan Sort Key menerima beberapa kolom. Distribution Key hanya menerima satu kolom.
Partition Key bersifat opsional. Jika dikonfigurasi, semua kolom yang dipilih harus berupa bidang non-kosong.
Untuk detail parameter tabel ClickHouse, lihat CREATE TABLE.
Langkah 4: Jalankan pemeriksaan awal
Klik Next: Save Task Settings and Precheck.
Untuk melihat pratinjau parameter API untuk tugas ini, arahkan kursor ke Next: Save Task Settings and Precheck lalu klik Preview OpenAPI parameters.
DTS menjalankan pemeriksaan awal sebelum memulai tugas. Jika pemeriksaan awal gagal:
Klik View Details di sebelah item yang gagal, perbaiki masalahnya, lalu klik Precheck Again.
Untuk item peringatan yang dapat diabaikan, klik Confirm Alert Details > Ignore > OK, lalu klik Precheck Again. Mengabaikan peringatan dapat menyebabkan ketidakkonsistenan data.
Langkah 5: Beli instans
Tunggu hingga Success Rate mencapai 100%, lalu klik Next: Purchase Instance.
Pada halaman buy, konfigurasi parameter berikut.
| Parameter | Deskripsi |
|---|---|
| Billing Method | Subscription: bayar di muka, 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 biaya. |
| Resource Group Settings | Kelompok sumber daya untuk instans sinkronisasi. Default: default resource group. Lihat What is Resource Management? |
| Instance Class | Kelas instans menentukan kecepatan sinkronisasi. Lihat Instance classes of data synchronization instances. |
| Subscription Duration | Tersedia hanya untuk penagihan Subscription. Opsi: 1–9 bulan, atau 1, 2, 3, atau 5 tahun. |
Baca dan pilih Data Transmission Service (Pay-as-you-go) Service Terms.
Klik Buy and Start, lalu klik OK dalam kotak dialog konfirmasi.
Tugas muncul dalam daftar tugas. Pantau perkembangannya di sana.
Kueri data yang telah disinkronkan
Setelah sinkronisasi selesai, gunakan pernyataan berikut untuk mengkueri data di kluster ClickHouse tujuan:
SELECT * FROM table_name FINAL WHERE _sign > 0;Kata kunci FINAL menggabungkan baris dengan kunci pengurutan yang sama dan mengembalikan versi terbaru. Filter WHERE _sign > 0 mengecualikan baris yang ditandai untuk penghapusan.
Lampiran
Rentang waktu
| Tipe data | Nilai minimum | Nilai maksimum |
|---|---|---|
| Date | 1970-01-01 00:00:00 | 2149-06-06 00:00:00 |
| Date32 | 1925-01-01 00:00:00 | 2283-11-11 00:00:00 |
| DateTime | 1970-01-01 08:00:00 | 2106-02-07 14:28:15 |
| DateTime64 | 1925-01-01 08:00:00 | 2283-11-12 07:59:59 |
Tabel
Jika Anda membuat tabel tujuan secara manual (tanpa schema synchronization), tabel tersebut harus memenuhi persyaratan berikut.
Jika tabel tujuan mencakup parameter ENGINE, atur ke ENGINE = ReplicatedReplacingMergeTree(_version, _is_deleted). Nilai lain menyebabkan ketidakkonsistenan data.
Community-compatible Edition: buat tabel lokal dan tabel terdistribusi. Nama tabel terdistribusi harus sesuai dengan nama tabel sumber. Nama tabel lokal mengikuti format
<distributed_table_name>_local.Enterprise Edition: buat tabel dengan nama yang sama dengan tabel sumber.
Bidang
DTS menambahkan bidang metadata berikut ke tabel tujuan.
ApsaraDB for ClickHouse Community-compatible Edition yang menjalankan V23.8 atau versi lebih lama
| Bidang | Tipe data | Nilai default | Deskripsi |
|---|---|---|---|
_sign | Int8 | 1 | Jenis operasi DML: INSERT atau UPDATE = 1; DELETE = -1. |
_version | UInt64 | 1 | Waktu saat baris ditulis ke kluster ClickHouse. |
ApsaraDB for ClickHouse Enterprise Edition atau Community-compatible Edition yang menjalankan V23.8 atau versi lebih baru
| Bidang | Tipe data | Nilai default | Deskripsi |
|---|---|---|---|
_sign | Int8 | 1 | Jenis operasi DML: INSERT atau UPDATE = 1; DELETE = -1. |
_is_deleted | UInt8 | 0 | Apakah baris tersebut dihapus: INSERT atau UPDATE = 0; DELETE = 1. |
_version | UInt64 | 1 | Timestamp saat baris ditulis ke kluster ClickHouse. |