文档

SSB性能测试说明

更新时间:

本文为您介绍如何使用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查询场景所需的基础环境。

说明

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

操作步骤

操作说明

  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-ssb-benchmark-for-serverless.tar.gz
tar xzvf starrocks-ssb-benchmark-for-serverless.tar.gz

操作步骤

步骤一:配置测试工具包

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

  2. 执行以下命令,进入starrocks-ssb-benchmark-for-serverless目录。

    cd starrocks-ssb-benchmark-for-serverless
  3. 执行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
  • 本页导读 (1)