本文为您介绍如何使用Star Schema Benchmark(简称SSB)对OLAP查询场景进行性能测试。
SSB简介
SSB是一种用于评估数据仓库和OLAP系统性能的基准测试。它模拟了一个典型的星型模式(Star Schema)数据模型,包含了Date(日期表)、Customer(客户表)、Supplier(供应商表)、Part(产品表)和Lineorder(订单事实表)这五个表格。此外,SSB允许您根据具体需求对数据模型进行自定义,例如将星型模式转换为宽表结构。
SSB基准测试是通过执行一系列规定的查询模式来评估数据仓库或OLAP系统的性能指标,包括查询响应时间、并发处理能力、数据加载和查询优化等。
本文的SSB的实现基于SSB的基准测试,并不能与已发布的SSB基准测试结果相比较。
场景说明
本测试场景中SSB的生成工具中使用SF(scale factor)控制生成数据量的大小,1SF对应1 GB。
以上数据量仅针对原始数据的数据量,不包括索引等空间占用,因此在准备环境时,您需要预留更多的空间。
准备工作
您需要准备OLAP查询场景所需的基础环境。
为了减少可能对测试结果有影响的变量,建议每次使用新创建的实例进行测试,不要使用升降配的实例。
操作步骤 | 操作说明 |
| 登录阿里云,创建一个ECS实例,用于数据生成、向StarRocks导入数据和客户端测试。建议规格具体如下:
更多关于创建ECS的操作,请参见实例创建方式介绍。 |
| 本次测试BE计算资源配置选择了8 CU(即8核32 GB)。您可以根据实际业务需求,选择计算资源配置。 登录阿里云,进入E-MapReduce控制台的EMR Serverless StarRocks页面,单击创建实例。 更多关于创建StarRocks实例的操作,请参见创建实例。 |
| 您需要登录步骤1中创建的ECS实例,在节点上执行如下命令下载测试工具包。
|
操作步骤
步骤一:配置测试工具包
登录已创建的ECS实例,详情请参见连接ECS实例。
执行以下命令,进入starrocks-ssb-benchmark-for-serverless目录。
cd starrocks-ssb-benchmark-for-serverless
执行
vim conf/starrocks.conf
命令,根据实际情况修改以下参数。# 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 #是否开启bitmap_index bitmap_index: false # benchmark config scale_factor: 1 dataset_generate_root_path: /mnt/disk1/starrocks-benchmark/datasets
参数详细描述如下表所示。
参数
说明
mysql_host
StarRocks实例中FE的内网地址。
您可以在StarRocks实例的实例详情页签的FE详情区域,查看内网地址。
重要不建议使用公网地址。
mysql_port
StarRocks实例中FE的服务端口,默认为9030。
您可以在StarRocks实例的实例详情页签的FE详情区域,查看查询端口。
mysql_user
StarRocks实例的用户。默认为admin。
mysql_password
StarRocks实例用户的密码。
database
StarRocks实例创建的数据库名称,使用默认值即可。
scale_factor
数据集的比例因子,控制生成数据量的大小。默认值为1,单位为GB。
重要创建实例时请关注云盘的容量,避免生成数据集大小超过云盘容量。
dataset_generate_root_path
存放生成测试数据集的路径。默认值为/mnt/disk1/starrocks-benchmark/datasets。
bitmap_index
是否启用Bitmap Index功能。取值为true和false。
启用Bitmap Index功能可以提供更高效的查询性能,尤其对于一些特定的查询模式(例如Q2.2,Q2.3,Q3.3等)。
http_port
StarRocks实例中FE的HTTP端口,默认为8030。
您可以在StarRocks实例的实例详情页签的FE详情区域,查看HTTP端口。
步骤二:生成测试数据
执行以下命令,进行自动化SSB数据加载。
sh ssb_dataload.sh
该命令将自动完成SSB数据加载过程,包括数据库、表和数据集的生成以及加载。
步骤三:执行查询并查看测试结果
通过执行以下命令,您可以方便地查看SSB测试的概览结果,并在当前目录下生成result.csv文件,您可以了解测试结果的更多信息。
SSB宽表查询。
sh ssb_query.sh ssb-flat
返回如下信息。
SQL Time(ms) Q1.1 48 Q1.2 62 Q1.3 33 Q2.1 91 Q2.2 93 Q2.3 84 Q3.1 84 Q3.2 69 Q3.3 68 Q3.4 55 Q4.1 112 Q4.2 102 Q4.3 80 Total 981
SSB标准表查询。
sh ssb_query.sh ssb
返回如下信息。
SQL Time(ms) Q1.1 13 Q1.2 20 Q1.3 13 Q2.1 20 Q2.2 20 Q2.3 23 Q3.1 23 Q3.2 23 Q3.3 20 Q3.4 23 Q4.1 30 Q4.2 36 Q4.3 30 Total 294