全部产品
Search
文档中心

E-MapReduce:FAQ

更新时间:Jul 02, 2025

Topik ini menjawab beberapa pertanyaan umum tentang StarRocks.

Apa saja persyaratan StarRocks untuk sumber daya perangkat keras?

  • Konfigurasi Mesin

    Server untuk node backend (BE) direkomendasikan memiliki minimal 16 inti CPU dan 64 GB memori, sedangkan server untuk node frontend (FE) minimal 8 inti CPU dan 16 GB memori.

    Dalam lingkungan produksi, server untuk node FE biasanya memiliki 16 inti CPU, 32 hingga 64 GB memori, serta disk NVMe dengan kapasitas 200 hingga 500 GB.

  • Disk

    • HDD dan SSD dapat digunakan.

    • Kapasitas disk dapat diperkirakan berdasarkan rasio kompresi sebesar 3 dan penggunaan disk antara 70% hingga 75%.

    • Jika Anda ingin mengimpor data Hive dalam format Parquet atau ORC ke StarRocks, perkirakan kapasitas disk berdasarkan rasio kompresi 1:1.

      Sebagai contoh, jika ukuran data Hive yang ingin diimpor adalah 3 TB, maka ukuran data yang diimpor ke StarRocks juga akan menjadi 3 TB.

  • CPU

    • CPU harus mendukung set instruksi Advanced Vector Extensions 2 (AVX2). Jalankan perintah cat /proc/cpuinfo |grep avx2 untuk memeriksa apakah AVX2 didukung.

    • Mesin eksekusi vektor penuh memanfaatkan daya pemrosesan CPU lebih efisien jika CPU mendukung set instruksi tersebut. Jika tidak, disarankan untuk mengganti server.

  • Jaringan

    Disarankan untuk menggunakan kartu antarmuka jaringan (NIC) 10GE dan switch 10GE.

Apa saja persyaratan StarRocks untuk konfigurasi perangkat lunak?

Untuk informasi lebih lanjut, lihat Konfigurasi Parameter.

Berapa banyak replika yang perlu saya tentukan dalam lingkungan produksi?

Dalam kebanyakan kasus, diperlukan 2 atau 3 replika dalam lingkungan produksi. Direkomendasikan untuk menentukan 3 replika.

Bagaimana cara menentukan jumlah partisi dari sebuah tabel?

Partisi yang tepat membantu mengurangi jumlah data yang harus dipindai secara efektif.

  • Dalam kebanyakan kasus, Anda dapat memilih kunci partisi berdasarkan kebutuhan bisnis. Sebagai contoh, kolom waktu atau wilayah dapat digunakan sebagai kunci partisi.

  • Jika Anda memerlukan pembuatan partisi otomatis, Anda dapat mengaktifkan partisi dinamis.

Bagaimana cara menentukan jumlah tablet?

  • Anda dapat memilih kolom dengan kardinalitas tinggi sebagai kunci bucketing untuk mencegah skew data antar tablet.

    • Jika ada kolom ID unik, disarankan untuk memilih kolom ID unik sebagai kunci bucketing.

    • Jika data tidak dapat didistribusikan secara merata menggunakan satu kolom bucketing, Anda dapat memilih beberapa kolom sebagai kunci bucketing. Namun, hindari penggunaan jumlah kolom yang berlebihan sebagai kunci bucketing.

  • Anda dapat memperkirakan ukuran optimal tablet berdasarkan informasi berikut. Jumlah tablet dapat dihitung berdasarkan item berikut dan total data.

    • Untuk data mentah seperti CSV, ukuran tablet berkisar antara 1 GB hingga 10 GB.

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

  • Jika ingin memanfaatkan sepenuhnya sumber daya mesin, gunakan rumus berikut untuk menghitung jumlah tablet: Jumlah node BE × Jumlah inti CPU/2.

Bagaimana cara menentukan kunci pengurutan?

Kunci pengurutan harus dirancang berdasarkan karakteristik kueri data.

  • Anda dapat memilih kolom yang sering digunakan sebagai kondisi filter dan dalam klausa Group BY sebagai kunci pengurutan untuk mempercepat kueri.

  • Jika banyak kueri titik sering dilakukan, atur kolom ID kueri titik sebagai kolom pertama dari kunci pengurutan.

    Sebagai contoh, jika pernyataan kueri adalah select sum(revenue) from lineorder where user_id='aaa100'; dan konkurensi tinggi terjadi, disarankan untuk mengatur kolom user_id sebagai kolom pertama dari kunci pengurutan.

  • Jika kueri agregat dan pemindaian utama dilakukan, disarankan untuk mengatur kolom dengan kardinalitas rendah terlebih dahulu.

    Sebagai contoh, jika pernyataan kueri adalah select region, nation, count(*) from lineorder_flat group by region, nation, disarankan untuk menentukan kolom region sebagai kolom pertama dan kolom nation sebagai kolom kedua.

Bagaimana cara memilih tipe data yang tepat?

Disarankan untuk memilih tipe data dengan presisi tinggi. Sebagai contoh, pilih tipe data integer daripada string, dan pilih tipe data INT daripada BIGINT. Tipe data dengan presisi tinggi membantu memanfaatkan performa database secara maksimal.

Bagaimana cara melakukan penyetelan parameter ketika metode impor Routine Load memiliki masalah performa?

Kebijakan penyetelan parameter

Jika metode impor Routine Load memiliki masalah performa, Anda dapat melakukan penyetelan parameter dari dimensi berikut:

  • Siklus Penjadwalan Pekerjaan

    Anda dapat memodifikasi parameter max_batch_interval untuk mempersingkat siklus penjadwalan dan mempercepat konsumsi data. Namun, jika siklus penjadwalan dipersingkat, lebih banyak sumber daya CPU mungkin dikonsumsi.

    Penting

    Siklus penjadwalan minimum adalah 5 detik.

  • Paralelisme Pekerjaan

    Jika sejumlah besar partisi dan node BE terlibat, Anda dapat mengonfigurasi parameter berikut untuk mempercepat eksekusi pekerjaan. Namun, jika derajat paralelisme (DOP) ditingkatkan, lebih banyak sumber daya CPU mungkin dikonsumsi.

    • max_routine_load_task_concurrent_num

    • desired_concurrent_number

    Pekerjaan Routine Load dibagi menjadi beberapa tugas berdasarkan jumlah partisi dalam topik Kafka dan didistribusikan ke beberapa node BE untuk dieksekusi berdasarkan jumlah node BE. DOP pekerjaan mengacu pada jumlah tugas yang dibagi dari pekerjaan Routine Load.

    Gunakan rumus berikut untuk menghitung DOP pekerjaan.

    concurrent_num = Min( Min( partition_num, Min( desired_concurrent_num, alive_be_num ) ),Config.max_routine_load_task_concurrent_num )
  • Ukuran Batch Impor

    • routine_load_task_consume_second: Anda dapat mempercepat konsumsi data dengan meningkatkan durasi operasi baca.

    • max_routine_load_batch_size: Anda dapat mempercepat konsumsi data dengan meningkatkan jumlah data dalam operasi baca.

    Gunakan log berikut untuk menentukan apakah parameter max_routine_load_batch_size disetel ke nilai yang lebih rendah. Nilai bidang left_bytes dalam log harus tidak kurang dari 0, yang menunjukkan bahwa jumlah data yang dibaca pada satu waktu tidak melebihi nilai parameter max_routine_load_batch_size. Jika tidak, parameter max_routine_load_batch_size disetel ke nilai yang lebih rendah.

    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 pekerjaan Routine Load

Parameter

Tipe

Nilai default

Deskripsi

max_routine_load_job_num

fe.conf

100

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

max_routine_load_task_concurrent_num

fe.conf

5

DOP maksimum pekerjaan Routine Load.

max_routine_load_task_num_per_be

fe.conf

5

Jumlah maksimum pekerjaan Routine Load yang dapat dialokasikan ke satu node BE.

max_routine_load_batch_size

fe.conf

500 MB

Jumlah maksimum data yang dapat dibaca dari Kafka pada satu waktu.

routine_load_task_consume_second

fe.conf

3

Periode maksimum yang digunakan untuk membaca data dari Kafka pada satu waktu.

routine_load_task_timeout_second

fe.conf

15

Periode timeout selama pekerjaan Routine Load dapat berjalan.

max_consumer_num_per_group

be.conf

3

Jumlah maksimum konsumen dalam grup konsumen.

desired_concurrent_number

properties

3

DOP yang diharapkan dari pekerjaan Routine Load. DOP 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

Siklus penjadwalan pekerjaan Routine Load.

max_batch_rows

properties

200000

Parameter ini hanya digunakan untuk menentukan rentang jendela deteksi kesalahan. Rentang jendela dihitung dengan mengalikan 10 dan nilai parameter ini.

max_error_number

properties

0

Jumlah maksimum baris kesalahan yang diizinkan dalam jendela sampling. Nilai harus lebih besar dari atau sama dengan 0. Nilai default 0 menentukan bahwa tidak ada baris kesalahan yang diizinkan.

Penting

Baris kesalahan tidak mencakup baris yang difilter oleh klausa WHERE.

strict_mode

properties

true

Menentukan apakah mode ketat diaktifkan. Secara default, mode ketat diaktifkan. Setelah Anda mengaktifkan mode ketat, jika kolom data mentah diubah dari NOT NULL menjadi NULL, data tersebut difilter.

Bagaimana cara memilih model data?

StarRocks menyediakan empat model data berikut. Anda dapat memilih model data berdasarkan kebutuhan bisnis Anda.

Model data

Skenario

kunci duplikat

  • Data tidak sering diperbarui.

  • Metode kueri fleksibel dan tidak melibatkan pra-agregasi.

  • Data mentah perlu dipertahankan.

Model kunci agregat

  • Data baru ditulis, dan data yang ada tidak diperbarui.

  • Semua kueri bisnis mencakup fungsi agregat, seperti MIN, MAX, dan SUM.

  • Data detail mentah tidak perlu diambil.

kunci unik

Data diperbarui untuk analisis real-time.

kunci primer

Data diperbarui untuk analisis real-time.

Jika beberapa kolom diperbarui, kami merekomendasikan agar jumlah kolom yang diperbarui tidak lebih dari 200.

Bagaimana fungsi COUNT bekerja di berbagai model data StarRocks?

StarRocks memiliki empat model data, yaitu kunci duplikat, kunci unik, kunci agregat, dan model kunci primer. Cara kerja fungsi COUNT bervariasi berdasarkan model data yang berbeda. Berikut adalah perbedaan tersebut:

  • Model kunci duplikat: Model data ini tidak memerlukan operasi penggabungan, sehingga hasil fungsi COUNT dikembalikan dengan cepat.

  • Model kunci unik dan kunci agregat: Kedua model data ini memerlukan operasi penggabungan pada beberapa versi data, sehingga hasil fungsi COUNT dikembalikan lebih lambat daripada model kunci duplikat.

    Secara teori, jika kolom kunci bertipe STRING, hasil fungsi COUNT dikembalikan lebih lambat.

  • Model kunci primer: Model data ini mendukung indeks kunci primer dan operasi penghapusan pada vektor saat data dibaca. Model ini tidak memerlukan operasi penggabungan. Akibatnya, hasil fungsi COUNT dikembalikan lebih cepat daripada model kunci unik dan kunci agregat.

    Disarankan untuk memilih model kunci primer jika data Anda melibatkan operasi pembaruan.

Bagaimana cara mengurangi penggunaan disk direktori /mnt/disk1/starrocks/storage/trash/?

Data yang dihapus disimpan dalam direktori /mnt/disk1/starrocks/storage/trash/. Untuk mengurangi penggunaan disk direktori ini, Anda dapat mengurangi nilai parameter trash_file_expire_time_sec dalam file be.conf untuk mempersingkat periode retensi direktori sampah. Periode retensi default adalah 259.200 detik, yang setara dengan 72 jam.

Apa yang harus saya lakukan jika terjadi kesalahan saat membuat materialized view?

  • Deskripsi Masalah: Gambar berikut menunjukkan pesan kesalahan.error

  • Solusi:

    1. Jalankan pernyataan berikut: show proc "/cluster_balance"; dan show proc "/statistic";.

    2. Periksa apakah tablet sedang rebalanced.

      • Jika ya, tunggu hingga eksekusi selesai.

      • Jika tidak, Anda dapat menjalankan pernyataan set disable_balance=true dan membuat materialized view.

Apa yang harus saya lakukan jika terjadi kueri data lambat?

Disarankan untuk menggunakan solusi berikut:

  • Aktifkan pelaporan profil dan lihat informasi profil pada antarmuka pengguna (UI) StarRocks.

    Anda dapat menjalankan pernyataan SET is_report_success = true; untuk mengaktifkan pelaporan profil.

  • Metode Pemecahan Masalah Umum:

    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. Lihat distribusi data tablet.

      show data xxx;
      Catatan

      Ukuran tablet yang direkomendasikan adalah 1 hingga 10 GB.

    3. Lihat tabel yang dibuat.

      1. Anda dapat menentukan waktu tunggu I/O berdasarkan informasi profil. Jika waktu tunggu tinggi, Anda dapat menghapus indeks yang tidak diperlukan, seperti indeks bitmap yang sering dibuat.

      2. Lihat model data tabel dan pilih model data yang sesuai. Sebagai contoh, dalam model kunci unik, pushdown tidak bekerja sebelum fase kompaksi selesai. Hal ini menyebabkan kueri lambat.

Mengapa saya gagal mengakses kluster StarRocks menggunakan port 8030 atau port 8040?

Untuk kluster StarRocks E-MapReduce (EMR) V5.8.0, EMR V3.42.0, atau versi minor lebih awal dari EMR V5.8.0 atau EMR V3.42.0, nomor port load_url adalah 8030 dan nomor port webserver_port adalah 8040. Namun, untuk kluster StarRocks EMR V5.9.0 atau versi minor lebih baru, atau EMR V3.43.0 atau versi minor lebih baru, nomor port load_url adalah 18030 dan nomor port webserver_port adalah 18040. Anda harus memilih port yang ingin digunakan untuk mengakses kluster StarRocks berdasarkan versi kluster Anda.

Catatan

Anda dapat menjalankan perintah show frontends untuk melihat nomor port aktual kluster StarRocks.

Di wilayah mana EMR StarRocks tersedia?

StarRocks tersedia di semua wilayah.

Bagaimana StarRocks mendistribusikan data ke disk data node BE?

Secara default, empat SSD ditingkatkan PL1 dikonfigurasikan untuk setiap node BE. StarRocks mendistribusikan data secara merata ke node BE berdasarkan beban dan mekanisme bucket. Data dalam tablet dan replika yang sama disimpan di disk yang sama.

Bagaimana cara mereset kluster jika terjadi pengecualian data?

Penting

Setelah melakukan operasi berikut, data kluster akan dihapus. Lanjutkan dengan hati-hati.

  1. Hentikan layanan yang diterapkan pada node FE dan BE.

  2. Hapus direktori tempat metadata node FE disimpan.

    1. Lihat file fe.conf dalam direktori /opt/apps/STARROCKS/starrocks-current/fe/conf/ dan dapatkan direktori konfigurasi meta_dir.

    2. Hapus folder bdb dari direktori konfigurasi.

    3. Hapus folder image dalam direktori konfigurasi.

  3. Hapus data dan metadata BE.

    1. Lihat file be.conf dalam direktori /opt/apps/STARROCKS/starrocks-current/be/conf/ dan dapatkan direktori konfigurasi storage_root_path.

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

    3. Hapus folder data dan meta dalam direktori konfigurasi.

    Catatan

    Direktori konfigurasi mungkin ada di beberapa jalur. Anda harus melakukan operasi di atas untuk setiap jalur.

  4. Mulai ulang layanan yang diterapkan pada node FE dan BE.

Bagaimana cara melihat log node FE dan BE?

Log node FE dan BE disimpan di direktori berikut:

  • Node FE

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

    • /mnt/disk1/log/starrocks/

  • Node BE

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

    • /mnt/disk1/log/starrocks/

Setelah node tugas ditambahkan ke kluster StarRocks, node tersebut tidak digunakan untuk menjalankan tugas. Mengapa?

Deskripsi masalah

Setelah tiga node tugas ditambahkan ke kluster StarRocks sebagai node komputasi (CN), node yang ditambahkan tidak digunakan untuk menjalankan tugas. Beban kerja pada node BE tinggi. Namun, node tugas baru yang ditambahkan tidak sepenuhnya dimanfaatkan, dan data pemantauan menunjukkan bahwa beban kerja pada node tugas rendah.

Penyebab

Untuk kluster StarRocks yang mengadopsi arsitektur integrasi komputasi-penyimpanan, node CN hanya dapat digunakan untuk mengkueri data dari tabel eksternal. Dalam skenario di mana Anda ingin mengkueri data dari tabel internal, node BE selalu digunakan. Akibatnya, node tugas baru yang ditambahkan tidak sepenuhnya dimanfaatkan.

Solusi

Sebelum menjalankan tugas kueri, jalankan pernyataan SQL berikut untuk memungkinkan tugas dijalankan secara prioritas pada CN:

SET GLOBAL prefer_compute_node=true;

Bagaimana cara melihat kata sandi kluster StarRocks?

Kata sandi kluster StarRocks mengacu pada kata sandi yang Anda atur untuk pengguna root saat membuat kluster StarRocks. Jika Anda lupa kata sandi, Anda dapat menyetel ulang kata sandi. Untuk informasi lebih lanjut, lihat bagian Bagaimana cara menyetel ulang kata sandi saya? dari topik "Masuk ke Kluster".