Tous les produits
Search
Centre de documentation

PolarDB:Test TPC-H pour l'index columnar clusterisé (100 Go)

Dernière mise à jour :Aug 11, 2026

Cette rubrique détaille la conception, la procédure et les résultats d'un test de benchmark TPC-H portant sur l'index columnar clusterisé (CCI) de PolarDB-X.

Contexte

TPC-H est un benchmark d'aide à la décision établi par le Transaction Processing Performance Council (TPC) pour évaluer les capacités de requête analytique des bases de données. La charge de travail TPC-H comprend huit tables et 22 requêtes SQL complexes, impliquant principalement des jointures de tables, des sous-requêtes et des agrégations GROUP BY.

Remarque

L'implémentation TPC-H décrite dans cette rubrique s'appuie sur le benchmark officiel TPC-H. Toutefois, ce test ne satisfait pas à toutes les exigences officielles et ses résultats ne sont pas comparables aux résultats de benchmark TPC-H publiés.

Conception du test

Taille du jeu de données

Ce test utilise un jeu de données de 100 Go (Scale Factor = 100). Les principales tables sont :

  • LINEITEM : environ 600 millions de lignes

  • ORDERS : 150 millions de lignes

  • PART_SUPP : 80 millions de lignes

Spécifications des instances de test

Spécification du nœud

Nombre de nœuds

Taille du jeu de données

8c32g

2/4

100 Go

16c64g

2/3/4/6

100 Go

Spécification de l'instance de test de charge

ecs.g7.4xlarge (16 vCPU, 64 Go de mémoire)

Procédure

Étape 1 : Préparer l'instance ECS de test de charge

Préparez une instance ECS. Vous utiliserez cette instance pour toutes les opérations ultérieures, telles que l'importation des données et l'exécution du test de charge.

Remarque
  • Déployez l'instance ECS dans un VPC. Notez le nom et l'ID du VPC, car toutes les instances suivantes doivent être déployées dans ce même VPC.

  • Nous vous recommandons d'utiliser le système d'exploitation CentOS pour l'instance ECS et de lui attribuer une adresse IP publique.

Étape 2 : Préparer l'instance PolarDB-X****

Créez une instance PolarDB-X. Pour plus d'informations, consultez Créer une instance.

Remarque
  • Assurez-vous que l'instance PolarDB-X et l'instance ECS de test de charge se trouvent dans le même VPC.

  • Ajoutez l'adresse IP interne de l'instance ECS de test de charge à la liste d'autorisation de l'instance PolarDB-X.

Étape 3 : Ajuster les paramètres de l'instance

Remarque

Pour obtenir des performances optimales lors du test de charge, ajustez les paramètres des nœuds de calcul PolarDB-X.

  1. Définissez le paramètre XPROTO_MAX_DN_CONCURRENT sur 4000. Pour plus d'informations, consultez Paramétrage.

  2. Connectez-vous à l'instance PolarDB-X via une interface de ligne de commande (CLI). Dans la même session, exécutez les instructions SQL suivantes pour désactiver la journalisation SQL, l'échantillonnage CPU et la collecte automatique de statistiques.

    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;

Étape 4 : Installer l'outil Benchmark Boot

  1. Ouvrez le port 4121 dans le groupe de sécurité de l'instance ECS de test de charge. Pour plus d'informations, consultez Ajouter une règle de groupe de sécurité.

  2. Connectez-vous à l'instance ECS de test de charge et exécutez la commande bash -c "$(curl -fsSL https://benchmark-boot.oss-cn-hangzhou.aliyuncs.com/setup.sh)" pour installer Benchmark Boot. Pour plus d'informations, consultez Télécharger et installer Benchmark Boot.

  3. Dans votre navigateur, ouvrez http://{adresse IP publique de l'instance de test de charge}:4121. La page d'accueil de Benchmark Boot s'affiche, confirmant la réussite de l'installation.

Étape 5 : Préparer les données

  1. Dans la console Benchmark Boot, accédez à Stress Test > Database Connection > Configure Database Connection. Configurez la chaîne de connexion PolarDB-X (adresse IP de l'hôte, port, nom d'utilisateur et mot de passe). Saisissez le nom de la base de données TPC-H, sélectionnez AUTO pour Database Creation Mode, puis cliquez sur Submit.

  2. Accédez à Stress Test > TPCH > Import TPC-H. Définissez Submit sur 100 et Submit sur 16. Cliquez sur Submit pour importer le jeu de données TPC-H de 100 Go vers l'instance principale PolarDB-X.

    Remarque

    Une fois les données importées, Benchmark Boot exécute automatiquement l'instruction ANALYZE TABLE pour collecter les statistiques.

  3. Après l'importation du jeu de données TPC-H de 100 Go, exécutez les instructions SQL suivantes sur l'instance principale PolarDB-X pour créer des index columnar clusterisés (CCI). Pour plus d'informations, consultez Créer et utiliser des CCI.

    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;
    Remarque
    • Exécutez l'instruction SHOW COLUMNAR INDEX pour consulter l'état actuel des CCI. Pour plus d'informations, consultez SHOW COLUMNAR INDEX.

    • La création des CCI prend environ 45 minutes.

Étape 6 : Ajouter une instance de stockage en colonnes en lecture seule

Ajoutez une instance de stockage en colonnes en lecture seule à l'instance principale PolarDB-X. Pour plus d'informations, consultez Ajouter une instance de stockage en colonnes en lecture seule.

Remarque

Ajoutez l'adresse IP interne de l'instance ECS de test de charge à la liste d'autorisation de l'instance de stockage en colonnes en lecture seule PolarDB-X.

Étape 7 : Exécuter le test TPC-H

  1. Dans la console Benchmark Boot, accédez à Stress Test > Database Connection > Configure Database Connection. Configurez la chaîne de connexion pour l'instance de stockage en colonnes en lecture seule, saisissez le nom de la base de données TPC-H, sélectionnez AUTO pour Database Creation Mode, puis cliquez sur Submit.

  2. Accédez à Stress Test > TPCH > Run TPCH. Sélectionnez Submit, saisissez une description de tâche, puis cliquez sur Submit pour exécuter les 22 requêtes du benchmark TPC-H.

  3. Accédez à Test Result > TPCH pour consulter les résultats finaux du test.

    Remarque

    La première exécution du benchmark nécessite une phase de chauffe. Pour obtenir des résultats stables, nous vous recommandons d'exécuter le test plusieurs fois.

Résultats du test

Tous les temps d'exécution sont exprimés en secondes (s).

Requête

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

Temps total

99,82

48,55

50,31

33,00

25,54

20,56