全部产品
Search
文档中心

ApsaraDB for ClickHouse:Gunakan zero-ETL untuk menyinkronkan data dari instans RDS for MySQL ke kluster ApsaraDB for ClickHouse

更新时间:Dec 05, 2025

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.

    Catatan

    Jika 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

Batasan

Jenis

Deskripsi

Batasan RDS for MySQL

  • Tabel tanpa kunci primer tidak dapat disinkronkan.

  • Operasi RENAME TABLE tidak didukung.

  • Jika Anda menyinkronkan data pada tingkat tabel dan perlu mengedit objek, seperti memetakan nama tabel atau kolom, satu tugas sinkronisasi data mendukung maksimal 1.000 tabel. Jika melebihi batas ini, kesalahan akan dilaporkan setelah Anda mengirimkan tugas. Dalam kasus ini, pisahkan tabel menjadi beberapa tugas atau konfigurasikan tugas untuk menyinkronkan seluruh database.

  • Log biner:

    • Binary logging diaktifkan secara default untuk instans RDS for MySQL. Anda harus mengatur parameter binlog_row_image ke full. Jika tidak, kesalahan pemeriksaan awal akan dilaporkan dan tugas sinkronisasi data tidak dapat dimulai. Untuk informasi selengkapnya tentang cara mengatur parameter instans, lihat Setel parameter instans.

      Penting
      • Jika instans sumber adalah database MySQL yang dikelola sendiri, Anda harus mengaktifkan binary logging dan mengatur parameter binlog_format ke row serta parameter binlog_row_image ke full.

      • Jika database MySQL yang dikelola sendiri merupakan kluster primary/primary di mana kedua database saling menjadi primer dan sekunder satu sama lain, Anda harus mengaktifkan parameter log_slave_updates. Hal ini memastikan bahwa DTS dapat memperoleh semua log biner. Untuk informasi selengkapnya, lihat Buat akun database untuk database MySQL yang dikelola sendiri dan konfigurasikan binary logging.

    • Pertahankan log biner instans RDS for MySQL minimal selama 3 hari. Kami merekomendasikan periode retensi 7 hari. Untuk database MySQL yang dikelola sendiri, pertahankan log biner minimal selama 7 hari. Jika periode retensi lebih pendek, tugas DTS mungkin gagal karena DTS tidak dapat memperoleh log biner. Dalam kasus ekstrem, ketidaksesuaian data atau kehilangan data dapat terjadi. Masalah yang disebabkan oleh periode retensi log biner yang lebih pendek daripada periode yang disyaratkan tidak dicakup oleh Perjanjian Tingkat Layanan (SLA) DTS.

      Catatan

      Untuk informasi selengkapnya tentang cara mengatur Retention Period log biner untuk instans RDS for MySQL, lihat Hapus log lokal secara otomatis.

  • Selama sinkronisasi skema awal dan sinkronisasi data penuh awal, jangan melakukan operasi Data Definition Language (DDL) yang mengubah skema database atau tabel. Jika dilakukan, tugas sinkronisasi data akan gagal.

    Catatan

    Selama sinkronisasi data penuh awal, DTS melakukan kueri ke database sumber. Hal ini membuat kunci metadata yang dapat memblokir operasi DDL pada database sumber.

  • Selama waktu proses instans sinkronisasi, perubahan data dari operasi yang tidak direkam dalam log biner, seperti data yang dipulihkan dari backup fisik atau data yang dihasilkan oleh operasi kaskade, tidak disinkronkan ke database tujuan.

    Catatan

    Jika hal ini terjadi, Anda dapat menghapus database atau tabel yang berisi data tersebut dari objek sinkronisasi lalu menambahkannya kembali. Tindakan ini diperbolehkan jika bisnis Anda mengizinkannya. Untuk informasi selengkapnya, lihat Ubah objek sinkronisasi.

  • Jika database sumber adalah database MySQL versi 8.0.23 atau yang lebih baru dan data yang akan disinkronkan berisi kolom tak terlihat, kehilangan data dapat terjadi karena data dalam kolom tersebut tidak dapat diperoleh.

    Catatan
    • Anda dapat menjalankan perintah ALTER TABLE <table_name> ALTER COLUMN <column_name> SET VISIBLE; untuk membuat kolom tak terlihat menjadi terlihat. Untuk informasi selengkapnya, lihat Invisible Columns.

    • Tabel tanpa kunci primer secara otomatis menghasilkan kunci primer tak terlihat. Anda juga harus membuat kunci primer tak terlihat ini menjadi terlihat. Untuk informasi selengkapnya, lihat Generated Invisible Primary Keys.

  • Jika fitur always-encrypted (EncDB) diaktifkan untuk instans RDS for MySQL, sinkronisasi data penuh tidak didukung.

    Catatan

    Untuk instans RDS for MySQL dengan Enkripsi Data Transparan (TDE) yang diaktifkan, sinkronisasi skema, sinkronisasi data penuh, dan sinkronisasi data inkremental didukung.

  • Instans RDS for MySQL yang tidak mencatat log transaksi, seperti instans RDS for MySQL 5.6 read-only, tidak dapat digunakan sebagai database sumber.

  • Tugas zero-ETL menjalankan pernyataan CREATE DATABASE IF NOT EXISTS `test` di database sumber secara terjadwal untuk memajukan offset binary logging.

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 adalah 22 / 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 adalah 8 * 2 = 16. Hasil perhitungannya adalah 16 / 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).

  1. Buat peran terkait layanan AliyunServiceRoleForClickHouseZeroETL.

    Catatan

    Saat 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.

  2. 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

  1. Masuk ke Konsol ApsaraDB for ClickHouse.

  2. Di pojok kiri atas halaman, pilih wilayah kluster target.

  3. Pada halaman Cluster List, pilih List of Community Edition Instances, lalu klik ID kluster target.

  4. 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.

  1. 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.

  2. Konfigurasikan tugas zero-ETL.

    Pada bagian Source Objects, pilih objek yang ingin Anda sinkronkan, klik ikon image untuk memindahkan objek ke bagian Selected Objects, lalu klik Next: Configure Database and Table Fields.

    image

  3. 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.

    Catatan
    • Secara 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.

  4. Simpan tugas.

    Setelah mengonfigurasi bidang database dan tabel, klik Next: Save Task Settings and Precheck.

    Catatan

    Setelah operasi ini, tugas akan disimpan terlepas dari apakah pemeriksaan awal berhasil atau tidak.

  5. 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.

Pantau tugas zero-ETL di konsol ClickHouse

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

  1. Masuk ke Konsol ApsaraDB for ClickHouse.

  2. Di pojok kiri atas halaman, pilih wilayah kluster target.

  3. Pada halaman Cluster List, klik tab List of Community Edition Instances lalu klik ID kluster yang ingin Anda kelola.

  4. Di panel navigasi sebelah kiri, klik Zero-ETL (Seamless Integration).

  5. 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.image

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

  1. Masuk ke konsol CloudMonitor.

  2. 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.