本文为您介绍如何使用 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 数据集
生成数据集
sh bin/gen-ssb-data.sh -s 100 -c 100277M /data/ssb-tools/bin/ssb-data//customer.tbl228K /data/ssb-tools/bin/ssb-data//date.tbl5.9G /data/ssb-tools/bin/ssb-data//lineorder.tbl.17.7G /data/ssb-tools/bin/ssb-data//lineorder.tbl.107.6G /data/ssb-tools/bin/ssb-data//lineorder.tbl.27.2G /data/ssb-tools/bin/ssb-data//lineorder.tbl.36.0G /data/ssb-tools/bin/ssb-data//lineorder.tbl.46.0G /data/ssb-tools/bin/ssb-data//lineorder.tbl.56.0G /data/ssb-tools/bin/ssb-data//lineorder.tbl.66.0G /data/ssb-tools/bin/ssb-data//lineorder.tbl.77.4G /data/ssb-tools/bin/ssb-data//lineorder.tbl.87.5G /data/ssb-tools/bin/ssb-data//lineorder.tbl.9116M /data/ssb-tools/bin/ssb-data//part.tbl17M /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 hostexport FE_HOST='127.0.0.1'# http_port in fe.confexport FE_HTTP_PORT=8030# query_port in fe.confexport FE_QUERY_PORT=9030# Doris usernameexport USER='root'# Doris passwordexport PASSWORD=''# The database where SSB tables locatedexport DB='ssb_100g'# The scale of testing dataexport 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.shq1.1: 46q1.2: 29q1.3: 26q2.1: 340q2.2: 273q2.3: 257q3.1: 542q3.2: 237q3.3: 297q3.4: 57q4.1: 732q4.2: 372q4.3: 483total time: 3691 ms
查询 FLAT 表
# sh bin/run-ssb-flat-queries.shq1.1: 26q1.2: 10q1.3: 35q2.1: 85q2.2: 83q2.3: 60q3.1: 157q3.2: 78q3.3: 75q3.4: 13q4.1: 131q4.2: 49q4.3: 33total time: 835 ms
由此,即完成了 SSB 数据生成、建表、导入和查询。