Layanan Transmisi Data (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 |
Sinkronisasi skema | Gratis |
Sinkronisasi data penuh | Gratis |
Sinkronisasi data inkremental | Dikenai biaya. Untuk detailnya, lihat Ikhtisar penagihan. |
Prasyarat
Sebelum memulai, pastikan bahwa:
Kluster ApsaraDB for ClickHouse yang menjalankan ClickHouse V20.8 atau versi lebih baru telah siap sebagai tujuan. Lihat Buat kluster ApsaraDB for ClickHouse.
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 Aktifkan binary logging dan Ubah parameter.Akun database sumber memiliki izin yang diperlukan (lihat Izin yang diperlukan untuk akun database).
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 | Required permissions | References |
Kluster sumber PolarDB for MySQL | Izin baca pada semua objek yang akan disinkronkan | Create and manage a database account dan Manage the password of a database account |
ApsaraDB for ClickHouse tujuan versi V22.8 atau yang lebih baru | Izin baca dan tulis pada database tujuan (akun istimewa dapat digunakan) | Manage database accounts in a Community-compatible Edition cluster |
ApsaraDB for ClickHouse tujuan versi 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 cukup. Bandwidth yang tidak mencukupi memperlambat 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 tugas gagal.
Sinkronisasi data tipe VECTOR tidak didukung.
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 tugas gagal atau kehilangan data.
RENAME TABLE tidak didukung.
Nilai DATETIME di sumber harus berada dalam rentang waktu yang didukung oleh ClickHouse (lihat Rentang waktu).
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 Batasan pada konvensi penamaan objek.
Selama sinkronisasi skema, 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 DDL bebas lock Data Management (DMS) 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 sinkronisasi skema awal, DTS memetakan tipe sumber ke tipe tujuan yang kompatibel. Lihat Pemetaan tipe data untuk sinkronisasi skema awal.
Buat tugas sinkronisasi
Langkah 1: Buka halaman sinkronisasi data
Konsol DTS
Masuk ke Konsol DTS
Di panel navigasi kiri, klik Data Synchronization.
Di pojok kiri atas, pilih wilayah tempat instans sinkronisasi akan berada.
Konsol DMS
Catatan
Jalur navigasi yang tepat bervariasi tergantung mode konsol DMS. Lihat Mode simple dan Sesuaikan tata letak dan gaya konsol DMS.
Masuk ke Konsol DMS
Di bilah navigasi atas, arahkan pointer 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: Konfigurasikan 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 konfigurasikan 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 | Password untuk akun tersebut. | |
Encryption | Apakah koneksi ke database sumber dienkripsi. Lihat Konfigurasikan enkripsi SSL. | |
Destination Database | Select Existing Connection | Pilih instans terdaftar atau konfigurasikan 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 | Password untuk akun tersebut. |
Klik Test Connectivity and Proceed.
Pastikan blok CIDR server DTS telah ditambahkan ke aturan grup keamanan database sumber dan tujuan. Lihat Tambahkan blok CIDR server DTS.
Langkah 3: Konfigurasikan 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 pemetaan nama objek 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 Tentukan kapitalisasi nama objek di instans tujuan. |
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 Pemetaan nama objek dan Atur kondisi filter . |
Jika Anda menggunakan pemetaan nama objek, objek yang bergantung pada objek yang diganti namanya mungkin gagal disinkronkan.
Klik Next: Advanced Settings dan konfigurasikan parameter berikut.
Parameter | Deskripsi |
Dedicated Cluster for Task Scheduling | Secara default, DTS menggunakan kluster bersama. Untuk stabilitas lebih tinggi, beli kluster khusus. Lihat Apa itu kluster khusus DTS. |
Time zone of destination database | Zona waktu yang diterapkan pada data DateTime yang ditulis ke kluster ClickHouse tujuan. |
Retry Time for Failed Connections | Berapa lama DTS mencoba ulang 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 | Berapa lama DTS mencoba ulang 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. Konfigurasikan 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. Konfigurasikan 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 mungkin menunjukkan latensi tugas. No: DTS menulis SQL heartbeat, yang mungkin memengaruhi backup fisik dan kloning sumber. |
Environment Tag | Tag opsional untuk mengkategorikan instans sinkronisasi. |
Configure ETL | Apakah fitur ekstrak, transformasi, dan muat (ETL) diaktifkan. Yes: masukkan pernyataan pemrosesan data di editor kode. Lihat Konfigurasikan ETL dalam tugas migrasi data atau sinkronisasi data. No: lewati ETL. |
Monitoring and Alerting | Yes: konfigurasikan ambang batas peringatan dan kontak notifikasi agar DTS memberi tahu Anda saat tugas gagal atau latensi sinkronisasi melebihi ambang batas. Lihat Konfigurasikan pemantauan dan peringatan. 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 samping 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.
Di halaman buy, konfigurasikan 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 Apa itu Resource Management? |
Instance Class | Kelas instans menentukan kecepatan sinkronisasi. Lihat Kelas instans untuk instansi sinkronisasi data. |
Subscription Duration | Hanya tersedia 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 di kotak dialog konfirmasi.
Tugas muncul di 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 dihapus.
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 sinkronisasi skema), tabel tersebut harus memenuhi persyaratan berikut.
Jika tabel tujuan mencakup parameter ENGINE, atur ke ENGINE = ReplicatedReplacingMergeTree(_version, _is_deleted). Nilai lainnya menyebabkan ketidakkonsistenan data.
Edisi Kompatibel Komunitas: buat tabel lokal dan tabel terdistribusi. Nama tabel terdistribusi harus sesuai dengan nama tabel sumber. Nama tabel lokal mengikuti format
<distributed_table_name>_local.Edisi Perusahaan: buat tabel dengan nama yang sama dengan tabel sumber.
Bidang
DTS menambahkan bidang metadata berikut ke tabel tujuan.
ApsaraDB for ClickHouse Edisi Kompatibel Komunitas yang menjalankan V23.8 atau versi sebelumnya
Bidang | Tipe data | Nilai default | Deskripsi |
| Int8 | 1 | Jenis operasi DML: INSERT atau UPDATE = |
| UInt64 | 1 | Waktu saat baris ditulis ke kluster ClickHouse. |
ApsaraDB for ClickHouse Edisi Perusahaan atau Edisi Kompatibel Komunitas yang menjalankan V23.8 atau versi lebih baru
Bidang | Tipe data | Nilai default | Deskripsi |
| Int8 | 1 | Jenis operasi DML: INSERT atau UPDATE = |
| UInt8 | 0 | Apakah baris tersebut dihapus: INSERT atau UPDATE = |
| UInt64 | 1 | Timestamp saat baris ditulis ke kluster ClickHouse. |