All Products
Search
Document Center

E-MapReduce:FAQ

Last Updated:Mar 27, 2026

Dokumen ini menjawab pertanyaan yang sering diajukan mengenai ClickHouse di E-MapReduce (EMR).

Bagaimana cara membuat pengguna ClickHouse?

Buat pengguna ClickHouse melalui Konsol EMR atau CLI clickhouse-client.

Konsol EMR

  1. Di Konsol EMR, buka halaman layanan ClickHouse dan klik tab Configure.

  2. Klik tab server-users, lalu klik Add Configuration Item.

  3. Tambahkan item konfigurasi dengan salah satu kunci berikut dan atur nilainya ke password. Ganti <YourUserName> dengan nama pengguna yang ingin Anda buat.

    Key Metode autentikasi
    users.<YourUserName>.password Plaintext password
    users.<YourUserName>.password_sha256_hex SHA-256 hash
    users.<YourUserName>.password_double_sha1_hex Double SHA-1 hash
  4. Simpan konfigurasi dan restart layanan ClickHouse.

Untuk informasi lebih lanjut, lihat Manage parameters for services dan Restart a service.

CLI clickhouse-client

  1. Aktifkan manajemen akses untuk akun pengguna default. Di Konsol EMR, buka Configure > server-users > Add Configuration Item dan tambahkan users.default.access_management dengan nilai 1. Simpan konfigurasi dan restart layanan ClickHouse.

  2. Login ke kluster EMR ClickHouse melalui SSH. Untuk informasi lebih lanjut, lihat Log on to a cluster.

  3. Jalankan client ClickHouse:

    clickhouse-client -h core-1-1 -m

    Ganti core-1-1 dengan nama node core tempat Anda login.

  4. Buat pengguna:

    CREATE USER IF NOT EXISTS user_test ON CLUSTER new_cluster_emr IDENTIFIED WITH plaintext_password BY '123456';

    Ganti user_test dengan nama pengguna Anda dan 123456 dengan password Anda. Sintaks lengkap CREATE USER adalah:

    CREATE USER [IF NOT EXISTS | OR REPLACE] name1 [ON CLUSTER cluster_name1]
            [, name2 [ON CLUSTER cluster_name2] ...]
        [NOT IDENTIFIED | IDENTIFIED {[WITH {no_password | plaintext_password | sha256_password | sha256_hash | double_sha1_password | double_sha1_hash}] BY {'password' | 'hash'}} | {WITH ldap SERVER 'server_name'} | {WITH kerberos [REALM 'realm']}]
        [HOST {LOCAL | NAME 'name' | REGEXP 'name_regexp' | IP 'address' | LIKE 'pattern'} [,...] | ANY | NONE]
        [DEFAULT ROLE role [,...]]
        [GRANTEES {user | role | ANY | NONE} [,...] [EXCEPT {user | role} [,...]]]
        [SETTINGS variable [= value] [MIN [=] min_value] [MAX [=] max_value] [READONLY | WRITABLE] | PROFILE 'profile_name'] [,...];
  5. Verifikasi bahwa pengguna telah dibuat:

    SHOW USERS;

    Output akan menampilkan semua pengguna yang ada, termasuk pengguna yang baru saja Anda buat.

Apa yang harus saya lakukan jika terjadi kehilangan data?

Gejala: Anda menulis A baris ke ClickHouse tetapi membaca kembali kurang dari A baris.

Penyebab: Data kemungkinan besar tidak hilang — ini merupakan masalah routing baca pada tabel terdistribusi. Secara default, tabel terdistribusi menggunakan satu koneksi per shard. Jika sebuah shard memiliki beberapa replica, hanya satu node per shard yang dikueri, sehingga data pada node lainnya tidak dikembalikan.

Data didistribusikan ke setiap node terlepas dari apakah data ditulis menggunakan tabel terdistribusi atau langsung ke tabel lokal. Contohnya:

CREATE TABLE db.table_local (...) Engine = MergeTree()

CREATE TABLE db.table_distributed (...) Engine = Distributed(cluster_emr, db, table_local, rand());

Solusi:

Solusi Operasi Catatan
(Direkomendasikan) Buat ulang tabel lokal sebagai tabel replikasi Hapus db.table_local dan buat ulang menggunakan mesin ReplicatedMergeTree. Memastikan semua replica tetap tersinkronisasi; node mana pun dalam sebuah shard dapat menyajikan salinan lengkap data.
(Tidak direkomendasikan) Tingkatkan parallel replicas Di Konsol EMR, buka Configure > server-users > Add Configuration Item dan tambahkan profiles.<your_profile_name>.max_parallel_replicas dengan nilai lebih besar dari atau sama dengan jumlah replica per shard. Pastikan users.<your_clickhouse-client_name>.profile sesuai dengan <your_profile_name>. Meningkatkan paralelisme baca tetapi tidak memperbaiki masalah distribusi data yang mendasarinya. Untuk informasi lebih lanjut, lihat Configure user permissions.

Apa yang harus saya lakukan jika muncul error "Memory limit (for total) exceeded"?

Penyebab: Penggunaan memori total server telah melebihi batas yang ditetapkan oleh max_server_memory_usage. Batas tersebut dihitung sebagai:

max_server_memory_usage = Physical server memory x max_server_memory_usage_to_ram_ratio

Nilai default max_server_memory_usage_to_ram_ratio adalah 0.9.

Solusi: Di Konsol EMR, buka Configure > server-config > Add Configuration Item dan tambahkan item konfigurasi max_server_memory_usage dengan nilai yang lebih tinggi. Untuk mengubah rasionya sendiri, tambahkan item konfigurasi max_server_memory_usage_to_ram_ratio.

Apa yang harus saya lakukan jika muncul error "Memory limit (for query) exceeded"?

Penyebab: Satu kueri melebihi batas memori per kueri (max_memory_usage).

Solusi: Konfigurasikan max_memory_usage pada cakupan yang sesuai dengan situasi Anda:

Cakupan Cara mengonfigurasi
Global (semua kueri) Di Konsol EMR, buka Configure > server-config > Add Configuration Item dan tambahkan profiles.<your_profile_name>.max_memory_usage. Pastikan users.<your_clickhouse-client_name>.profile sesuai dengan <your_profile_name>.
Client ClickHouse Di Konsol EMR, buka Configure > client-config > Add Configuration Item dan tambahkan max_memory_usage.
Sesi saat ini Jalankan SET max_memory_usage=<value>. Berlaku selama durasi sesi.
Satu kueri Tambahkan pengaturan ke SQL Anda: SELECT column FROM table SETTINGS max_memory_usage=<value>.

Untuk informasi lebih lanjut tentang item konfigurasi, lihat Configure user permissions.

Apa yang harus saya lakukan jika muncul error "Memory limit (for user) exceeded"?

Penyebab: Total memori yang digunakan oleh satu pengguna telah melebihi batas per pengguna (max_memory_usage_for_user).

Solusi: Konfigurasikan max_memory_usage_for_user pada cakupan yang sesuai dengan situasi Anda:

Cakupan Cara mengonfigurasi
Global (semua pengguna) Di Konsol EMR, buka Configure > server-users > Add Configuration Item dan tambahkan profiles.<your_profile_name>.max_memory_usage_for_user. Pastikan users.<your_clickhouse-client_name>.profile sesuai dengan <your_profile_name>.
Client ClickHouse Di Konsol EMR, buka Configure > client-config > Add Configuration Item dan tambahkan max_memory_usage_for_user.
Sesi saat ini Jalankan SET max_memory_usage_for_user=<value>. Berlaku selama durasi sesi.
Satu kueri Tambahkan pengaturan ke SQL Anda: SELECT column FROM table SETTINGS max_memory_usage_for_user=<value>.

Untuk informasi lebih lanjut tentang item konfigurasi, lihat Configure user permissions.

Bagaimana komponen ClickHouse didistribusikan dalam kluster OLAP?

Layanan ClickHouse mencakup tiga komponen: ClickHouseRuntime, ClickHouseServer, dan ClickHouseKeeper.

Distribusinya bergantung pada versi kluster EMR:

Komponen EMR V3.X EMR V5.X
ClickHouseRuntime Semua jenis node Semua jenis node
ClickHouseServer Hanya node core Hanya node core
ClickHouseKeeper Tidak diinstal Node core pertama, atau tiga node core pertama (tidak mendukung scale-out)

Di EMR V5.X, jumlah node yang menjalankan ClickHouseKeeper ditetapkan saat pembuatan kluster. Misalnya, jika Anda membuat kluster dengan dua node core, ClickHouseKeeper hanya berjalan di node core pertama. Menambahkan lebih banyak node core nanti tidak akan mengubah hal ini.

Mengapa kecepatan impor data berangsur-angsur menurun?

Ini adalah perilaku yang diharapkan untuk tabel berbasis MergeTree, termasuk ReplicatedMergeTree dan ReplacingMergeTree.

Saat data ditulis, ClickHouse mengurutkannya di memori dan menyimpannya ke disk sebagai bagian data. Thread latar belakang secara terus-menerus menggabungkan bagian-bagian kecil menjadi bagian yang lebih besar. Pada fase awal impor, hanya sedikit bagian yang perlu digabung, sehingga semua sumber daya dialokasikan untuk menerima dan menyimpan data — kecepatan impor berada pada puncaknya.

Saat lebih banyak data masuk dan jumlah bagian bertambah, thread penggabungan latar belakang bersaing dengan proses impor untuk CPU dan I/O. Kecepatan impor turun hingga mencapai titik keseimbangan antara data masuk dan penggabungan latar belakang.

Bagaimana cara melakukan upgrade layanan ClickHouse?

Versi ClickHouse di EMR terikat pada versi kluster EMR. Untuk melakukan upgrade ClickHouse, lakukan upgrade kluster EMR.

Mengapa saya perlu mendefinisikan kluster logis?

Kluster logis mendefinisikan hubungan antar node — seperti topologi sharding dan replikasi — dalam kluster fisik EMR ClickHouse. Kluster logis yang berbeda dapat melayani kasus penggunaan bisnis yang berbeda pada kluster fisik yang sama.

Secara default, EMR mengonfigurasi satu kluster logis yang mencakup semua node dalam kluster fisik. Untuk melihat kluster logis yang ada, jalankan:

SELECT * FROM system.clusters;

Apa itu shard dan replica di ClickHouse?

  • Shard: Sebuah shard terdiri dari satu atau beberapa node. Semua node dalam sebuah shard adalah replica satu sama lain dan menyimpan data yang sama untuk tabel yang menggunakan mesin Replicated\*MergeTree.

  • Replica: Sebuah node dapat menjadi replica dari satu atau beberapa node lainnya. Node yang direplikasi menyimpan data identik untuk tabel Replicated\*MergeTree.

Bagaimana cara menguji performa ClickHouse?

Gunakan Star Schema Benchmark (SSB) untuk pengujian throughput kueri OLAP. Untuk penyiapan dan penggunaan, lihat Star Schema Benchmark.

Untuk pengujian latensi kueri tunggal, gunakan clickhouse-benchmark. Untuk dataset dan skenario pengujian tambahan, lihat Tutorials and example datasets.

Apakah saya dapat mengubah jumlah shard dan replica setelah membuat kluster?

Ya, tetapi mengubah shard dan replica secara langsung pada kluster yang sudah berisi data dapat menyebabkan kesalahan data. Sebagai gantinya, tambahkan kluster logis baru dengan konfigurasi shard dan replica yang diinginkan, dan biarkan kluster logis asli tetap utuh.

Untuk menambahkan kluster logis, buka Configure > server-metrika di Konsol EMR, temukan parameter clickhouse_remote_servers, dan tambahkan konfigurasi kluster baru.

Pengaturan apa saja yang diperlukan saat menggunakan HDFS di EMR ClickHouse?

Untuk detail konfigurasi, lihat dokumentasi mesin tabel HDFS.

Apa perbedaan antara EMR ClickHouse dan ApsaraDB for ClickHouse?

Fitur EMR ClickHouse ApsaraDB for ClickHouse
Awalan ID kluster c- (misalnya, c-3c8697f91408****) cc- (misalnya, cc-bp16qwvp7hy8i****)
Model manajemen Semi-managed — Anda dapat login ke instans Elastic Compute Service (ECS) untuk O&M Fully managed — akses ke instans ECS tidak tersedia

Dapatkah ClickHouse mengkueri tabel Hive yang menggunakan DLF untuk penyimpanan metadata?

Tidak. ClickHouse hanya dapat mengkueri tabel Hive yang menggunakan MySQL atau ApsaraDB RDS untuk penyimpanan metadata. Tabel Hive yang didukung oleh Data Lake Formation (DLF) tidak didukung.

Jika Anda perlu bekerja dengan data Hive, pertimbangkan alternatif berikut:

  • Untuk mengimpor data Hive ke ClickHouse: Gunakan Apache Spark atau Apache SeaTunnel.

  • Untuk menganalisis data Hive secara langsung: Gunakan engine seperti StarRocks, Trino, atau Impala.