Le Star Schema Benchmark (SSB) est un outil standard de l'industrie pour évaluer les performances des requêtes OLAP dans les entrepôts de données. Cette rubrique explique comment exécuter un test de performance SSB sur EMR Serverless StarRocks.
L'implémentation SSB présentée dans cette rubrique repose sur le benchmark SSB. Les résultats ne sont pas comparables aux résultats publiés du benchmark SSB.
Résultats de référence
Les résultats suivants ont été mesurés sur une instance de 8 CU (8 cœurs, 32 Go de mémoire). Chaque valeur représente le temps de réponse de la requête en millisecondes. Plus la valeur est faible, meilleures sont les performances.
Environnement de test
| Composant | Spécification |
|---|---|
| Unités de calcul (CU) | 8 CU (8 cœurs, 32 Go de mémoire) |
| Facteur d'échelle | 1 (1 Go de données brutes) |
Requête de table large SSB (mode ssb-flat)
| Requête | Temps (ms) |
|---|---|
| Q1,1 | 26 |
| Q1,2 | 13 |
| Q1,3 | 20 |
| Q2,1 | 46 |
| Q2,2 | 40 |
| Q2,3 | 26 |
| Q3,1 | 40 |
| Q3,2 | 33 |
| Q3,3 | 30 |
| Q3,4 | 23 |
| Q4,1 | 26 |
| Q4,2 | 30 |
| Q4,3 | 20 |
| Total | 373 |
Requête de table standard SSB (mode ssb)
| Requête | Temps (ms) |
|---|---|
| Q1,1 | 26 |
| Q1,2 | 20 |
| Q1,3 | 23 |
| Q2,1 | 103 |
| Q2,2 | 53 |
| Q2,3 | 50 |
| Q3,1 | 86 |
| Q3,2 | 46 |
| Q3,3 | 46 |
| Q3,4 | 36 |
| Q4,1 | 83 |
| Q4,2 | 63 |
| Q4,3 | 53 |
| Total | 688 |
Présentation de SSB
SSB simule un modèle de données en étoile typique composé de cinq tables : Date, Customer, Supplier, Part et Lineorder. Il évalue les métriques de performance suivantes d'un entrepôt de données ou d'un système OLAP :
Temps de réponse des requêtes
Traitement simultané
Chargement des données
Optimisation des requêtes
SSB permet également de personnaliser le modèle de données, par exemple en aplatissant le schéma en étoile en une table large afin de réduire la surcharge liée aux jointures.
L'outil de génération SSB utilise un facteur d'échelle (SF) pour contrôler le volume de données : 1 SF correspond à 1 Go de données brutes. Le stockage des index n'est pas inclus ; prévoyez donc de l'espace disque supplémentaire lors de la configuration de votre environnement.
Prérequis
Avant de commencer, assurez-vous de disposer des éléments suivants :
Une instance Elastic Compute Service (ECS) pour générer les données, les charger dans StarRocks et exécuter les requêtes client
Une instance EMR Serverless StarRocks
Configuration requise pour l'instance ECS
| Exigence | Détails |
|---|---|
| Système d'exploitation | CentOS ou Alibaba Cloud Linux |
| Disque de données | SSD amélioré (ESSD) ; capacité adaptée au volume de données cible |
| Réseau | Même région et même Virtual Private Cloud (VPC) que l'instance StarRocks |
| IP publique | Requise |
Pour obtenir des instructions sur la création d'une instance ECS, consultez Créer une instance.
Configuration requise pour l'instance StarRocks
Les résultats de référence présentés dans cette rubrique ont été obtenus avec 8 CU (8 cœurs, 32 Go de mémoire). Ajustez les ressources de calcul en fonction de vos besoins de test.
Pour créer une instance StarRocks, accédez à la console E-MapReduce, accédez à EMR Serverless StarRocks, puis cliquez sur Create Instance. Pour des instructions détaillées, consultez Créer une instance.
Utilisez une instance nouvellement créée pour chaque exécution de test. Les instances ayant fait l'objet d'une mise à niveau ou d'une rétrogradation peuvent produire des résultats incohérents.
Exécuter le test de performance SSB
Étape 1 : Télécharger et configurer la boîte à outils de test
Connectez-vous à l'instance ECS. Consultez Se connecter à une instance ECS.
-
Téléchargez et extrayez la boîte à outils de test.
sudo wget https://starrocks-oss.oss-cn-beijing.aliyuncs.com/public-access/starrocks-ssb-benchmark-for-serverless.tar.gz tar xzvf starrocks-ssb-benchmark-for-serverless.tar.gz -
Accédez au répertoire de la boîte à outils.
cd starrocks-ssb-benchmark-for-serverless -
Ouvrez le fichier de configuration.
vim conf/starrocks.conf -
Mettez à jour les paramètres selon votre environnement.
# for mysql cmd mysql_host: fe-c-7b6f92276******-internal.starrocks.aliyuncs.com mysql_port: 9030 mysql_user: admin mysql_password: 1**** database: ssb_sf # cluster ports http_port: 8030 # Specifies whether to enable the bitmap index. bitmap_index: false # benchmark config scale_factor: 1 dataset_generate_root_path: /mnt/disk1/starrocks-benchmark/datasetsParamètre Description Valeur par défaut mysql_hostEndpoint interne du frontend (FE). Vous le trouverez dans l'onglet Instance Details sous Gateway Information > Internal endpoint. — mysql_portPort de requête du FE. Vous le trouverez dans l'onglet Instance Details sous FE Details > Query Port. 9030mysql_userUtilisateur de l'instance StarRocks. adminmysql_passwordMot de passe de l'utilisateur de l'instance StarRocks. — databaseNom de la base de données à créer dans l'instance StarRocks. ssb_sfscale_factorVolume de données en Go. 1 = 1 Go de données brutes. Assurez-vous que votre disque dispose d'une capacité suffisante pour l'ensemble de données généré. 1dataset_generate_root_pathChemin local où l'ensemble de données de test généré est stocké. /mnt/disk1/starrocks-benchmark/datasetsbitmap_indexIndique s'il faut activer la fonctionnalité Index Bitmap. L'activation améliore les performances des requêtes pour certains modèles, en particulier Q2.2, Q2.3 et Q3.3. falsehttp_portPort HTTP du FE. Vous le trouverez dans l'onglet Instance Details sous FE Details > HTTP Port. 8030ImportantDéfinissez
mysql_hostsur l'endpoint interne, et non sur l'endpoint public.
Étape 2 : Générer et charger les données de test
Exécutez la commande suivante pour créer la base de données, les tables et l'ensemble de données, puis charger les données dans StarRocks.
sh ssb_dataload.sh
Étape 3 : Exécuter les requêtes et consulter les résultats
Exécutez les requêtes en utilisant l'un des modes suivants. Un aperçu est affiché dans le terminal, et un fichier result.csv contenant tous les détails est enregistré dans le répertoire actuel.
-
Mode table large — interroge la table plate pré-jointe :
sh ssb_query.sh ssb-flat -
Mode standard — interroge les tables originales du schéma en étoile :
sh ssb_query.sh ssb
Chaque valeur de la sortie représente le temps de réponse de la requête en millisecondes. Des valeurs plus faibles indiquent de meilleures performances.
Étapes suivantes
Ajustez
scale_factordansconf/starrocks.confpour tester avec des volumes de données plus importants et observer l'évolution des performances.Activez
bitmap_index: trueet relancez le benchmark pour mesurer l'impact de la fonctionnalité Index Bitmap sur Q2.2, Q2.3 et Q3.3.