测试方案介绍

最近更新时间:2025-04-22 14:25:12

我的收藏
本文将为您介绍如何使用 TPC-DS 对腾讯云数据仓库 TCHouse-D 进行性能测试。下文以测试 100GB 数据集下的 TPC-DS 查询性能为例,给出参考测试方案。

关于 TPC-DS 性能测试

TPC-DS 是一个以决策支持为重点的基准测试,旨在评估数据仓库和分析系统的性能。它是由 TPC(Transaction Processing Performance Council)组织开发的,用于比较不同系统在处理复杂查询和大规模数据分析方面的能力。
TPC-DS 的设计目标是模拟现实世界中的复杂决策支持工作负载。它通过一系列复杂的查询和数据操作来测试系统的性能,包括联接、聚合、排序、过滤、子查询等。这些查询模式涵盖了从简单到复杂的各种场景,如报表生成、数据挖掘、OLAP(联机分析处理)等。

测试方案介绍

测试环境准备

硬件环境

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

软件版本

腾讯云 TCHouse-D 2.1.9

测试脚本准备

工具包地址下载 TPC-DS 工具包并编译

TPC-DS 100G数据测试

生成100G数据集

sh bin/gen-tpcds-data.sh -s 100
执行后生成的数据如下:
# du -sh bin/tpcds-data/
96G bin/tpcds-data/
表名
原始文本文件大小
100G 导入后的大小
分桶数
行数
call_center
9.2KiB
13.784 KB
1
30
catalog_page
2.8MiB
1.216 MB
3
20400
catalog_returns
2.2GiB
736.137 MB
32
14404374
catalog_sales
29GiB
9.225 GB
960
143997065
customer
256MiB
111.185 MB
12
2000000
customer_address
106MiB
21.386 MB
12
1000000
customer_demographics
76MiB
6.468 MB
12
1920800
date_dim
9.8MiB
1.823 MB
12
73049
dbgen_version
111B
1.184 KB
1
1
household_demographics
142KiB
20.372 KB
3
7200
income_band
308B
724.000 B
1
20
inventory
7.7GiB
871.378 MB
32
399330000
item
56MiB
25.314 MB
12
204000
promotion
122KiB
73.989 KB
1
1000
reason
1.9KiB
7.748 KB
1
55
ship_mode
1.1KiB
3.251 KB
1
20
store
104KiB
54.449 KB
1
402
store_returns
3.3GiB
1.090 GB
32
28795080
store_sales
38GiB
12.529 GB
960
287997024
time_dim
4.8MiB
1.087 MB
12
86400
warehouse
1.8KiB
4.999 KB
1
15
web_page
193KiB
38.753 KB
1
2040
web_returns
998MiB
350.227 MB
32
7197670
web_sales
15GiB
4.645 GB
960
72001237
web_site
6.7KiB
11.185 KB
1
24
Total
96G
29.566 GB
3096
959037906

建表

修改 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 TPC-DS tables located
export DB='tpch_100g'
建表:
sh bin/create-tpcds-tables.sh -s 100

导入数据

sh load-tpcds-data.sh

Start time: Thu Oct 31 21:03:55 CST 2024
End time: Thu Oct 31 21:14:44 CST 2024
Finish load tpcds data, Time taken: 649 seconds
============================================
analyze database tpcds_100g
analyze database tpcds_100g with full with sync;
analyze database tpcds_100g with full with sync total time: 67 s

MySQL [tpcds_100g]> show data;
+------------------------+-------------+--------------+------------+
| TableName | Size | ReplicaCount | RemoteSize |
+------------------------+-------------+--------------+------------+
| call_center | 13.784 KB | 1 | 0.000 |
| catalog_page | 1.216 MB | 3 | 0.000 |
| catalog_returns | 736.137 MB | 32 | 0.000 |
| catalog_sales | 9.225 GB | 960 | 0.000 |
| customer | 111.185 MB | 12 | 0.000 |
| customer_address | 21.386 MB | 12 | 0.000 |
| customer_demographics | 6.468 MB | 12 | 0.000 |
| date_dim | 1.823 MB | 12 | 0.000 |
| dbgen_version | 1.184 KB | 1 | 0.000 |
| household_demographics | 20.372 KB | 3 | 0.000 |
| income_band | 724.000 B | 1 | 0.000 |
| inventory | 871.378 MB | 32 | 0.000 |
| item | 25.314 MB | 12 | 0.000 |
| promotion | 73.989 KB | 1 | 0.000 |
| reason | 7.748 KB | 1 | 0.000 |
| ship_mode | 3.251 KB | 1 | 0.000 |
| store | 54.449 KB | 1 | 0.000 |
| store_returns | 1.090 GB | 32 | 0.000 |
| store_sales | 11.713 GB | 960 | 0.000 |
| time_dim | 1.087 MB | 12 | 0.000 |
| warehouse | 4.999 KB | 1 | 0.000 |
| web_page | 38.753 KB | 1 | 0.000 |
| web_returns | 350.227 MB | 32 | 0.000 |
| web_sales | 4.645 GB | 960 | 0.000 |
| web_site | 11.185 KB | 1 | 0.000 |
| Total | 28.750 GB | 3096 | 0.000 |
| Quota | 1024.000 TB | 1073741824 | |
| Left | 1023.972 TB | 1073738728 | |
| Transaction Quota | 1000 | 1000 | |
+------------------------+-------------+--------------+------------+
29 rows in set (0.02 sec)

查询

# bash bin/run-tpcds-queries.sh -s 100
由此,即完成了针对 100GB 数据集场景下的 TPC-DS 数据生成、建表、导入和查询。