All Products
Search
Document Center

PolarDB:Uji TPC-H untuk clustered columnar index (100 GB)

Last Updated:May 16, 2026

Topik ini menjelaskan desain, prosedur, dan hasil pengujian benchmark TPC-H untuk PolarDB-X clustered columnar index (CCI).

Latar Belakang

TPC-H adalah benchmark decision support yang ditetapkan oleh Transaction Processing Performance Council (TPC) untuk mengevaluasi kemampuan database dalam menjalankan kueri analitis. Beban kerja TPC-H terdiri dari delapan tabel dan 22 kueri SQL kompleks, yang sebagian besar mencakup penggabungan tabel, subkueri, dan agregasi GROUP BY.

Catatan

Implementasi TPC-H yang dijelaskan dalam topik ini didasarkan pada benchmark TPC-H resmi. Namun, pengujian ini tidak memenuhi semua persyaratan resmi, sehingga hasilnya tidak dapat dibandingkan dengan hasil benchmark TPC-H yang telah dipublikasikan.

Desain Pengujian

Ukuran Dataset

Pengujian ini menggunakan dataset berukuran 100 GB (Scale Factor = 100). Tabel utama meliputi:

  • LINEITEM: sekitar 600 juta baris

  • ORDERS: 150 juta baris

  • PART_SUPP: 80 juta baris

Spesifikasi instans uji

Spesifikasi node

Jumlah node

Ukuran dataset

8c32g

2/4

100 GB

16c64g

2/3/4/6

100 GB

Spesifikasi Instans Uji Stres

ecs.g7.4xlarge (16 vCPU, 64 GB memory)

Prosedur

Langkah 1: Siapkan ECS untuk uji stres

Siapkan satu instans ECS. Anda akan menggunakan instans ini untuk semua operasi selanjutnya, seperti impor data dan menjalankan uji stres.

Catatan
  • Deploy instans ECS dalam VPC. Catat nama dan ID VPC tersebut, karena semua instans berikutnya harus dideploy dalam VPC yang sama.

  • Kami merekomendasikan menggunakan sistem operasi CentOS untuk instans ECS dan memberikan alamat IP publik kepadanya.

Langkah 2: Siapkan instans PolarDB-X

Buat instans PolarDB-X. Untuk petunjuk lengkap, lihat Create an instance.

Catatan
  • Pastikan instans PolarDB-X dan instans ECS untuk uji stres berada dalam VPC yang sama.

  • Tambahkan alamat IP internal instans ECS untuk uji stres ke daftar putih instans PolarDB-X.

Langkah 3: Sesuaikan parameter instans

Catatan

Untuk mencapai performa optimal dalam uji stres, sesuaikan parameter compute node PolarDB-X.

  1. Atur parameter XPROTO_MAX_DN_CONCURRENT menjadi 4000. Untuk petunjuk lengkap, lihat Parameter settings.

  2. Hubungkan ke instans PolarDB-X menggunakan command-line interface (CLI). Dalam sesi yang sama, jalankan pernyataan SQL berikut untuk menonaktifkan pencatatan SQL, pengambilan sampel CPU, dan pengumpulan statistik otomatis.

    set global RECORD_SQL = false;
    set global MPP_METRIC_LEVEL = 0;
    set global ENABLE_CPU_PROFILE = false;
    set global ENABLE_BACKGROUND_STATISTIC_COLLECTION=false;
    set global ENABLE_STATISTIC_FEEDBACK=false;

Langkah 4: Instal tool Benchmark Boot

  1. Buka port 4121 di security group instans ECS untuk uji stres. Untuk informasi lebih lanjut, lihat Add a security group rule.

  2. Login ke instans ECS untuk uji stres dan jalankan perintah bash -c "$(curl -fsSL https://benchmark-boot.oss-cn-hangzhou.aliyuncs.com/setup.sh)" untuk menginstal Benchmark Boot. Untuk informasi lebih lanjut, lihat Download and install Benchmark Boot.

  3. Buka browser Anda dan akses http://{alamat IP publik instans uji stres}:4121. Halaman utama Benchmark Boot akan muncul, yang menandakan instalasi berhasil.

Langkah 5: Persiapkan data

  1. Di konsol Benchmark Boot, navigasi ke Stress Test > Database Connection > Configure Database Connection. Konfigurasikan string koneksi PolarDB-X (alamat IP host, port, username, dan password). Masukkan nama database TPC-H, pilih AUTO untuk Database Creation Mode, lalu klik Submit.

  2. Navigasi ke Stress Test > TPCH > Import TPC-H. Atur nilai Submit pertama ke 100 dan nilai Submit kedua ke 16. Klik Submit untuk mengimpor set data TPC-H 100 GB ke instans utama PolarDB-X.

    Catatan

    Setelah data diimpor, Benchmark Boot secara otomatis menjalankan pernyataan ANALYZE TABLE untuk mengumpulkan statistik.

  3. Setelah dataset TPC-H 100 GB diimpor, jalankan pernyataan SQL berikut pada instans primary PolarDB-X untuk membuat clustered columnar index (CCI). Untuk informasi lebih lanjut, lihat Create and use CCIs.

    create clustered columnar index `nation_col_index` on nation(`n_nationkey`) partition by hash(`n_nationkey`) partitions 1;
    
    create clustered columnar index `region_col_index` on region(`r_regionkey`) partition by hash(`r_regionkey`) partitions 1;
    
    create clustered columnar index `customer_col_index` on customer(`c_custkey`) partition by hash(`c_custkey`) partitions 64;
    
    create clustered columnar index `part_col_index` on part(`p_size`) partition by hash(`p_partkey`) partitions 64;
    
    create clustered columnar index `partsupp_col_index` on partsupp(`ps_partkey`) partition by hash(`ps_partkey`) partitions 64;
    
    create clustered columnar index `supplier_col_index` on supplier(`s_suppkey`) partition by hash(`s_suppkey`) partitions 64;
    
    create clustered columnar index `orders_col_index` on orders(`o_orderdate`,`o_orderkey`) partition by hash(`o_orderkey`) partitions 64;
    
    create clustered columnar index `lineitem_col_index` on lineitem(`l_shipdate`,`l_orderkey`) partition by hash(`l_orderkey`) partitions 64;
    Catatan
    • Anda dapat menjalankan pernyataan SHOW COLUMNAR INDEX untuk melihat status CCI saat ini. Untuk informasi lebih lanjut, lihat SHOW COLUMNAR INDEX.

    • Pembuatan CCI memerlukan waktu sekitar 45 menit.

Langkah 6: Tambahkan instans column store read-only

Tambahkan instans column store read-only ke instans primary PolarDB-X. Untuk petunjuk lengkap, lihat Add a read-only column store instance.

Catatan

Tambahkan alamat IP internal instans ECS untuk uji stres ke daftar putih instans column store read-only PolarDB-X.

Langkah 7: Jalankan uji TPC-H

  1. Di konsol Benchmark Boot, navigasi ke Stress Test > Database Connection > Configure Database Connection. Konfigurasikan string koneksi untuk instans column store read-only, masukkan nama database TPC-H, pilih AUTO untuk Database Creation Mode, lalu klik Submit.

  2. Navigasi ke Stress Test > TPCH > Run TPCH. Pilih Submit, masukkan deskripsi tugas, lalu klik Submit untuk menjalankan 22 kueri benchmark TPC-H.

  3. Navigasi ke Test Result > TPCH untuk melihat hasil akhir pengujian.

    Catatan

    Eksekusi benchmark pertama memerlukan warm-up. Untuk hasil yang stabil, kami merekomendasikan menjalankan pengujian beberapa kali.

Hasil Pengujian

Semua waktu eksekusi dalam satuan detik (s).

Kueri

8c32g * 2

8c32g * 4

16c64g * 2

16c64g * 3

16c64g * 4

16c64g * 6

Q1

5,9

3,99

4,37

1,6

1,22

0,86

Q2

2,41

1,68

1,63

1,15

1,04

0,86

Q3

4,18

2,13

2,43

1,77

1,20

0,88

Q4

3,72

1,02

0,94

0,78

0,48

0,44

Q5

5,63

3,12

3,27

2,05

1,68

1,4

Q6

0,41

0,38

0,42

0,18

0,15

0,13

Q7

5,47

2,94

2,93

2,08

1,72

1,34

Q8

3,61

2,31

1,98

1,81

1,68

1,51

Q9

13,6

6,91

7,46

4,93

3,85

3.11

Q10

6,36

3,12

3,5

2,31

1,73

1,26

Q11

1,51

0,64

0,74

0,53

0,49

0,35

Q12

1,86

0,82

0,78

0,57

0,40

0,35

Q13

8,85

4,29

4,44

2,6

1,64

1,2

Q14

0,94

0,58

0,7

0,51

0,38

0,31

Q15

1,26

0,76

0,88

0,59

0,47

0,37

Q16

2,3

1

1,19

0,75

0,61

0,46

Q17

1,86

0,75

0,69

0,47

0,43

0,49

Q18

8,43

4,18

4,43

3,16

2,19

1,6

Q19

4,92

2,16

1,86

1,07

1,02

0,73

Q20

1,88

1,34

1,17

0,73

0,78

0,73

Q21

12,05

3,18

3.11

2,38

1,72

1,57

Q22

2,67

1,25

1,39

0,98

0,66

0,61

Total time

99,82

48,55

50,31

33,00

25,54

20,56