TPC-H 基准测试

版本:Latest-3.4

TPC-H 基准测试

TPC-H 是美国交易处理效能委员会 TPC(Transaction Processing Performance Council)组织制定的用来模拟决策支持类应用的测试集。它包括一整套面向业务的 ad-hoc 查询和并发数据修改。

TPC-H 根据真实的生产运行环境来建模,模拟了一套销售系统的数据仓库。该测试共包含 8 张表,数据量可设定从 1 GB~3 TB不等。其基准测试共包含了 22 个查询,主要评价指标为各个查询的响应时间,即从提交查询到结果返回所需时间。

1. 测试结论

在 TPC-H 100G 规模的数据集上进行对比测试,共 22 个查询,结果如下:

TPCH 100G结果

StarRocks 测试了使用本地存储查询和 Hive 外表查询两种方式,其中 StarRocks Hive 外表和 Trino 查询的是同一份数据,数据采用 ORC 格式存储,zlib 格式压缩。

最终,StarRocks 本地存储查询总耗时为 17s,StarRocks Hive 外表查询总耗时为 92s,Trino 查询总耗时为187s。

2. 测试准备

2.1 硬件环境

机器 4 台阿里云主机
CPU 16core Intel(R) Xeon(R) Platinum 8269CY CPU @ 2.50GHz
内存 64 GB
网络带宽 5 Gbits/s
磁盘 ESSD 云盘

2.2 软件环境

StarRocks 和 Trino 部署在相同配置的机器上进行测试,StarRocks 部署 1 个 FE 和 3 个 BE,Trino 部署 1 个 Coordinator 和 3 个 Worker。

  • 内核版本:Linux 3.10.0-1127.13.1.el7.x86_64

  • 操作系统版本:CentOS Linux release 7.8.2003

  • 软件版本:StarRocks 社区版 3.0,Trino-419,Hive-2.3.9

3 测试数据与结果

3.1 测试数据

行数
customer 1500万
lineitem 6亿
nation 25
orders 1.5亿
part 2000万
partsupp 8000万
region 5
supplier 100万

3.2 测试结果

查询结果的单位是 ms。 所有查询预热一次,执行三次取平均值作为结果。

Query StarRocks-native-3.0 StarRocks-3.0-Hive external Trino-419
Q1 1540 5660 8811
Q2 100 1593 3009
Q3 700 5286 7891
Q4 423 2110 5760
Q5 1180 4453 9181
Q6 56 2806 4029
Q7 903 4910 7158
Q8 546 4766 8014
Q9 2553 8010 18460
Q10 776 8190 9997
Q11 206 920 2088
Q12 166 2916 4852
Q13 1663 3420 7203
Q14 146 3286 4995
Q15 123 4173 9688
Q16 353 1126 2545
Q17 296 3426 18970
Q18 2713 7960 21763
Q19 246 4406 6586
Q20 176 3280 6632
Q21 1410 7933 16873
Q22 350 1190 2788
SUM 16625 91820 187293

4. 测试流程

4.1 StarRocks 本地表测试流程

4.1.1 生成数据

下载 tpch-poc 工具包生成 TPC-H 标准测试集 scale factor=100 的数据。

wget https://starrocks-public.oss-cn-zhangjiakou.aliyuncs.com/tpch-poc-1.0.zip
unzip tpch-poc-1.0
cd tpch-poc-1.0

sh bin/gen_data/gen-tpch.sh 100 data_100

4.1.2 创建表结构

修改配置文件 conf/starrocks.conf,指定脚本操作的集群地址,重点关注 mysql_host 和 mysql_port,然后执行建表操作。

sh bin/create_db_table.sh ddl_100

4.1.3 导入数据
sh bin/stream_load.sh data_100

4.1.4 查询数据
sh bin/benchmark.sh

4.2 StarRocks Hive 外表测试流程

4.2.1 创建表结构

在 Hive 中创建外部表,外部表存储格式是 ORC,压缩格式是 zlib,详细建表语句见 

### TPC-H基准测试的数据库实验配置与执行指导 TPC-H基准测试是一套用于评估数据库分析型查询能力的标准测试工具,其包含8张数据表和22条复杂的SQL查询[^1]。以下将详细介绍如何进行TPC-H基准测试,包括工具安装、数据生成以及查询执行的具体步骤。 #### 工具安装 对于PostgreSQL用户,可以使用专门设计的TPC-H基准测试工具(tvondra/pg_tpch)[^2]。该工具提供了脚本以方便填充数据并评估数据库性能表现。以下是安装步骤: 1. 确保已安装PostgreSQL数据库环境,并具备必要的权限。 2. 通过Git克隆tvondra/pg_tpch项目代码: ```bash git clone https://github.com/tvondra/pg_tpch.git ``` 3. 安装依赖项(如需),并根据官方文档完成初始化设置。 #### 数据生成 TPC-H测试基于一套模拟销售系统的数据仓库模型[^3],数据量可从1GB扩展至3TB。以下是数据生成的具体方法: 1. 使用`dbgen`工具生成测试数据。`dbgen`是TPC-H提供的标准数据生成器,可以通过以下命令下载并编译: ```bash wget http://www.tpc.org/tpc_documents_current_versions/pdf/tpc-h_current.pdf tar -xvf tpc-h_tool.tar.gz cd tpch-tools/dbgen make ``` 2. 设置数据规模参数(例如1GB)并通过以下命令生成数据: ```bash ./dbgen -s 1 ``` 其中`-s`参数指定数据规模,单位为GB。 3. 将生成的数据导入PostgreSQL数据库。可以利用`pg_tpch`工具中的脚本自动完成数据加载过程: ```bash psql -d your_database -f load.sql ``` #### 查询执行 TPC-H基准测试包含22个复杂查询,主要用于评估数据库在决策支持场景下的性能表现[^1]。以下是查询执行的步骤: 1. 配置查询执行环境,确保数据库连接参数正确无误。 2. 使用`pgbench`或其他自动化工具运行预定义的SQL查询集。例如,运行所有查询的脚本如下: ```bash ./run_queries.sh ``` 3. 记录每个查询的响应时间作为主要评价指标[^3],并分析查询性能瓶颈。 ```python import psycopg2 # 连接PostgreSQL数据库 conn = psycopg2.connect( dbname="your_database", user="your_user", password="your_password", host="localhost", port="5432" ) # 执行示例查询 cur = conn.cursor() query = "SELECT * FROM lineitem WHERE l_shipdate <= '1998-12-01';" cur.execute(query) results = cur.fetchall() # 关闭连接 cur.close() conn.close() ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值