本文为您介绍如何使用TPC-DS对OLAP查询场景进行性能测试。
TPC-DS简介
TPC-DS是全球最知名的数据管理系统评测基准标准化组织TPC(事务性管理委员会)制定的标准规范,并由TPC管理测试结果的发布。
本次测试遵循TPC-DS规范构建了24张表,基准测试共包含99个复杂查询,主要的评价指标为各个查询的响应时间,即从提交查询到结果返回所需时间。
本文的TPC-DS的实现基于TPC-DS的基准测试,并不能与已发布的TPC-DS基准测试结果相比较,本文中的测试并不符合TPC-DS的基准测试的所有要求。
准备工作
您需要准备OLAP查询场景所需的基础环境和TPC-DS数据。
为了减少可能对测试结果有影响的变量,建议每次使用新创建的实例进行测试,不要使用升降配的实例。
操作步骤 | 操作说明 |
| 登录阿里云,创建一个ECS实例,用于数据生成、向StarRocks导入数据和客户端测试。建议规格具体如下:
更多关于创建ECS的操作,请参见实例创建方式介绍。 |
| 本次测试BE计算资源配置选择了8 CU(即8核32 GB)。您可以根据实际业务需求,选择计算资源配置。 登录阿里云,进入E-MapReduce控制台的EMR Serverless StarRocks页面,单击创建实例。 更多关于创建StarRocks实例的操作,请参见创建实例。 |
| 您需要登录步骤1中创建的ECS实例,在节点上执行如下命令下载测试工具包。
|
操作步骤
步骤一:配置测试工具包
登录已创建的ECS实例,详情请参见连接ECS实例。
执行以下命令,进入测试工具包目录。
cd tpcds-poc-1.0
执行
vim conf/starrocks.conf
命令,根据实际情况修改以下参数。# for mysql cmd mysql_host: fe-c-***-internal.starrocks.aliyuncs.com mysql_port: 9030 mysql_user: admin mysql_password: **** database: tpcds # cluster ports http_port: 8030 be_heartbeat_port: 9050 broker_port: 8000 # benchmark config scale_factor: 3 dataset_generate_path: /mnt/disk1/starrocks-tpcds-benchmark/datasets
参数详细描述如下表所示。
参数
说明
mysql_host
StarRocks实例中FE的内网地址。
您可以在StarRocks实例的实例详情页签的FE详情区域,查看内网地址。
重要不建议使用公网地址。
mysql_port
StarRocks实例中FE的服务端口,默认为9030。
您可以在StarRocks实例的实例详情页签的FE详情区域,查看查询端口。
mysql_user
StarRocks实例的用户。默认为admin。
mysql_password
StarRocks实例用户的密码。
database
StarRocks实例创建的数据库名称,使用默认值即可。
http_port
StarRocks实例中FE的HTTP端口,默认为8030。
您可以在StarRocks实例的实例详情页签的FE详情区域,查看HTTP端口。
scale_factor
数据集的比例因子,控制生成数据量的大小。默认值为3,单位为GB。
重要创建实例时请关注云盘的容量,避免生成数据集大小超过云盘容量。
dataset_generate_root_path
存放生成测试数据集的路径。默认值为/mnt/disk1/starrocks-benchmark/datasets。
步骤二:执行测试
执行以下命令,进行自动化TPC-DS数据加载,此过程会创建数据库、表、数据集并加载数据,同时也包括执行查询操作。
cd bin
sh run_tpcds.sh
您还可以根据实际需求执行以下操作:
单独执行查询操作。
sh run_tpcds.sh query
重新生成测试数据。
sh run_tpcds.sh gen_data
如果
gen_data
目录已生成,并需要重新导入测试数据,可执行以下命令进行刷新操作。sh run_tpcds.sh reload
步骤三:查看测试结果
查询命令执行完毕后将直接输出测试结果。成功执行针对tpcds3数据库的SQL查询测试,得到99个查询的执行时间结果如下所示。
查询的数据库名称:tpcds3
SQL Time(ms)
Query01 34
Query02 36
Query03 26
Query04 57
Query05 40
Query06 29
Query07 35
Query08 33
Query09 31
Query10 33
Query11 45
Query12 26
Query13 31
Query14 91
Query15 29
Query16 50
Query17 36
Query18 33
Query19 31
Query20 32
Query21 32
Query22 33
Query23 67
Query24 39
Query25 32
Query26 36
Query27 32
Query28 32
Query29 33
Query30 37
Query31 46
Query32 32
Query33 52
Query34 33
Query35 35
Query36 30
Query37 31
Query38 37
Query39 33
Query40 36
Query41 34
Query42 25
Query43 31
Query44 30
Query45 27
Query46 33
Query47 50
Query48 36
Query49 49
Query50 38
Query51 30
Query52 26
Query53 32
Query54 32
Query55 27
Query56 49
Query57 41
Query58 37
Query59 37
Query60 48
Query61 32
Query62 42
Query63 34
Query64 130
Query65 29
Query66 87
Query67 31
Query68 33
Query69 40
Query70 34
Query71 29
Query72 32
Query73 28
Query74 40
Query75 48
Query76 28
Query77 40
Query78 36
Query79 29
Query80 120
Query81 36
Query82 28
Query83 39
Query84 26
Query85 37
Query86 28
Query87 32
Query88 46
Query89 32
Query90 28
Query91 32
Query92 35
Query93 29
Query94 65
Query95 57
Query96 27
Query97 29
Query98 25
Query99 38
All time(ms): 3799