ApsaraDB for ClickHouse Community-Compatible Edition mendukung skalabilitas vertikal (scale up atau scale down) dan skalabilitas horizontal (scale out atau scale in). Skalabilitas vertikal mengubah sumber daya node, sedangkan skalabilitas horizontal mengubah jumlah node.
Pilih pendekatan penskalaan
Skalabilitas vertikal lebih cepat dan menyebabkan gangguan yang lebih sedikit. Jika kluster Anda kekurangan sumber daya CPU, memori, atau disk, lakukan scale up terlebih dahulu.
Approach | What changes | When to use | Impact | Duration |
Scale up | Node specs, storage capacity, storage type, atau ZooKeeper specs | Sumber daya CPU, memori, atau disk tidak mencukupi | Perubahan storage: tidak ada. Perubahan spesifikasi: kluster restart. | Storage: langsung. Spesifikasi: 10–15 menit. |
Scale down | Node specs atau ZooKeeper specs | Sumber daya berlebih | Sama seperti scale up | 10–15 menit |
Scale out | Menambahkan node | Diperlukan kapasitas komputasi tambahan; redistribusi data di seluruh node | Operasi DDL diblokir. Penggunaan CPU dan memori meningkat selama migrasi. | 30+ menit (tergantung volume data) |
Scale in | Menghapus node | Kurangi biaya dengan menjalankan lebih sedikit node | Sama seperti scale out | 30+ menit (tergantung volume data) |
Ruang penyimpanan tidak dapat dikurangi melalui skalabilitas vertikal. Untuk mengurangi kapasitas penyimpanan, lakukan scale in pada satu node (kluster multi-node) atau buat instans baru dan migrasikan data (kluster standalone).
Prasyarat
Kluster merupakan kluster Community-Compatible Edition.
Kluster berstatus Running.
Tidak ada pesanan perpanjangan yang belum dibayar. Untuk memeriksanya, masuk ke ApsaraDB for ClickHouse console. Di pojok kanan atas, pilih Expenses > Expenses and Costs. Pada panel navigasi kiri, klik Orders, lalu bayar atau batalkan pesanan yang belum diselesaikan.
Untuk kluster master-replica: pastikan aplikasi Anda memiliki mekanisme retry untuk gangguan koneksi sementara selama perubahan spesifikasi.
Untuk kluster standalone: kluster sepenuhnya tidak tersedia selama perubahan spesifikasi. Hentikan operasi write sebelum memulai.
Billing
Penskalaan mengubah penagihan kluster. Biaya aktual ditampilkan di Konsol selama operasi. Untuk detailnya, lihat Billing for configuration changes.
Scale up atau scale down (skalabilitas vertikal)
Skalabilitas vertikal mengubah spesifikasi node, kapasitas penyimpanan, tipe penyimpanan, atau spesifikasi ZooKeeper.
Constraints
Perubahan spesifikasi ZooKeeper hanya didukung untuk kluster yang dibuat setelah 1 Desember 2021. Untuk informasi harga, lihat Pricing for ZooKeeper specifications of the Community-Compatible Edition.
Upgrade kapasitas penyimpanan atau tipe penyimpanan tidak merestart kluster (berlaku hanya untuk kluster yang dibuat setelah 1 Desember 2021). Mengubah spesifikasi kluster atau spesifikasi ZooKeeper akan merestart kluster.
Server Specifications atau ZooKeeper Specifications tidak dapat diubah secara bersamaan dengan Upgrade Storage Capacity atau Storage Type.
Mengubah spesifikasi ZooKeeper selama jam sibuk dapat menyebabkan ketidakkonsistenan antara metadata tabel dan data aktual. Lakukan perubahan ini selama jam sepi atau saat operasi write dihentikan.
Impact by cluster type
Cluster type | Behavior during spec changes |
Master-replica | Terjadi gangguan koneksi sementara saat permintaan beralih antar replica. Jadwalkan perubahan selama jam sepi. |
Standalone | Kluster tidak tersedia selama proses upgrade. Jadwalkan perubahan selama jam sepi atau hentikan operasi write terlebih dahulu. |
Procedure
Login ke ApsaraDB for ClickHouse console.
Di pojok kiri atas, pilih wilayah tempat kluster Anda berada.
Pada halaman Clusters, klik tab Clusters of Community-compatible Edition.
Temukan kluster target. Di kolom Actions, klik Change.
Pada kotak dialog Change, pilih Scale Up atau Scale Down, lalu klik OK.
Pada halaman Upgrade/Downgrade, pilih konfigurasi yang diinginkan. Secara default, kluster memiliki layanan ZooKeeper dengan 4 core dan 8 GB memori. Untuk memeriksa bottleneck sumber daya, buka halaman Monitoring and Alerting dan lihat metrik ZooKeeper di panel Cluster Monitoring. Upgrade spesifikasi ZooKeeper jika nilai default tidak mencukupi.
Klik Buy Now dan selesaikan pembayaran.
Pada halaman The order is complete, klik Console.
Periksa status kluster di kolom Status pada daftar Clusters of Community-compatible Edition.
Perubahan Storage Capacity berlaku langsung. Status kluster tetap Running.
Perubahan Server Specifications atau ZooKeeper Specifications memerlukan waktu 10 hingga 15 menit. Status berubah dari Changing Specification menjadi Running saat operasi selesai.
Post-scaling behavior
Setelah mengubah spesifikasi kluster atau ZooKeeper, kluster akan restart. Durasi restart tergantung pada jumlah database, tabel, dan volume cold data. Operasi merge frekuensi tinggi mungkin berjalan selama periode tertentu setelah perubahan, meningkatkan penggunaan I/O dan berpotensi meningkatkan latency permintaan. Untuk informasi tentang perkiraan durasi merge, lihat Calculate the merge duration after migration.
Scale out atau scale in (skalabilitas horizontal)
Skalabilitas horizontal menambah atau menghapus node kluster. Proses ini melibatkan migrasi data dan memerlukan persiapan tambahan.
Scale-out methods
Method | Console label | Data migration | When to use |
Scale-out with data migration | Migration Expansion (default) | Migrasi dan redistribusi data yang ada ke seluruh node | Sebagian besar skenario. Menjamin distribusi data yang seimbang. |
Simple scale-out | Simple Expansion | Tidak ada redistribusi. Data baru hanya masuk ke node baru. | Data ditulis langsung ke tabel lokal atau ke tabel terdistribusi dengan kunci sharding |
Jangan gunakan simple scale-out untuk kluster dengan tabel ReplacingMergeTree, CollapsingMergeTree, atau VersionedCollapsingMergeTree. Mesin-mesin ini melakukan merge data pada node yang sama. Simple scale-out menyebarkan data ke berbagai node dan mencegah proses merge berjalan dengan benar.
Scale-in methods
Method | Behavior | Data loss |
Standard scale-in | Menghapus node secara acak. Data dimigrasi dan didistribusikan ulang. | Tidak |
Scale-in by specifying nodes | Menghapus node yang ditentukan. Hanya tersedia untuk kluster yang menggunakan local disk. | Ya — data pada node yang dihapus akan hilang. |
Migration scope
Selama scale-out dengan migrasi data atau standard scale-in, data berikut dimigrasikan ke konfigurasi kluster baru.
Didukung:
Database, dictionary, dan materialized view
Skema tabel untuk semua tabel kecuali tabel engine Kafka dan RabbitMQ
Data dari tabel keluarga engine MergeTree (migrasi inkremental)
Tidak didukung:
Tabel engine Kafka dan RabbitMQ beserta datanya
Data dari tabel non-MergeTree (seperti tabel eksternal dan tabel engine keluarga Log)
Selama scale-out atau scale-in, data dimigrasikan ke instans baru dan traffic dialihkan. Untuk mencegah data Kafka dan RabbitMQ terpisah, hapus tabel engine tersebut dari kluster sumber sebelum operasi. Buat ulang setelah operasi selesai.
Constraints
Operasi DDL dilarang selama seluruh proses scale-out atau scale-in.
Penggunaan CPU dan memori meningkat selama operasi. Estimasi overhead: kurang dari 5 core dan 20 GB memori per node.
Setelah penskalaan, operasi merge frekuensi tinggi berlanjut selama periode tertentu, meningkatkan penggunaan I/O dan berpotensi meningkatkan latency permintaan. Untuk informasi tentang perkiraan durasi merge, lihat Calculate the merge duration after migration.
Setelah scale out, alamat IP internal node kluster berubah. Jika aplikasi Anda terhubung ke alamat IP node tertentu, ambil kembali blok CIDR VPC. Untuk detailnya, lihat Obtain the VPC CIDR block of a cluster.
Step 1: Handle Kafka and RabbitMQ engine tables
Lewati langkah ini jika kluster Anda tidak memiliki tabel engine Kafka atau RabbitMQ.
Login ke kluster. Untuk petunjuk koneksi, lihat Connect to a ClickHouse cluster using DMS.
Cari tabel engine Kafka dan RabbitMQ:
SELECT * FROM `system`.`tables` WHERE engine IN ('RabbitMQ', 'Kafka');Backup pernyataan
CREATE TABLEuntuk setiap tabel:SHOW CREATE TABLE <table_name>;Hapus tabel engine Kafka dan RabbitMQ. > Important: Saat menghapus tabel Kafka, hapus juga materialized view yang mereferensinya. Jika tidak, operasi scale-out atau scale-in akan gagal.
Step 2: Back up data from non-MergeTree tables
Lewati langkah ini jika kluster Anda tidak memiliki tabel non-MergeTree yang datanya perlu dipertahankan.
Identifikasi tabel non-MergeTree yang datanya perlu dimigrasikan:
SELECT `database` AS database_name, `name` AS table_name, `engine` FROM `system`.`tables` WHERE (`engine` NOT LIKE '%MergeTree%') AND (`engine` != 'Distributed') AND (`engine` != 'MaterializedView') AND (`engine` NOT IN ('Kafka', 'RabbitMQ')) AND (`database` NOT IN ('system', 'INFORMATION_SCHEMA', 'information_schema')) AND (`database` NOT IN ( SELECT `name` FROM `system`.`databases` WHERE `engine` IN ('MySQL', 'MaterializedMySQL', 'MaterializeMySQL', 'Lazy', 'PostgreSQL', 'MaterializedPostgreSQL', 'SQLite') ))Backup data dari tabel yang diidentifikasi. Untuk petunjuknya, lihat Back up data to OSS.
Step 3: Scale out or scale in from the console
Login ke ApsaraDB for ClickHouse console.
Di pojok kiri atas, pilih wilayah tempat kluster Anda berada.
Pada halaman Clusters, pilih tab Clusters of Community-compatible Edition.
Temukan kluster target. Di kolom Actions, klik Change.
Pada kotak dialog Change, pilih Scale Out atau Scale In, lalu klik OK.
Pada jendela pemeriksaan, tinjau status pemeriksaan. Jendela Scale Out secara default memilih Migration Expansion. Untuk menggunakan Simple Expansion, klik Previous, pilih Simple Expansion di kotak dialog Scale-out, lalu klik Next. Penyebab umum kegagalan pemeriksaan:
Jika pemeriksaan lolos, klik Next.
Jika pemeriksaan gagal, perbaiki masalah yang dilaporkan dan klik Retry Check. Klik Next setelah pemeriksaan lolos.
Failure
Resolution
Missing unique distributed table
Tabel lokal tidak memiliki tabel terdistribusi yang sesuai. Buat satu.
Corresponding distributed table is not unique
Tabel lokal memiliki lebih dari satu tabel terdistribusi. Pertahankan hanya satu.
Kafka/RabbitMQ engine tables exist
Hapus tabel-tabel ini terlebih dahulu (lihat Langkah 1).
Non-replicated
*MergeTreetables in a master-replica instanceData tidak konsisten antar replica. Selesaikan ketidakkonsistenan tersebut.
Distributed and local table columns are inconsistent
Selaraskan definisi kolom.
Table is missing on some nodes
Buat tabel yang sesuai di semua shard. Untuk tabel dalam materialized view, ganti nama tabel dalam tersebut dan bangun ulang materialized view. Untuk detailnya, lihat The inner table of a materialized view is inconsistent across shards.
Pada halaman Upgrade/Downgrade, konfigurasikan jumlah Server Nodes dan jendela penangguhan write. Persyaratan jendela penangguhan write:
Atur waktu penangguhan write minimal 30 menit.
Operasi harus selesai dalam 5 hari. Tanggal akhir Stopping Data Writing untuk kluster sumber tidak boleh lebih dari tanggal saat ini ditambah 5 hari.
Atur jendela penangguhan write selama jam sepi untuk mengurangi dampak bisnis.
Klik Buy Now dan selesaikan pembayaran.
Pada halaman The order is complete, klik Console.
Periksa status kluster di kolom Status pada daftar Clusters of Community-compatible Edition. Operasi selesai saat status berubah dari Scaling menjadi Running. Operasi scale-out atau scale-in memerlukan waktu minimal 30 menit. Durasi tepatnya tergantung pada volume data.
Step 4: Recreate Kafka and RabbitMQ engine tables
Lewati langkah ini jika Anda tidak menghapus tabel engine Kafka atau RabbitMQ di Langkah 1.
Login ke kluster dan jalankan pernyataan CREATE TABLE yang telah Anda backup di Langkah 1. Untuk petunjuk koneksi, lihat Connect to a ClickHouse cluster using DMS.
Step 5: Restore data to non-MergeTree tables
Lewati langkah ini jika Anda tidak melakukan backup data tabel non-MergeTree di Langkah 2.
Login ke kluster dan impor data yang telah Anda backup di Langkah 2. Untuk petunjuknya, lihat Import data from OSS.
Post-scaling behavior
Merge operations: Operasi merge frekuensi tinggi berlanjut selama periode tertentu setelah operasi, meningkatkan penggunaan I/O dan berpotensi meningkatkan latency permintaan. Untuk informasi tentang perkiraan durasi merge, lihat Calculate the merge duration after migration.
IP addresses: Setelah scale out, alamat IP internal node kluster berubah. Perbarui konfigurasi aplikasi Anda jika terhubung ke IP node tertentu. Untuk detailnya, lihat Obtain the VPC CIDR block of a cluster.
Verify data: Setelah operasi selesai dan status kluster kembali ke Running, verifikasi bahwa data dan tabel Anda utuh.