ApsaraDB for ClickHouse menyediakan fitur zero-ETL untuk menyinkronkan data dari instans RDS for MySQL ke kluster ApsaraDB for ClickHouse. Fitur ini menghilangkan kebutuhan untuk membuat, memelihara, atau membayar pipa sinkronisasi data, sehingga mengurangi biaya transmisi data serta operasi dan pemeliharaan (O&M).
Ikhtisar
Di era data besar, perusahaan harus menggunakan alat ekstrak, transformasi, dan muat (ETL) untuk mengelola dan memanfaatkan data bisnis dalam jumlah besar yang tersebar di berbagai sistem dan platform secara efisien.
ETL adalah proses yang mengekstrak data dari sistem bisnis hulu, mentransformasi dan membersihkan data tersebut, lalu memuatnya ke gudang data. Proses ini mengintegrasikan data hulu yang terdistribusi ke gudang data tujuan untuk komputasi dan analisis lebih lanjut guna mendukung pengambilan keputusan bisnis yang efektif.
Proses ETL tradisional sering menghadapi tantangan berikut:
Biaya sumber daya meningkat: Sumber data yang berbeda mungkin memerlukan alat ETL yang berbeda. Membangun pipa ETL menimbulkan biaya sumber daya tambahan.
Kompleksitas sistem meningkat: Anda harus memelihara alat ETL, yang meningkatkan kompleksitas O&M dan mengalihkan fokus dari pengembangan aplikasi bisnis.
Ketepatan waktu data berkurang: Beberapa proses ETL melibatkan pembaruan batch berkala. Dalam skenario yang memerlukan data near-real-time, hasil analisis tidak dapat dihasilkan dengan cepat.
Untuk mengatasi tantangan tersebut, Alibaba Cloud ApsaraDB menyediakan fitur zero-ETL. Fitur ini membantu Anda membangun pipa sinkronisasi data antara sistem bisnis yang menggunakan database pemrosesan transaksional online (TP) dan gudang data yang menggunakan database pemrosesan analitik online (OLAP). Fitur ini secara otomatis mengekstrak, mentransformasi, membersihkan, dan memuat data dari sistem bisnis ke gudang data. Hal ini memungkinkan Anda mengelola sinkronisasi data dalam satu solusi terpadu, mengintegrasikan pemrosesan transaksi dengan analitik data, sehingga Anda dapat fokus pada bisnis analitik data Anda.
Manfaat
Sederhana dan mudah digunakan: Anda tidak perlu membuat atau memelihara pipa data kompleks untuk operasi ETL. Cukup pilih instans sumber dan kluster tujuan untuk secara otomatis membuat pipa sinkronisasi data real-time. Ini mengurangi tantangan dalam membangun dan mengelola pipa data serta memungkinkan Anda fokus pada pengembangan aplikasi.
Tanpa biaya: Pipa zero-ETL tidak dikenai biaya. Anda dapat menganalisis data hulu di gudang data tanpa biaya tambahan.
Agregasi multi-sumber: Anda dapat menggunakan pipa zero-ETL untuk menyinkronkan data dari beberapa instans ke satu kluster ApsaraDB for ClickHouse secara real-time. Ini membantu Anda membangun perspektif analitik global.
CatatanJika Anda menyinkronkan data dari beberapa instans ke satu kluster ApsaraDB for ClickHouse, pastikan bahwa objek sinkronisasi pada tugas yang berbeda tidak saling tumpang tindih.
Pipa yang didukung
RDS for MySQL ke ClickHouse
Penagihan
Pipa sinkronisasi zero-ETL tidak dikenai biaya.
Prasyarat
Kluster ApsaraDB for ClickHouse dan instans RDS for MySQL berada di wilayah yang sama.
Akun database telah dibuat untuk instans RDS for MySQL sumber dan kluster tujuan. Untuk informasi selengkapnya, lihat Buat akun untuk instans ApsaraDB RDS for MySQL dan Buat akun untuk kluster ApsaraDB for ClickHouse.
Batasan
Jenis | Deskripsi |
Batasan RDS for MySQL |
|
Batasan lainnya | Data bertipe waktu di ApsaraDB for ClickHouse memiliki batasan rentang. Jika data waktu di RDS MySQL berada di luar rentang ini, waktu yang disinkronkan ke ApsaraDB for ClickHouse akan salah. Untuk informasi tentang batasan rentang tersebut, lihat Informasi waktu. |
Catatan penggunaan
Catatan saat membuat pipa zero-ETL
Jika jumlah tugas zero-ETL yang dibuat untuk kluster ApsaraDB for ClickHouse mencapai batas maksimum, Anda tidak dapat membuat tugas zero-ETL baru. Anda dapat membuat tugas sinkronisasi data tambahan di konsol DTS atau menghapus tugas zero-ETL yang tidak lagi diperlukan. Jumlah maksimum tugas zero-ETL yang dapat Anda buat untuk kluster ApsaraDB for ClickHouse ditentukan sebagai berikut:
Untuk kluster Edisi Perusahaan, jumlah maksimum tugas zero-ETL dihitung menggunakan rumus
(Batas bawah ClickHouse Compute Unit (CCU) kluster / 8). Hasilnya dibulatkan ke atas ke bilangan bulat terdekat. Misalnya, jika sebuah kluster memiliki batas bawah CCU sebesar 22 dan batas atas 36, perhitungannya adalah22 / 8 = 2,75. Hasil ini dibulatkan ke atas menjadi 3. Oleh karena itu, Anda dapat membuat maksimal tiga tugas zero-ETL.Untuk kluster Edisi Komunitas, jumlah maksimum tugas zero-ETL dihitung menggunakan rumus
(Jumlah total core kluster / 8), dan hasilnya dibulatkan ke atas ke bilangan bulat terdekat. Misalnya, jika sebuah kluster memiliki dua node dan setiap node memiliki 8 core serta memori 32 GB, jumlah total core CPU adalah8 * 2 = 16. Hasil perhitungannya adalah16 / 8 = 2. Oleh karena itu, Anda dapat membuat maksimal dua tugas zero-ETL.
Catatan tentang tugas sinkronisasi
Jika pernyataan DDL dari instans RDS MySQL sumber tidak mengikuti sintaks standar MySQL, tugas sinkronisasi mungkin gagal atau terjadi kehilangan data.
Jumlah database yang akan disinkronkan tidak melebihi batas ApsaraDB for ClickHouse, yaitu 256.
Nama database, tabel, dan kolom yang akan disinkronkan mematuhi konvensi penamaan ApsaraDB for ClickHouse. Untuk informasi selengkapnya tentang konvensi tersebut, lihat Konvensi penamaan objek.
Jika Anda menyinkronkan satu atau beberapa tabel alih-alih seluruh database, jangan gunakan alat seperti pt-online-schema-change untuk melakukan operasi DDL Online pada objek sinkronisasi di database sumber. Jika dilakukan, sinkronisasi akan gagal.
Sebelum menyinkronkan data, evaluasi performa database sumber dan tujuan. Kami merekomendasikan agar Anda melakukan sinkronisasi data selama jam sepi. Jika tidak, sinkronisasi data penuh awal akan mengonsumsi sumber daya baca dan tulis dari database sumber dan tujuan, yang dapat meningkatkan beban database.
Selama sinkronisasi skema, fitur zero-ETL menambahkan bidang _sign, _is_deleted, dan _version ke tabel tujuan.
Jika database tujuan adalah kluster Edisi Kompatibel Komunitas dari ApsaraDB for ClickHouse, tugas zero-ETL membuat tabel lokal dan tabel terdistribusi di database tujuan.
Nama tabel terdistribusi sama dengan nama tabel sumber.
Nama tabel lokal adalah
<nama tabel terdistribusi>+_local.
Pemetaan tipe data
Karena MySQL dan kluster ApsaraDB for ClickHouse mendukung tipe data yang berbeda, pemetaan satu-ke-satu tidak mungkin dilakukan. Saat DTS melakukan sinkronisasi skema awal, tipe data dipetakan berdasarkan tipe yang didukung oleh database tujuan. Untuk informasi selengkapnya, lihat Pemetaan tipe data untuk sinkronisasi skema awal.
Persiapan
Buat peran terkait layanan dan berikan izin manajemen yang diperlukan kepada Pengguna Resource Access Management (RAM).
Buat peran terkait layanan AliyunServiceRoleForClickHouseZeroETL.
CatatanSaat Anda mengklik item dalam daftar drop-down ID Instans Database selama pembuatan dan konfigurasi tugas, pesan kesalahan pop-up akan meminta Anda untuk membuat peran terkait layanan AliyunServiceRoleForClickHouseZeroETL. Anda tidak perlu membuat peran ini secara manual karena sistem akan membuatnya secara otomatis.
Berikan izin manajemen kepada Pengguna RAM.
Agar Pengguna RAM dapat membuat tugas zero-ETL, Anda harus memberikan izin berikut kepada Pengguna RAM tersebut. Untuk informasi selengkapnya, lihat Berikan izin kepada Pengguna RAM.
Izin pada instans RDS for MySQL sumber: AliyunRDSFullAccess.
Izin pada instans ClickHouse tujuan: AliyunClickHouseFullAccess.
Izin untuk DTS: Skrip kebijakan kustom untuk DTS adalah sebagai berikut. Untuk informasi selengkapnya tentang cara membuat kebijakan kustom, lihat Buat kebijakan izin kustom.
{ "Version": "1", "Statement": [ { "Action": "dts:*", "Resource": "*", "Effect": "Allow" }, { "Action": "ram:PassRole", "Resource": "*", "Effect": "Allow", "Condition": { "StringEquals": { "acs:Service": "dts.aliyuncs.com" } } } ] }
Sinkronkan data
Langkah 1: Buka halaman zero-ETL
Masuk ke Konsol ApsaraDB for ClickHouse.
Di pojok kiri atas halaman, pilih wilayah kluster target.
Pada halaman Cluster List, pilih List of Community Edition Instances, lalu klik ID kluster target.
Pada halaman Cluster Information, di panel navigasi sebelah kiri, klik Zero-ETL (Seamless Integration) untuk membuka halaman Zero-ETL.
Langkah 2: Buat dan mulai tugas Zero-ETL
Pada halaman Zero-ETL, klik Create Zero-ETL Task untuk membuka halaman Create Zero-ETL Task.
Masukkan Task Name, lalu lengkapi konfigurasi berikut.
Konfigurasikan database sumber dan tujuan.
Konfigurasikan database sumber dan tujuan berdasarkan parameter berikut. Setelah selesai mengonfigurasi, klik Test Connectivity and Proceed.
Database sumber
Parameter
Deskripsi
Database Type
Hanya RDS for MySQL yang didukung.
Access Method
Hanya Instans Alibaba Cloud yang didukung.
Instance Region
Pilih wilayah instans sumber.
RDS Instance ID
ID instans RDS for MySQL.
Database Account
Akun database instans RDS for MySQL.
Database Password
Kata sandi akun database untuk instans RDS for MySQL.
Encryption
Pilih Non-encrypted atau SSL-encrypted sesuai kebutuhan Anda. Jika Anda memilih SSL-encrypted, Anda harus terlebih dahulu mengaktifkan fitur enkripsi SSL untuk instans RDS for MySQL. Untuk informasi selengkapnya, lihat Gunakan sertifikat cloud untuk mengaktifkan enkripsi link SSL dengan cepat.
Database tujuan
Parameter
Deskripsi
Database Type
ClickHouse
Connection Type
Hanya Instans Cloud yang didukung.
Instance Region
Wilayah kluster tujuan.
Cluster ID
ID kluster tujuan.
Cluster Type
Jenis kluster. Nilai yang valid adalah Edisi Komunitas dan Edisi Perusahaan.
Database Account
Akun database kluster tujuan.
Database Password
Kata sandi akun database untuk kluster tujuan.
Konfigurasikan tugas zero-ETL.
Pada bagian Source Objects, pilih objek yang ingin Anda sinkronkan, klik ikon
untuk memindahkan objek ke bagian Selected Objects, lalu klik Next: Configure Database and Table Fields.
Konfigurasikan bidang database dan tabel.
Pada halaman Configurations for Databases, Tables, and Columns, konfigurasikan Type, Primary Key Column, Sort Key, Distribution Key, dan Partition Key untuk tabel yang ingin Anda sinkronkan ke database tujuan.
CatatanSecara default, hanya informasi tentang tabel yang belum didefinisikan yang ditampilkan. Anda dapat mengatur Definition Status ke All lalu melakukan modifikasi.
Primary Key Column dan Sort Key dapat berupa kunci komposit. Hal ini memungkinkan Anda memilih beberapa bidang dari daftar drop-down yang sesuai untuk Primary Key Column atau Sort Key. Anda harus memilih satu atau beberapa kolom dari Primary Key Column untuk digunakan sebagai Partition Key. Anda hanya dapat memilih satu bidang untuk Distribution Key. Untuk informasi selengkapnya tentang kolom kunci primer, kunci pengurutan, dan kunci partisi, lihat CREATE TABLE.
Partition Key bersifat opsional. Namun, jika Anda mengaturnya, Anda harus memilih bidang yang tidak kosong. Jika tidak, tugas sinkronisasi akan gagal.
Simpan tugas.
Setelah mengonfigurasi bidang database dan tabel, klik Next: Save Task Settings and Precheck.
CatatanSetelah operasi ini, tugas akan disimpan terlepas dari apakah pemeriksaan awal berhasil atau tidak.
Lakukan pemeriksaan awal dan mulai tugas.
Saat Success Rate mencapai 100%, klik Start untuk memulai tugas zero-ETL.
Di halaman zero-ETL, Anda dapat melihat ID/Name, Source/Destination, dan Status tugas zero-ETL target.
Jika pemeriksaan awal gagal, sesuaikan database sumber dan tujuan berdasarkan informasi kegagalan tersebut. Di halaman zero-ETL, temukan tugas tersebut, ubah, lalu jalankan pemeriksaan awal lagi. Setelah pemeriksaan awal berhasil, mulai tugas tersebut.
Pantau tugas Zero-ETL
Anda dapat menggunakan salah satu metode berikut untuk memantau tugas zero-ETL. Kami merekomendasikan agar Anda mengonfigurasi peringatan atau berlangganan event untuk segera mendapatkan informasi tugas. Jika tugas mengalami anomali, Anda dapat menggabungkan metode ini dengan pemantauan aktif untuk memecahkan masalah tugas tersebut.
Metode pemantauan | Keuntungan | Kerugian | Operasi |
Pemantauan aktif | Anda dapat melihat semua aspek status tugas, seperti performa replikasi, detail sinkronisasi, dan log tugas. | Anda tidak menerima notifikasi otomatis untuk menangani masalah saat tugas zero-ETL mengalami anomali. | |
Peringatan dan pemantauan | Berdasarkan aturan peringatan, sistem pemantauan secara otomatis mengirimkan pemberitahuan peringatan. Hal ini membantu Anda segera menerima data pemantauan anomali dan menanganinya dengan cepat. | Anda hanya dapat memantau latensi sinkronisasi (dalam milidetik) tugas zero-ETL. | Konfigurasikan peringatan latensi sinkronisasi untuk tugas zero-ETL di konsol CloudMonitor |
Berlangganan event | Saat event sistem tugas zero-ETL memenuhi kondisi peringatan, CloudMonitor secara otomatis mengirimkan pemberitahuan peringatan. Hal ini memungkinkan Anda segera mengetahui status anomali dan pemulihan tugas serta mengambil tindakan yang sesuai. | Anda hanya dapat memantau kegagalan dan pemulihan tugas zero-ETL. | Berlangganan event terkait tugas Zero-ETL di konsol Cloud Monitor |
Pantau tugas di konsol ApsaraDB for ClickHouse
Masuk ke Konsol ApsaraDB for ClickHouse.
Di pojok kiri atas halaman, pilih wilayah kluster target.
Pada halaman Cluster List, klik tab List of Community Edition Instances lalu klik ID kluster yang ingin Anda kelola.
Di panel navigasi sebelah kiri, klik Zero-ETL (Seamless Integration).
Di halaman Zero-ETL, klik Task Details di kolom Actions tugas target.
Di halaman detail tugas, Anda dapat melihat dan memantau semua informasi tentang tugas tersebut.

Pantau peringatan latensi sinkronisasi di CloudMonitor
Anda dapat menggunakan CloudMonitor untuk membuat aturan peringatan guna memantau latensi zero-ETL. Saat metrik yang dipantau memenuhi kondisi peringatan, sistem pemantauan secara otomatis mengirimkan pemberitahuan peringatan. Hal ini membantu Anda segera menerima data pemantauan anomali dan menanganinya dengan cepat.
Langkah 1: Buat peringatan latensi sinkronisasi
Untuk informasi selengkapnya tentang cara membuat peringatan latensi untuk tugas zero-ETL, lihat Buat aturan peringatan. Saat membuat peringatan, pastikan Anda menentukan parameter berikut dengan benar.
Parameter | Deskripsi |
Product | Atur ke Clickhouse - ZeroETL Latency. |
Monitoring Metrics | Atur ke Synchronization Latency. |
Langkah 2: Lihat latensi kluster
Masuk ke konsol CloudMonitor.
Di daftar ClickHouse - ZeroETL Latency, klik Monitoring Charts di kolom Actions kluster target untuk melihat latensi sinkronisasi kluster tersebut.
Berlangganan event terkait tugas Zero-ETL di CloudMonitor
Untuk memantau pemulihan dan kegagalan tugas zero-ETL serta menerima notifikasi tepat waktu, berlanggananlah event terkait.
Untuk informasi selengkapnya tentang cara berlangganan event zero-ETL, lihat Kelola langganan event. Saat membuat kebijakan langganan event, pastikan Anda menentukan parameter berikut dengan benar.
Event yang akan dilanggani | Parameter | Deskripsi |
Kegagalan tugas zero-ETL | Subscription Type | Atur ke System Event. |
Product | Atur ke ApsaraDB Clickhouse. | |
Event Type | Atur ke Abnormal. | |
Event Name | Selalu pilih ZeroETL task abnormal. | |
Pemulihan tugas zero-ETL | Subscription Type | Atur ke System Event. |
Product | Atur ke ApsaraDB Clickhouse. | |
Event Type | Atur ke Restore. | |
Event Name | Atur ke ZeroETLTaskRestore. |
FAQ
T: Mengapa ukuran data di database tujuan lebih besar daripada ukuran data di database sumber setelah Anda menggunakan fitur zero-ETL untuk menyinkronkan data ke ApsaraDB for ClickHouse?
Penyebab: Saat Anda menjalankan operasi `UPDATE` atau `DELETE` pada database sumber, ClickHouse menulis catatan baru ke database tujuan. Operasi ini ditandai menggunakan bidang `_sign`, `_is_deleted`, dan `_version`. Oleh karena itu, volume data di database tujuan lebih besar daripada di database sumber.
Solusi: Saat melakukan kueri, gunakan kondisi _sign atau is_deleted untuk memfilter data yang dihapus (tergantung versi), dan tambahkan final setelah nama tabel untuk menghapus duplikat. Untuk informasi selengkapnya, lihat Informasi bidang.
T: Setelah Anda menggunakan zero-ETL untuk menyinkronkan data ke ApsaraDB for ClickHouse, mengapa tabel dengan nama yang mengandung _local muncul di database tujuan?
Jika database tujuan adalah kluster Edisi Kompatibel Komunitas dari ApsaraDB for ClickHouse, tugas zero-ETL membuat tabel lokal dan tabel terdistribusi di database tujuan.
Nama tabel terdistribusi sama dengan nama tabel sumber.
Nama tabel lokal adalah
<nama tabel terdistribusi>+_local.