测试方案介绍

最近更新时间:2024-07-04 17:00:11

我的收藏
本文为您介绍如何使用 Star Schema 数据集对腾讯云数据仓库 TCHouse-D 进行性能测试,给出数据导入及性能测试的参考方案。

关于 SSB 性能测试

SSB(Star Schema Benchmark)是一个轻量级的数仓场景下的性能测试集。SSB 基于TPC-H 提供了一个简化版的星型模型数据集,主要用于测试在星型模型下,多表关联查询的性能表现。另外,业界内通常也会将 SSB 打平为宽表模型(以下简称:SSB FLAT),来测试查询引擎的性能。

测试方案介绍

测试环境准备

硬件环境

在本文给出的参考方案中,所测试的集群包含 FE 1台、BE 3台 , FE/BE 节点进程均为单独部署,具体规格如下所示。需要特别说明的是,实际测试中不会消耗如此多的硬件资源。
节点类型
节点规格
FE 1台 标准型
CPU:4 cores
内存:16 GB
磁盘:增强型 SSD 云硬盘200 GB
BE 3台 标准型
CPU:16 cores
内存:64 GB
磁盘:增强型 SSD 云硬盘1000 GB

软件版本

腾讯云 TChouse-D 1.2.7

测试脚本准备

工具包地址下载 SSB 工具包并编译

测试 SSB 数据集

生成数据集

sh bin/gen-ssb-data.sh -s 100 -c 100

277M /data/ssb-tools/bin/ssb-data//customer.tbl
228K /data/ssb-tools/bin/ssb-data//date.tbl
5.9G /data/ssb-tools/bin/ssb-data//lineorder.tbl.1
7.7G /data/ssb-tools/bin/ssb-data//lineorder.tbl.10
7.6G /data/ssb-tools/bin/ssb-data//lineorder.tbl.2
7.2G /data/ssb-tools/bin/ssb-data//lineorder.tbl.3
6.0G /data/ssb-tools/bin/ssb-data//lineorder.tbl.4
6.0G /data/ssb-tools/bin/ssb-data//lineorder.tbl.5
6.0G /data/ssb-tools/bin/ssb-data//lineorder.tbl.6
6.0G /data/ssb-tools/bin/ssb-data//lineorder.tbl.7
7.4G /data/ssb-tools/bin/ssb-data//lineorder.tbl.8
7.5G /data/ssb-tools/bin/ssb-data//lineorder.tbl.9
116M /data/ssb-tools/bin/ssb-data//part.tbl
17M /data/ssb-tools/bin/ssb-data//supplier.tbl
在 -s 100 参数下,生成的数据集大小为:
SSB 表名
行数
备注
LINEORDER
600,037,902
商品订单明细表
CUSTOMER
3,000,000
客户信息表
PART
1,400,000
零件信息表
SUPPLIER
200,000
供应商信息表
DATE
2,556
日期表

建表

修改 doris-cluster.conf 配置文件 vim conf/doris-cluster.conf。
修改配置:FE_HOST、PASSWORD、DB。
# cat doris-cluster.conf

# Any of FE host
export FE_HOST='127.0.0.1'
# http_port in fe.conf
export FE_HTTP_PORT=8030
# query_port in fe.conf
export FE_QUERY_PORT=9030
# Doris username
export USER='root'
# Doris password
export PASSWORD=''
# The database where SSB tables located
export DB='ssb_100g'
# The scale of testing data
export SCALE='100g' # only support '100g' or '1t'
建表:
sh bin/create-ssb-tables.sh

导入数据

sh bin/load-ssb-data.sh

检查导入数据

selectcount(*)from part;
selectcount(*)from customer;
selectcount(*)from supplier;
selectcount(*)fromdate;
selectcount(*)from lineorder;
selectcount(*)from lineorder_flat;
数据量应和生成数据的行数一致。

查询

查询 SSB 表
# sh bin/run-ssb-queries.sh
q1.1: 46
q1.2: 29
q1.3: 26
q2.1: 340
q2.2: 273
q2.3: 257
q3.1: 542
q3.2: 237
q3.3: 297
q3.4: 57
q4.1: 732
q4.2: 372
q4.3: 483
total time: 3691 ms
查询 FLAT 表
# sh bin/run-ssb-flat-queries.sh
q1.1: 26
q1.2: 10
q1.3: 35
q2.1: 85
q2.2: 83
q2.3: 60
q3.1: 157
q3.2: 78
q3.3: 75
q3.4: 13
q4.1: 131
q4.2: 49
q4.3: 33
total time: 835 ms
由此,即完成了 SSB 数据生成、建表、导入和查询。