测试说明

本文为您介绍如何使用TPC-DS对OLAP查询场景进行性能测试。

TPC-DS简介

TPC-DS是全球最知名的数据管理系统评测基准标准化组织TPC(事务性管理委员会)制定的标准规范,并由TPC管理测试结果的发布。

本次测试遵循TPC-DS规范构建了24张表,基准测试共包含99个复杂查询,主要的评价指标为各个查询的响应时间,即从提交查询到结果返回所需时间。

说明

本文的TPC-DS的实现基于TPC-DS的基准测试,并不能与已发布的TPC-DS基准测试结果相比较,本文中的测试并不符合TPC-DS的基准测试的所有要求。

准备工作

您需要准备OLAP查询场景所需的基础环境和TPC-DS数据。

说明

为了减少可能对测试结果有影响的变量,建议每次使用新创建的实例进行测试,不要使用升降配的实例。

操作步骤

操作说明

  1. 创建ECS实例

登录阿里云,创建一个ECS实例,用于数据生成、向StarRocks导入数据和客户端测试。建议规格具体如下:

  • 操作系统:建议使用CentOS或Alibaba Cloud Linux。

  • 数据盘:建议使用ESSD数据盘,具体数据容量根据需要测试的数据量大小决定。

  • 地域和VPC:建议确保ECS和StarRocks实例在相同地域,并使用相同的VPC网络进行连接。

  • 公网IP:需要分配公网IP地址。

更多关于创建ECS的操作,请参见实例创建方式介绍

  1. 创建StarRocks实例

本次测试BE计算资源配置选择了8 CU(即8核32 GB)。您可以根据实际业务需求,选择计算资源配置。

登录阿里云,进入E-MapReduce控制台的EMR Serverless StarRocks页面,单击创建实例

更多关于创建StarRocks实例的操作,请参见创建实例

  1. 下载starrocks-benchmark测试工具包并解压

您需要登录步骤1中创建的ECS实例,在节点上执行如下命令下载测试工具包。

sudo wget https://starrocks-oss.oss-cn-beijing.aliyuncs.com/public-access/starrocks-tpcds-benchmark-for-serverless.zip
sudo yum install -y unzip
unzip starrocks-tpcds-benchmark-for-serverless.zip

操作步骤

步骤一:配置测试工具包

  1. 登录已创建的ECS实例,详情请参见连接ECS实例

  2. 执行以下命令,进入测试工具包目录。

    cd tpcds-poc-1.0
  3. 执行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