ApsaraDB for ClickHouse menyediakan fitur integrasi data zero-ETL untuk menyinkronkan data dari RDS MySQL ke ApsaraDB for ClickHouse tanpa perlu membangun atau memelihara pipa sinkronisasi data. Fitur ini tidak dikenai biaya serta mengurangi biaya transfer data dan operasional serta pemeliharaan (O&M).
Ikhtisar
Bisnis sering kali mengelola data operasional yang tersebar di berbagai sistem.
ETL (Extract, Transform, Load) mengkonsolidasikan data dari sistem bisnis hulu ke dalam gudang data untuk analisis.
Alur kerja ETL tradisional menghadirkan tantangan berikut:
-
Biaya sumber daya tinggi: Berbagai sumber data sering kali memerlukan alat ETL yang berbeda, dan pembuatan pipa tersebut menimbulkan biaya tambahan.
-
Kompleksitas sistem tinggi: Pemeliharaan alat ETL meningkatkan kompleksitas operasional dan mengalihkan fokus dari pengembangan aplikasi.
-
Latensi data: Pembaruan batch berkala yang umum dalam ETL dapat menunda analisis dalam skenario near-real-time.
Untuk mengatasi masalah ini, Alibaba Cloud menyediakan fitur zero-ETL yang secara otomatis membangun pipa data antara sistem pemrosesan transaksi online (OLTP) dan gudang data pemrosesan analitik online (OLAP). Fitur ini mengekstraksi, mentransformasi, dan memuat data secara otomatis, menyediakan solusi terpadu yang mengintegrasikan pemrosesan transaksi dengan analitik data sehingga Anda dapat fokus pada analisis.
Manfaat
-
Mudah digunakan: Pilih sumber data dan instans tujuan, lalu sistem secara otomatis membuat pipa data real-time. Tidak perlu membangun atau memelihara pipa ETL yang kompleks, sehingga Anda dapat 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: Sinkronkan data dari beberapa instans ke satu instans ApsaraDB for ClickHouse secara real-time untuk membangun tampilan analitik yang komprehensif.
CatatanJika Anda menyinkronkan data dari beberapa instans ke satu instans ApsaraDB for ClickHouse, objek sinkronisasi dalam tugas yang berbeda tidak boleh tumpang tindih.
Pipa yang didukung
ApsaraDB RDS for MySQL ke ApsaraDB for ClickHouse
Penagihan
Pipa sinkronisasi zero-ETL tidak dikenai biaya.
Prasyarat
-
Kluster ApsaraDB for ClickHouse dan instans RDS for MySQL berada di wilayah yang sama.
-
Buat akun database untuk instans sumber ApsaraDB RDS for MySQL dan database 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 pada ApsaraDB 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 tersebut, waktu yang disinkronkan ke ApsaraDB for ClickHouse akan salah. Untuk informasi tentang batasan rentang, lihat Informasi waktu. |
Catatan penggunaan
-
Catatan saat membuat pipa zero-ETL
Jika jumlah tautan zero-ETL untuk kluster ApsaraDB for ClickHouse mencapai batas, Anda tidak dapat membuat tautan baru. Anda dapat menggunakan DTS untuk membuat tautan sinkronisasi, atau hapus tautan zero-ETL yang tidak digunakan. Batasannya adalah sebagai berikut:
-
Jumlah maksimum tautan dalam kluster Edisi Perusahaan dihitung menggunakan rumus
[Batas bawah CCU kluster / 8]dan hasilnya dibulatkan ke atas. Misalnya, jika kluster memiliki batas bawah CCU sebesar 22 dan batas atas CCU sebesar 36, perhitungan menggunakan batas bawah 22. Hasilnya adalah22 / 8 = 2,75, yang dibulatkan ke atas menjadi 3. Artinya, Anda dapat membuat maksimal 3 tautan zero-ETL. -
Jumlah maksimum tautan untuk kluster Edisi Komunitas:
[Jumlah total core kluster / 8]. Hasilnya dibulatkan ke atas. Misalnya, untuk kluster dengan dua node 8-core 32 GB, jumlah total core CPU adalah8*2=16. Jumlah maksimum tautan dihitung sebagai16/8=2. Artinya, Anda dapat membuat maksimal 2 tautan zero-ETL.
-
-
Catatan tentang tugas sinkronisasi
Jika pernyataan DDL dari instans RDS MySQL sumber tidak mengikuti sintaks standar MySQL, tugas sinkronisasi mungkin gagal atau data bisa hilang.
-
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 database sumber dan tujuan, yang dapat meningkatkan beban database.
-
Selama fase sinkronisasi skema, fitur zero-ETL menambahkan field
_sign,_is_deleted, dan_versionke tabel tujuan. -
Jika tujuan adalah kluster ApsaraDB for ClickHouse Edisi Kompatibel Komunitas, integrasi tanpa hambatan membuat tabel lokal dan tabel terdistribusi untuk tujuan.
-
Nama tabel terdistribusi sama dengan nama tabel sumber.
-
Nama tabel lokal adalah
<distributed_table_name>+_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 yang diperlukan kepada Pengguna RAM.
-
Buat peran terkait layanan AliyunServiceRoleForClickHouseZeroETL.
CatatanSistem secara otomatis membuat peran terkait layanan AliyunServiceRoleForClickHouseZeroETL. Jika kotak dialog meminta Anda membuat peran ini secara manual selama konfigurasi, Anda dapat mengabaikannya.
-
Berikan izin kepada Pengguna RAM.
Pengguna RAM memerlukan tiga izin berikut untuk membuat pipa zero-ETL. Untuk informasi tentang cara memberikan izin kepada Pengguna RAM, lihat Kelola izin Pengguna RAM.
-
Izin untuk instans ApsaraDB RDS for MySQL sumber: AliyunRDSFullAccess
-
Izin untuk kluster ApsaraDB for ClickHouse tujuan: AliyunClickHouseFullAccess
-
Izin untuk DTS: Kode berikut menyediakan skrip kebijakan kustom untuk DTS. Untuk informasi 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
-
Login ke Konsol ApsaraDB for ClickHouse. Di pojok kiri atas, pilih wilayah tempat kluster tujuan Anda berada.
-
Di halaman Clusters, pilih Clusters of Community-compatible Edition, lalu klik ID kluster target.
-
Di bilah navigasi kiri, klik Zero-ETL.
Langkah 2: Buat dan mulai tugas zero-ETL
Klik Create Zero-ETL Task untuk membuka halaman Create Zero-ETL Task.
Masukkan Task Name dan lengkapi konfigurasi berikut.
-
Konfigurasi database sumber dan tujuan.
Konfigurasikan database sumber dan tujuan dengan parameter berikut, lalu klik Test Connectivity and Proceed.
Database sumber
Parameter
Deskripsi
Database Type
Hanya ApsaraDB RDS for MySQL yang didukung.
Access Method
Hanya Alibaba Cloud instance yang didukung.
Instance Region
Pilih wilayah instans sumber.
RDS Instance ID
ID instans ApsaraDB RDS for MySQL.
Database Account
Akun database instans ApsaraDB RDS for MySQL.
Database Account
Password untuk akun database instans ApsaraDB RDS for MySQL.
Encryption
Pilih Non-encrypted atau SSL-encrypted sesuai kebutuhan Anda. Jika Anda memilih SSL-encrypted, Anda harus terlebih dahulu mengaktifkan enkripsi SSL untuk instans RDS MySQL. Untuk informasi selengkapnya, lihat Gunakan sertifikat cloud untuk mengaktifkan enkripsi SSL dengan cepat.
Database tujuan
Parameter
Deskripsi
Database Type
ClickHouse
Access Method
Hanya Alibaba Cloud instance yang didukung.
Instance Region
Wilayah kluster tujuan.
Cluster ID
ID kluster tujuan.
Cluster Type
Jenis kluster. Nilai yang valid: Community-Compatible Edition dan Enterprise Edition.
Database Account
Akun database kluster tujuan.
Database Password
Password untuk akun database kluster tujuan.
-
Konfigurasi zero-ETL.
Di kotak Source Objects, pilih objek yang akan disinkronkan, lalu klik
untuk memindahkannya ke kotak Selected Objects. Klik Next: Configure Database and Table Fields.
-
Konfigurasi field database dan tabel.
Di halaman Configure Zero-ETL, konfigurasikan Type, Primary Key Column, Sort Key, Distribution Key, dan Partition Key dari tabel yang akan disinkronkan di database tujuan.
Catatan-
Secara default, halaman menampilkan informasi tentang tabel yang belum didefinisikan. Anda dapat melakukan modifikasi setelah mengatur Definition Status ke All.
-
Primary Key Column dan Sort Key dapat berupa kunci komposit. Artinya, Anda dapat memilih beberapa field 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 field untuk Distribution Key. Untuk informasi selengkapnya tentang kolom kunci primer, kunci pengurutan, dan kunci partisi, lihat CREATE TABLE.
-
Partition Key bersifat opsional, tetapi tidak boleh berupa field nullable. Jika tidak, tugas sinkronisasi akan gagal.
-
-
Simpan tugas.
Setelah Anda mengonfigurasi field tabel database, klik Next: Save Task Settings and Precheck.
CatatanSetelah operasi ini, tugas disimpan, terlepas dari apakah pemeriksaan awal berhasil atau tidak.
-
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. Lalu, temukan tugas di halaman Zero-ETL, ubah, dan jalankan pemeriksaan awal lagi. Setelah pemeriksaan awal berhasil, Anda dapat memulai tugas.
Pantau tugas zero-ETL
Anda dapat memantau tugas zero-ETL dengan metode berikut. Konfigurasikan peringatan atau langganan event untuk menerima pembaruan tepat waktu tentang status tugas. Jika tugas menjadi abnormal, gunakan pemantauan aktif untuk mengatasi masalah tersebut.
|
Metode pemantauan |
Manfaat |
Batasan |
Tindakan |
|
Pemantauan aktif |
Memberikan gambaran komprehensif tentang status tugas, termasuk performa sinkronisasi, detail, dan log. |
Tidak memberi notifikasi aktif ketika tugas zero-ETL menjadi abnormal. |
|
|
Pemantauan peringatan |
CloudMonitor secara otomatis mengirimkan pemberitahuan peringatan berdasarkan aturan peringatan, membantu Anda segera mengidentifikasi dan menangani data pemantauan abnormal. |
Hanya memantau latensi sinkronisasi (dalam milidetik) tugas zero-ETL. |
Pantau latensi sinkronisasi menggunakan Peringatan CloudMonitor |
|
Langganan event |
Ketika event sistem untuk tugas zero-ETL memenuhi kondisi peringatan, CloudMonitor secara otomatis mengirimkan pemberitahuan peringatan, sehingga Anda tetap mengetahui kegagalan dan pemulihan tugas. |
Hanya memantau kegagalan dan pemulihan tugas zero-ETL. |
Pantau di konsol
-
Login ke Konsol ApsaraDB for ClickHouse. Di pojok kiri atas, pilih wilayah tempat kluster tujuan Anda berada.
-
Di halaman Clusters, pilih Clusters of Community-compatible Edition, lalu klik ID kluster target.
-
Di bilah navigasi kiri, klik Zero-ETL.
-
Klik Task Details di kolom Actions tugas target.
Di halaman detail tugas, Anda dapat melihat informasi komprehensif dan memantau tugas.

Peringatan latensi CloudMonitor
Buat aturan peringatan di CloudMonitor untuk memantau latensi zero-ETL. Ketika metrik memenuhi kondisi peringatan, CloudMonitor secara otomatis mengirimkan pemberitahuan peringatan.
Langkah 1: Buat peringatan latensi zero-ETL
Untuk informasi tentang cara membuat peringatan latensi zero-ETL, lihat Gunakan konsol CloudMonitor. Saat membuat peringatan, pastikan Anda mengatur parameter berikut.
|
Parameter |
Deskripsi |
|
Product |
Pilih Clickhouse - ZeroETL Latency. |
|
Metric |
Pilih Synchronization Latency. |
Langkah 2: Lihat latensi kluster
-
Login ke CloudMonitor.
-
Di daftar Clickhouse - ZeroETL Latency, klik Monitoring Charts di kolom Actions kluster target untuk melihat latensi sinkronisasi kluster.
Langganan event CloudMonitor
Untuk memantau pemulihan dan kegagalan tugas zero-ETL serta menerima notifikasi tepat waktu, berlanggananlah event terkait.
Untuk informasi tentang cara berlangganan event Zero-ETL, lihat Kelola langganan event. Saat membuat kebijakan langganan, pastikan Anda mengatur parameter berikut.
|
Event |
Parameter |
Deskripsi |
|
Kegagalan tugas zero-ETL |
Subscription type |
Pilih System Event. |
|
Product |
Pilih ApsaraDB for ClickHouse. |
|
|
Event type |
Pilih Abnormal. |
|
|
Event name |
Pilih ZeroETL task abnormal. |
|
|
Pemulihan tugas zero-ETL |
Subscription type |
Pilih System Event. |
|
Product |
Pilih ApsaraDB for ClickHouse. |
|
|
Event type |
Pilih Restore. |
|
|
Event name |
Pilih ZeroETLTaskRestore. |
FAQ
T: Setelah menggunakan Zero-ETL untuk menyinkronkan data ke ApsaraDB for ClickHouse, mengapa volume data di database tujuan lebih besar daripada di database sumber?
Penyebab: Saat Anda melakukan operasi UPDATE atau DELETE pada sumber, ApsaraDB for ClickHouse menulis baris baru dan menggunakan field _sign, _is_deleted, dan _version untuk menandai operasi tersebut. Akibatnya, database tujuan memiliki lebih banyak baris daripada database sumber.
Solusi: Saat melakukan kueri, gunakan kondisi _sign atau _is_deleted untuk memfilter data yang dihapus berdasarkan versi. Selain itu, tambahkan FINAL setelah nama tabel untuk menghapus duplikat catatan. Untuk informasi selengkapnya tentang pengenal field, lihat Informasi field.
T: Setelah menggunakan Zero-ETL untuk menyinkronkan data ke ApsaraDB for ClickHouse, mengapa muncul tabel local di database tujuan?
Jika tujuan adalah kluster ApsaraDB for ClickHouse Edisi Kompatibel Komunitas, integrasi tanpa hambatan membuat tabel lokal dan tabel terdistribusi untuk tujuan.
-
Nama tabel terdistribusi sama dengan nama tabel sumber.
-
Nama tabel lokal adalah
<distributed_table_name>+_local.