All Products
Search
Document Center

E-MapReduce:FAQ

Last Updated:Jun 21, 2026

Topik ini menjawab pertanyaan yang sering diajukan tentang penggunaan StarRocks.

Persyaratan hardware

  • Konfigurasi mesin secara keseluruhan

    Kami merekomendasikan agar node BE memiliki minimal CPU 16 core dan memori 64 GB, serta node FE memiliki minimal CPU 8 core dan memori 16 GB.

    Di lingkungan produksi, node FE biasanya memiliki CPU 16 core, memori 32 GB atau 64 GB, serta SSD NVMe berkapasitas 200 GB hingga 500 GB.

  • Disk

    • Anda dapat menggunakan Hard Disk Drive (HDD) atau SSD.

    • Perkirakan kapasitas disk yang dibutuhkan dengan rasio kompresi 3:1 dan pemanfaatan disk maksimum 70% hingga 75%.

    • Jika Anda mengimpor data Hive dalam format Parquet atau ORC ke StarRocks, gunakan rasio kompresi 1:1 untuk estimasi.

      Misalnya, jika data Hive sumber berukuran 3 TB, ukuran data di StarRocks juga akan menjadi 3 TB setelah diimpor.

  • CPU

    • CPU harus mendukung set instruksi Advanced Vector Extensions 2 (AVX2). Anda dapat menjalankan perintah cat /proc/cpuinfo |grep avx2 untuk memverifikasi dukungan tersebut.

    • Mesin eksekusi vektorisasi bekerja optimal dengan set instruksi CPU yang kompatibel. Jika CPU mesin Anda tidak mendukung set instruksi yang diperlukan, kami merekomendasikan untuk melakukan upgrade hardware.

  • Jaringan

    Kami merekomendasikan penggunaan kartu antarmuka jaringan (NIC) dan switch Ethernet 10 Gigabit.

Persyaratan konfigurasi software

Untuk informasi lebih lanjut tentang konfigurasi software, lihat Konfigurasi parameter.

Konfigurasi replika

Di lingkungan produksi tipikal, dua atau tiga replika sudah cukup. Kami merekomendasikan mengatur jumlah replika menjadi tiga.

Mem-partisi tabel

Partisi yang tepat dapat secara efektif mengurangi jumlah data yang dipindai.

  • Umumnya, Anda memilih kunci partisi berdasarkan cara bisnis Anda mengelola data. Misalnya, Anda dapat menggunakan kolom waktu atau wilayah sebagai kunci partisi.

  • Jika Anda perlu membuat partisi secara otomatis, Anda dapat menggunakan partisi dinamis.

Menggunakan bucketing

  • Pilih kolom dengan kardinalitas tinggi sebagai kunci bucketing untuk mencegah kesenjangan data antar bucket.

    • Jika terdapat ID unik, kami merekomendasikan menggunakannya untuk bucketing.

    • Jika Anda mengalami kesenjangan data yang parah, Anda dapat menggunakan beberapa kolom sebagai kunci bucketing. Namun, hindari penggunaan terlalu banyak kolom.

  • Perkirakan ukuran tablet optimal dan jumlah total bucket berdasarkan volume data total Anda serta panduan berikut.

    • Untuk data mentah yang tidak dikompresi, seperti data dalam format CSV, ukuran tablet yang direkomendasikan berkisar antara 1 GB hingga 10 GB.

    • Untuk data dalam format Parquet, kami merekomendasikan ukuran tablet sekitar 1 GB.

  • Untuk memaksimalkan pemanfaatan resource pada jumlah mesin yang sedikit, hitung jumlah bucket menggunakan rumus berikut: Jumlah BE * Jumlah core CPU / 2.

Merancang sort key

Rancang sort key berdasarkan pola kueri Anda:

  • Untuk mempercepat kueri, gunakan kolom yang sering digunakan dalam kondisi filter dan klausa GROUP BY sebagai sort key.

  • Jika workload Anda melibatkan banyak pencarian titik (point lookups), letakkan kolom ID yang digunakan untuk pencarian sebagai kolom pertama sort key.

    Misalnya, jika Anda sering menjalankan kueri konkurensi tinggi seperti select sum(revenue) from lineorder where user_id='aaa100';, kami sangat merekomendasikan menjadikan user_id sebagai kolom pertama sort key.

  • Jika kueri Anda sebagian besar berupa agregasi dan pemindaian, letakkan kolom dengan kardinalitas rendah di awal sort key.

    Misalnya, untuk kueri seperti select region, nation, count(*) from lineorder_flat group by region, nation, lebih baik mengatur region sebagai kolom pertama dan nation sebagai kolom kedua.

Memilih tipe data

Gunakan tipe data yang paling tepat. Misalnya, gunakan tipe integer alih-alih string jika memungkinkan, dan pilih INT daripada BIGINT jika rentang data memungkinkan. Penggunaan tipe data yang tepat meningkatkan performa database.

Menyetel parameter Routine Load

Strategi penyetelan parameter

Jika Anda mengalami masalah performa dengan Routine Load, pertimbangkan untuk menyetel parameter berikut:

  • Siklus penjadwalan tugas

    Untuk mempercepat konsumsi data, perpendek siklus penjadwalan tugas dengan mengubah parameter max_batch_interval.

    Penting

    Siklus penjadwalan tugas minimum adalah 5 detik.

  • Paralelisme tugas

    Jika Anda memiliki banyak partisi dan node BE, Anda dapat meningkatkan nilai parameter berikut untuk mempercepat eksekusi tugas. Namun, peningkatan paralelisme dapat menyebabkan konsumsi CPU yang lebih tinggi.

    • max_routine_load_task_concurrent_num

    • desired_concurrent_number

    StarRocks membagi satu pekerjaan Routine Load menjadi beberapa sub-tugas berdasarkan jumlah partisi topik Kafka dan node BE yang tersedia. Sub-tugas ini kemudian didistribusikan ke BE untuk dieksekusi. Paralelisme tugas adalah jumlah sub-tugas yang dihasilkan dari satu pekerjaan.

    Paralelisme tugas aktual dihitung menggunakan rumus berikut.

    concurrent_num = Min( Min( partition_num, Min( desired_concurrent_num, alive_be_num ) ),Config.max_routine_load_task_concurrent_num )
  • Ukuran batch tugas

    • routine_load_task_consume_second: Percepat konsumsi data dengan memperpanjang durasi pembacaan tunggal.

    • max_routine_load_batch_size: Percepat konsumsi data dengan meningkatkan jumlah data yang dibaca dalam satu batch.

    Anda dapat memeriksa log berikut untuk menentukan apakah parameter ukuran batch saat ini terlalu rendah. Biasanya, nilai 0 atau lebih pada field left_bytes dalam log ini menunjukkan bahwa jumlah data yang dibaca dalam satu batch belum melebihi batas max_routine_load_batch_size. Nilai negatif menunjukkan bahwa max_routine_load_batch_size terlalu kecil.

    I0325 20:27:50.410579 15259 data_consumer_group.cpp:131] consumer group done:
    41448fb1a0ca59ad-30e34dabfa7e47a0. consume time(ms)=3261, received rows=179190,
    received bytes=9855450, eos: 1, left_time: -261, left_bytes: 514432550, blocking
    get time(us): 3065086, blocking put time(us): 24855
    1

Parameter Routine Load

Parameter

Tipe

Nilai default

Deskripsi

max_routine_load_job_num

fe.conf

100

Jumlah maksimum pekerjaan Routine Load dalam status NEED_SCHEDULE, RUNNING, atau PAUSED.

max_routine_load_task_concurrent_num

fe.conf

5

Paralelisme maksimum untuk satu pekerjaan Routine Load.

max_routine_load_task_num_per_be

fe.conf

5

Jumlah maksimum tugas Routine Load yang dapat dijadwalkan pada satu node BE.

max_routine_load_batch_size

fe.conf

500 MB

Jumlah maksimum data yang dibaca dari Kafka dalam satu batch.

routine_load_task_consume_second

fe.conf

3

Waktu maksimum untuk membaca data dari Kafka dalam satu batch.

routine_load_task_timeout_second

fe.conf

15

Timeout untuk satu tugas Routine Load.

max_consumer_num_per_group

be.conf

3

Jumlah maksimum konsumen per kelompok konsumen.

desired_concurrent_number

properties

3

Paralelisme yang diinginkan untuk pekerjaan Routine Load. Paralelisme aktual dihitung berdasarkan rumus berikut: concurrent_num = Min( Min( partition_num, Min(desired_concurrent_num, alive_be_num ) ),Config.max_routine_load_task_concurrent_num ).

max_batch_interval

properties

10s

Interval penjadwalan untuk pekerjaan Routine Load.

max_batch_rows

properties

200000

Parameter ini menentukan ukuran jendela deteksi error. Ukuran jendela adalah 10 * max_batch_rows.

max_error_number

properties

0

Jumlah maksimum baris error yang diizinkan dalam jendela sampling. Nilainya harus 0 atau lebih. Nilai default 0 berarti tidak ada baris error yang diizinkan.

Penting

Baris yang difilter oleh klausa WHERE tidak dihitung sebagai baris error.

strict_mode

properties

true

Menentukan apakah mode ketat diaktifkan. Nilai default adalah true. Dalam mode ketat, baris akan difilter jika kolom sumber non-null diubah menjadi NULL.

Memilih model data

StarRocks menyediakan empat model data. Pilih model yang paling sesuai dengan kasus penggunaan Anda:

Model data

Skenario

duplicate key model

  • Data tidak sering diperbarui.

  • Pola kueri fleksibel dan tidak melibatkan pre-agregasi.

  • Data mentah perlu dipertahankan.

aggregate key model

  • Data hanya ditambahkan, tidak diperbarui.

  • Kueri bisnis mencakup fungsi agregat, seperti MIN, MAX, atau SUM.

  • Data detail mentah tidak perlu dikueri.

unique key model

Ideal untuk analisis real-time data yang sering diperbarui.

primary key model

Ideal untuk analisis real-time data yang sering diperbarui.

Jika Anda memiliki pembaruan kolom parsial, kami merekomendasikan untuk membatasi jumlah kolom di bawah 200.

Fungsi COUNT pada model data

StarRocks menyediakan empat model data: duplicate key model, unique key model, aggregate key model, dan primary key model. Perilaku fungsi COUNT berbeda signifikan di antara model-model tersebut.

  • duplicate key model: Model ini tidak memerlukan operasi merge, sehingga operasi COUNT cepat.

  • unique key dan aggregate key model: Implementasi COUNT melibatkan operasi merge multi-versi, sehingga relatif lebih lambat.

    Jika kuncinya bertipe string, operasi COUNT secara teoretis bahkan lebih lambat.

  • primary key model: Saat membaca data, model ini menggunakan indeks in-memory dan vektor penghapusan, sehingga tidak memerlukan operasi merge. Akibatnya, operasi COUNT lebih cepat dibandingkan model unique key dan aggregate key.

    Gunakan model ini untuk workload yang melibatkan operasi pembaruan.

Mengurangi penggunaan disk direktori trash

Direktori /mnt/disk1/starrocks/storage/trash/ menyimpan data yang telah dihapus. Untuk mengurangi penggunaan disk direktori ini, Anda dapat mengurangi nilai parameter trash_file_expire_time_sec dalam file be.conf untuk memperpendek periode retensi direktori trash. Nilai default adalah 259.200 detik (72 jam).

Error saat membuat materialized view

  • Gejala: Saat Anda mencoba membuat materialized view, error berikut terjadi.

    mysql> CREATE MATERIALIZED VIEW test_bl1_mvte AS select timed, event, count(userId) as PV from test_bl1 group by timed, event;
    ERROR 1064 (HY000): table [test_bl1] is not stable. Some tablets of this table may not be healthy or are being scheduled. You need to repair the table first or stop cluster balance. See 'help admin;'.
    mysql>
  • Solusi:

    1. Jalankan perintah show proc "/cluster_balance"; dan show proc "/statistic";.

    2. Periksa apakah ada tablet yang sedang di-rebalance:

      • Jika ada tablet yang sedang di-rebalance, tunggu hingga proses selesai.

      • Jika tidak, jalankan perintah set disable_balance=true lalu coba buat kembali materialized view.

Troubleshooting kueri lambat

Kami merekomendasikan metode troubleshooting berikut:

  • Aktifkan pelaporan profil dan lihat informasi profil di UI StarRocks.

    Jalankan perintah SET is_report_success = true; untuk mengaktifkan pelaporan profil.

  • Ikuti langkah-langkah troubleshooting dasar berikut:

    1. Atur paralelisme.

      • Pipeline

        SET pipeline_dop = 8;
        SET enable_pipeline_engine = true;
      • Mesin non-pipeline

        SET enable_pipeline_engine=false;
        SET parallel_fragment_exec_instance_num=8;
    2. Periksa distribusi tablet.

      show data xxx;
      Catatan

      Ukuran tablet yang direkomendasikan berkisar antara 1 GB hingga 10 GB.

    3. Periksa definisi tabel.

      1. Periksa iotime dalam profil. Jika nilainya tinggi, Anda dapat menghapus indeks yang tidak perlu, seperti jumlah indeks bitmap yang berlebihan.

      2. Periksa model data tabel dan pilih model yang sesuai. Misalnya, dalam unique key model, penurunan predikat tidak dapat diterapkan hingga kompaksi selesai, yang sering menyebabkan kueri lambat.

Kegagalan akses pada port 8030 atau 8040

Port default untuk load_url dan webserver_port bergantung pada versi EMR Anda. Untuk EMR V5.8.0/V3.42.0 dan versi sebelumnya, gunakan port 8030 dan 8040 secara berturut-turut. Untuk EMR V5.9.0/V3.43.0 dan versi setelahnya, gunakan port 18030 dan 18040.

Catatan

Anda dapat menjalankan perintah show frontends untuk melihat port aktual yang digunakan.

Ketersediaan wilayah EMR StarRocks

EMR StarRocks tersedia di semua wilayah.

Disk data BE dan distribusi data

Secara default, empat disk cloud ESSD PL1 yang ditingkatkan dipasang. StarRocks secara otomatis menyeimbangkan data di seluruh node berdasarkan beban, bucketing, dan faktor lainnya. Setiap replika tablet disimpan sepenuhnya pada satu disk.

Mereset kluster untuk pemulihan data

Penting

Operasi berikut menghapus semua data di kluster. Lakukan dengan hati-hati.

  1. Hentikan layanan kluster (FE dan BE).

  2. Bersihkan direktori metadata FE.

    1. Periksa file fe.conf di direktori /opt/apps/STARROCKS/starrocks-current/fe/conf/ untuk menemukan direktori yang dikonfigurasi untuk meta_dir.

    2. Hapus folder bdb dari direktori yang dikonfigurasi.

    3. Kosongkan folder image di direktori yang dikonfigurasi.

  3. Bersihkan data dan metadata BE.

    1. Periksa file be.conf di direktori /opt/apps/STARROCKS/starrocks-current/be/conf/ untuk menemukan direktori yang dikonfigurasi untuk storage_root_path.

    2. Hapus semua folder dan file dari direktori yang dikonfigurasi kecuali folder data dan meta.

    3. Kosongkan folder data dan meta di direktori yang dikonfigurasi.

    Catatan

    Konfigurasi mungkin menentukan beberapa path. Anda harus melakukan operasi ini untuk setiap path.

  4. Nyalakan kembali layanan kluster (FE dan BE).

Menampilkan log

Direktori log biasanya ditemukan di path berikut:

  • FE

    • /opt/apps/STARROCKS/starrocks-current/fe/log/

    • /mnt/disk1/log/starrocks/

  • BE

    • /opt/apps/STARROCKS/starrocks-current/be/log/

    • /mnt/disk1/log/starrocks/

Node tugas yang ditambahkan saat scaling out tidak digunakan untuk komputasi

Gejala

Setelah Anda melakukan scaling out kluster StarRocks dengan menambahkan tiga node tugas, node baru tersebut ditetapkan sebagai compute node (CN) tetapi tidak secara otomatis menjalankan tugas komputasi. Meskipun node BE yang ada berada di bawah beban tinggi, node tugas baru tetap kurang dimanfaatkan, dengan data pemantauan menunjukkan beban yang konsisten rendah.

Penyebab

Dalam arsitektur integrasi komputasi dan penyimpanan, CN dalam kluster StarRocks hanya dapat digunakan untuk kueri pada tabel eksternal. Oleh karena itu, jika aplikasi terutama melibatkan kueri pada tabel internal, node BE menangani tugas tersebut, sehingga CN baru kurang dimanfaatkan.

Solusi

Sebelum menjalankan tugas kueri, eksekusi perintah SQL berikut untuk memprioritaskan CN dalam eksekusi tugas.

SET GLOBAL prefer_compute_node=true;

Menampilkan password kluster StarRocks

Password untuk kluster StarRocks adalah password yang Anda atur untuk pengguna root saat membuat kluster. Jika Anda lupa password tersebut, Anda dapat meresetnya. Untuk informasi lebih lanjut, lihat Bagaimana cara mereset kata sandi logon kluster?