全部产品
Search
文档中心

E-MapReduce:Rencana Pengujian

更新时间:Jul 02, 2025

Topik ini menjelaskan cara menggunakan TPC Benchmark H (TPC-H) untuk menguji kinerja pemrosesan analitik daring (OLAP).

Ikhtisar TPC-H

Deskripsi berikut dikutip dari dokumentasi resmi TPC-H:

TPC-H adalah benchmark dukungan keputusan yang terdiri dari rangkaian kueri ad hoc berorientasi bisnis dan modifikasi data bersamaan. Kueri serta data yang digunakan dipilih untuk memiliki relevansi luas di seluruh industri. Benchmark ini menggambarkan sistem dukungan keputusan yang memeriksa volume data besar, mengeksekusi kueri kompleks, dan memberikan jawaban atas pertanyaan bisnis kritis.

Untuk informasi lebih lanjut, lihat Spesifikasi Standar TPC BENCHMARK™ H.

Catatan

Pengujian kinerja TPC-H yang dijelaskan dalam topik ini diimplementasikan berdasarkan pengujian benchmark TPC-H tetapi tidak memenuhi semua persyaratan pengujian benchmark TPC-H. Oleh karena itu, hasil pengujian tidak dapat dibandingkan dengan hasil yang diterbitkan dari pengujian benchmark TPC-H.

Dataset

TPC-H adalah dataset uji yang dikembangkan oleh Transaction Processing Performance Council (TPC) untuk mensimulasikan sistem dukungan keputusan. Dataset ini digunakan di akademisi dan industri untuk mengevaluasi kinerja sistem dukungan keputusan.

TPC-H memodelkan data dalam lingkungan produksi untuk mensimulasikan gudang data sistem penjualan. Gudang data terdiri dari delapan tabel dengan ukuran berkisar antara 1 GB hingga 3 TB. Pengujian benchmark TPC-H melibatkan 22 kueri dan berfokus pada waktu respons setiap kueri, yaitu jumlah waktu yang diperlukan dari pengiriman kueri hingga penerimaan hasil. Hasil pengujian mencerminkan kemampuan sistem dalam memproses kueri secara komprehensif. Untuk informasi lebih lanjut, lihat Spesifikasi Standar TPC BENCHMARK™ H.

Prosedur

Dalam contoh ini, 22 kueri dari pengujian benchmark TPC-H digunakan. Jumlah data uji memengaruhi hasil pengujian. Alat pembuatan data TPC-H memungkinkan Anda menyesuaikan faktor skala (SF) untuk mengubah jumlah data yang dihasilkan. Satu SF setara dengan 1 GB data.

Catatan

Jumlah data sebelumnya merujuk pada jumlah data mentah. Saat menyiapkan lingkungan pengujian, pertimbangkan faktor lain seperti ruang yang akan ditempati oleh indeks.

  1. Lakukan persiapan.

    Siapkan lingkungan dasar yang diperlukan untuk menguji kueri OLAP.

    Catatan

    Untuk mengurangi variabel yang memengaruhi hasil pengujian, disarankan menggunakan instance baru setiap kali melakukan pengujian, bukan meningkatkan atau menurunkan spesifikasi instance yang ada.

    1. Buat instance Elastic Compute Service (ECS). Untuk informasi lebih lanjut, lihat Buat instance.

      Dalam topik ini, instance ECS yang digunakan untuk pengujian memiliki spesifikasi berikut:

      • Tipe instance: ecs.g6e.4xlarge

      • Sistem operasi: CentOS 7.9

      • Disk data: Enterprise SSD (ESSD). Kapasitas dapat ditentukan berdasarkan jumlah data yang digunakan dalam pengujian.

    2. Buat instance E-MapReduce (EMR) Serverless StarRocks. Untuk informasi lebih lanjut, lihat Buat instance.

      Dalam pengujian ini, backend (BE) dengan delapan unit komputasi (CU) digunakan, yang berarti instance EMR Serverless StarRocks dikonfigurasikan dengan delapan inti CPU dan 32 GB memori. Anda juga dapat mengonfigurasi sumber daya komputasi sesuai kebutuhan bisnis.

      Catatan

      Disarankan membuat instance EMR Serverless StarRocks dan instance ECS di virtual private cloud (VPC) dan wilayah yang sama.

  2. Konfigurasikan paket uji.

    1. Masuk ke instance ECS. Untuk informasi lebih lanjut, lihat Hubungkan ke instance.

    2. Jalankan perintah berikut untuk mengunduh dan mengekstrak paket pengujian benchmark untuk StarRocks:

      wget https://emr-olap.oss-cn-beijing.aliyuncs.com/packages/starrocks-benchmark-for-serverless.tar.gz
      tar xzvf starrocks-benchmark-for-serverless.tar.gz
    3. Jalankan perintah berikut untuk masuk ke direktori starrocks-benchmark-for-serverless:

      cd starrocks-benchmark-for-serverless
    4. Jalankan perintah vim group_vars/all dan tentukan parameter berikut yang diperlukan oleh pengujian:

      # konfigurasi klien mysql
      login_host: fe-c-8764bab92bc6****-internal.starrocks.aliyuncs.com
      login_port: 9030
      login_user: admin
      login_password: xxxx
      
      # konfigurasi oss
      bucket: ""
      endpoint: ""
      access_key_id: ""
      access_key_secret: ""
      
      # konfigurasi benchmark
      scale_factor: 1
      work_dir_root: /mnt/disk1/starrocks-benchmark/workdirs
      dataset_generate_root_path: /mnt/disk1/starrocks-benchmark/datasets

      Tabel berikut menjelaskan parameter.

      Parameter

      Deskripsi

      Catatan

      login_host

      Titik akhir internal frontend (FE) pada instance EMR Serverless StarRocks.

      Anda dapat masuk ke tab Instance Details instance EMR Serverless StarRocks untuk melihat internal endpoint instance di bagian FE Details.

      Penting

      Kami sarankan Anda tidak menggunakan titik akhir publik.

      Parameter yang digunakan untuk menghubungkan klien ke layanan StarRocks.

      login_port

      Port query FE pada instance EMR Serverless StarRocks. Nilai default: 9030.

      Anda dapat masuk ke tab Instance Details instance EMR Serverless StarRocks untuk melihat query port instance di bagian FE Details.

      login_user

      Nama pengguna awal yang digunakan untuk masuk ke instance EMR Serverless StarRocks.

      login_password

      Kata sandi yang digunakan untuk masuk ke instance EMR Serverless StarRocks.

      bucket

      Nama bucket Object Storage Service (OSS).

      Opsional. Konfigurasi OSS. Jika Anda menentukan parameter ini, dataset uji yang dihasilkan disimpan di OSS.

      endpoint

      Titik akhir yang digunakan untuk mengakses OSS.

      access_key_id

      ID AccessKey akun Alibaba Cloud Anda.

      access_key_secret

      Rahasia AccessKey akun Alibaba Cloud Anda.

      scale_factor

      SF dataset uji, yang mengontrol jumlah data yang akan dihasilkan. Nilai default: 1. Unit: GB.

      Konfigurasi benchmark.

      work_dir_root

      Direktori root direktori kerja. Direktori root digunakan untuk menyimpan data seperti pernyataan pembuatan tabel dan pernyataan SQL lainnya untuk pengujian TPC-H. Nilai default: /mnt/disk1/starrocks-benchmark/workdirs.

      dataset_generate_root_path

      Path tempat dataset uji yang dihasilkan disimpan. Nilai default: /mnt/disk1/starrocks-benchmark/datasets.

      Jika bucket OSS ditentukan, bucket tersebut dipasang ke path ini.

  3. Jalankan perintah berikut untuk mengaktifkan pengujian TPC-H otomatis end-to-end:

    bin/run_tpch.sh

    Selama pengujian TPC-H otomatis end-to-end, database, tabel, 22 pernyataan SQL, dan dataset dibuat, data dimuat, dan kueri dijalankan.

    Anda juga dapat melakukan operasi berikut:

    • Jalankan perintah berikut untuk memuat ulang dataset:

      bin/run_tpch.sh reload
    • Jalankan perintah berikut untuk melakukan pengujian kueri TPC-H:

      bin/run_tpch.sh query
  4. Lihat hasil pengujian.

    • Periksa gambaran umum hasil pengujian.

      Setelah perintah bin/run_tpch.sh dijalankan, hasil pengujian ditampilkan. Contoh hasil pengujian:

      TASK [tpc_h : debug] ****************************************************************************************************************************************
      ok: [10.1.**.**] => {
          "command_output.stdout_lines": [
              "[info] 2022-03-01 09:51:23.295 | Run sql queries started.",
              "[info] 2022-03-01 09:51:23.330 | Run q10.sql started.",
              "[info] 2022-03-01 09:51:23.913 | Run q10.sql finished. Time taken: 0:00:00, .557 seconds",
              "[info] 2022-03-01 09:51:23.923 | Run q11.sql started.",
              "[info] 2022-03-01 09:51:24.026 | Run q11.sql finished. Time taken: 0:00:00, .100 seconds",
              "[info] 2022-03-01 09:51:24.038 | Run q12.sql started.",
              "[info] 2022-03-01 09:51:24.192 | Run q12.sql finished. Time taken: 0:00:00, .151 seconds",
              "[info] 2022-03-01 09:51:24.204 | Run q13.sql started.",
              "[info] 2022-03-01 09:51:24.553 | Run q13.sql finished. Time taken: 0:00:00, .347 seconds",
              "[info] 2022-03-01 09:51:24.563 | Run q14.sql started.",
              "[info] 2022-03-01 09:51:24.665 | Run q14.sql finished. Time taken: 0:00:00, .098 seconds",
              "[info] 2022-03-01 09:51:24.675 | Run q15.sql started.",
              "[info] 2022-03-01 09:51:24.852 | Run q15.sql finished. Time taken: 0:00:00, .175 seconds",
              "[info] 2022-03-01 09:51:24.864 | Run q16.sql started.",
              "[info] 2022-03-01 09:51:25.008 | Run q16.sql finished. Time taken: 0:00:00, .142 seconds",
              "[info] 2022-03-01 09:51:25.018 | Run q17.sql started.",
              "[info] 2022-03-01 09:51:25.269 | Run q17.sql finished. Time taken: 0:00:00, .248 seconds",
              "[info] 2022-03-01 09:51:25.280 | Run q18.sql started.",
              "[info] 2022-03-01 09:51:25.800 | Run q18.sql finished. Time taken: 0:00:00, .518 seconds",
              "[info] 2022-03-01 09:51:25.810 | Run q19.sql started.",
              "[info] 2022-03-01 09:51:25.943 | Run q19.sql finished. Time taken: 0:00:00, .130 seconds",
              "[info] 2022-03-01 09:51:25.953 | Run q1.sql started.",
              "[info] 2022-03-01 09:51:26.295 | Run q1.sql finished. Time taken: 0:00:00, .339 seconds",
              "[info] 2022-03-01 09:51:26.305 | Run q20.sql started.",
              "[info] 2022-03-01 09:51:26.708 | Run q20.sql finished. Time taken: 0:00:00, .400 seconds",
              "[info] 2022-03-01 09:51:26.720 | Run q21.sql started.",
              "[info] 2022-03-01 09:51:27.323 | Run q21.sql finished. Time taken: 0:00:00, .600 seconds",
              "[info] 2022-03-01 09:51:27.334 | Run q22.sql started.",
              "[info] 2022-03-01 09:51:27.403 | Run q22.sql finished. Time taken: 0:00:00, .065 seconds",
              "[info] 2022-03-01 09:51:27.415 | Run q2.sql started.",
              "[info] 2022-03-01 09:51:27.632 | Run q2.sql finished. Time taken: 0:00:00, .213 seconds",
              "[info] 2022-03-01 09:51:27.648 | Run q3.sql started.",
              "[info] 2022-03-01 09:51:27.917 | Run q3.sql finished. Time taken: 0:00:00, .262 seconds",
              "[info] 2022-03-01 09:51:27.936 | Run q4.sql started.",
              "[info] 2022-03-01 09:51:28.150 | Run q4.sql finished. Time taken: 0:00:00, .210 seconds",
              "[info] 2022-03-01 09:51:28.172 | Run q5.sql started.",
              "[info] 2022-03-01 09:51:28.954 | Run q5.sql finished. Time taken: 0:00:00, .778 seconds",
              "[info] 2022-03-01 09:51:28.976 | Run q6.sql started.",
              "[info] 2022-03-01 09:51:29.080 | Run q6.sql finished. Time taken: 0:00:00, .103 seconds",
              "[info] 2022-03-01 09:51:29.096 | Run q7.sql started.",
              "[info] 2022-03-01 09:51:29.445 | Run q7.sql finished. Time taken: 0:00:00, .346 seconds",
              "[info] 2022-03-01 09:51:29.460 | Run q8.sql started.",
              "[info] 2022-03-01 09:51:32.692 | Run q8.sql finished. Time taken: 0:00:03, 3.229 seconds",
              "[info] 2022-03-01 09:51:32.703 | Run q9.sql started.",
              "[info] 2022-03-01 09:51:33.318 | Run q9.sql finished. Time taken: 0:00:00, .611 seconds",
              "[info] 2022-03-01 09:51:33.324 | Run sql queries finished. Time taken: 0:00:10, 10.026 seconds"
          ]
      }
      TASK [tpc_h : debug] ********************************************************************************************************************************************************************************
      ok: [10.1.0.91] => {
          "work_dir": "/mnt/disk1/starrocks-benchmark/workdirs/tpc_h/sf1"
      }
    • Periksa detail hasil pengujian.

      Setelah perintah bin/run_tpch.sh berhasil dijalankan, sistem membangun direktori kerja untuk pengujian kinerja TPC-H dan mengembalikan path direktori <work_dir>. Anda dapat beralih ke path ini untuk melihat informasi terkait, seperti pernyataan kueri, pernyataan pembuatan tabel, dan log eksekusi.filepath

      Catatan

      Dalam contoh ini, path direktori <work_dir> adalah /mnt/disk1/starrocks-benchmark/workdirs/tpc_h/sf1.

      Anda juga dapat menjalankan perintah cd <work_dir>/logs untuk masuk ke direktori logs di direktori kerja dan melihat hasil pengujian serta hasil eksekusi rinci pernyataan SQL.

      Kode berikut menunjukkan struktur direktori <work_dir>:

      <work_dir>/
      ├── config # Konfigurasi skrip run.sh dan run_mysql.sh. 
      ├── logs # Log eksekusi terbaru dari pengujian kinerja TPC-H. 
      │   ├── *.sql.err
      │   ├── *.sql.out
      │   └── run.log
      ├── queries # 22 kueri SQL yang terlibat dalam pengujian kinerja TPC-H. 
      │   ├── ddl
      │   │   └── create_tables.sql # Pernyataan yang digunakan untuk membuat tabel untuk pengujian kinerja TPC-H. 
      │   └── *.sql
      ├── run_mysql.sh
      ├── run.sh # Kueri yang sepenuhnya dijalankan dalam pengujian kinerja TPC-H. 
      └── tpch_tools # Toolkit dbgen.