TiDB 5.0 在 TPCH 和 SSB 基准测试下 OLAP 方面的能力表现
作者: ORA-600 原文来源:https://tidb.net/blog/2370aaa4
【是否原创】是
【首发渠道】TiDB 社区
【首发渠道链接】
【目录】
一、服务器的配置
二、集群部署模式
三、TPC-H 基准压测
四、SSB 基准压测
五、总结
【正文】
一、服务器配置
1、3 台腾讯云服务器
2、服务器配置
CPU: 32c (Intel® Xeon® Platinum 8255C CPU @ 2.50GHz)
MEM: 128G
Disk: 3.5T Nvme 盘 1 块
二、集群部署模式
1、自建集群数据库组件均采用混合部署方式
2、腾讯云 Doris 和 ClickHouse 采用独立部署
三、TPC-H 基准压测
TPC-H 基准测试是由 TPC-D 发展而来的,是面向商品零售业的决策支持系统测试基准,它定义了 8 张表,22 个查询,遵循 SQL92;基准的数据库模式遵循第三范式;新兴的数据仓库开始采用新的模型,如星型模型、雪花模型。
数据规模:数据文件 100G,数据条数如下
表的信息:2 个事实表:lineorder,orders 6 个维度表:customer,part,parsupp,supplier,region,nation
数据查询:22 条标准 SQL 查询测试语句:统计查询、多表关联、sum、复杂条件、group by、order by 等组合方式
备注:greenplum 和 spark+parquet 两款产品的压测数据是摘自 pingcap 官方。
TiFlash 开启 MPP 功能,DorisDB 和 Doris 分别配置并行度为 (set parallel_fragment_exec_instance_num = 8;)。从该基准测试结果看,TiDB TiFlash、DorisDB、Doris、Greenplum、Spark+parquet 5 款产品 TiDB 和 DorisDB 性能表现最佳,整体上 DorisDB 相对优越点,TiDB 5.0 在 OLAP 场景下性能有显著提升。
四、SSB 基准压测
SSB(Star Schema Benchmark)是麻省州立大学波士顿校区的研究人员定义的基于现实商业应用的数据模型,业界公认用来模拟决策支持类应用,比较公正和中立。
数据规模:数据文件 100G,数据条数如下:
表的信息:1 张大宽表:lineorder_flat;1 张事实表:lineorder4 张维度表:customer,part,dates,supplier
数据查询:2 类查询场景(单表和多表 join)每类场景下有 13 条标准 SQL 查询测试语句:统计查询、多表关联、sum、复杂条件、group by、order by 等组合方式
单表聚合计算压测结果:
备注: DorisDB 和 Doris 分别配置并行度为 (set parallel_fragment_exec_instance_num = 8;)
在该压测场景中对 lineorder_flat 宽表按照 LO_ORDERDATE 字段进行范围分区比不分区性能要好,由于 TiFlash MPP 功能暂时不支持分区表,所以本次压测 TiFlash MPP 能力未生效。在 Q1 的 3 个聚合查询表现还可以,但在后面的 Q2-Q4 宽表聚合查询场景下 TiFlash 的能力还有很大的提升空间。
如下是宽表的表结构:
CREATE TABLE lineorder_flat
(
LO_ORDERKEY
int(11) NOT NULL,
LO_ORDERDATE
date NOT NULL,
LO_LINENUMBER
tinyint(4) NOT NULL,
LO_CUSTKEY
int(11) NOT NULL,
LO_PARTKEY
int(11) NOT NULL,
LO_SUPPKEY
int(11) NOT NULL,
LO_ORDERPRIORITY
varchar(100) NOT NULL,
LO_SHIPPRIORITY
tinyint(4) NOT NULL,
LO_QUANTITY
tinyint(4) NOT NULL,
LO_EXTENDEDPRICE
int(11) NOT NULL,
LO_ORDTOTALPRICE
int(11) NOT NULL,
LO_DISCOUNT
tinyint(4) NOT NULL,
LO_REVENUE
int(11) NOT NULL,
LO_SUPPLYCOST
int(11) NOT NULL,
LO_TAX
tinyint(4) NOT NULL,
LO_COMMITDATE
date NOT NULL,
LO_SHIPMODE
varchar(100) NOT NULL,
C_NAME
varchar(100) NOT NULL,
C_ADDRESS
varchar(100) NOT NULL,
C_CITY
varchar(100) NOT NULL,
C_NATION
varchar(100) NOT NULL,
C_REGION
varchar(100) NOT NULL,
C_PHONE
varchar(100) NOT NULL,
C_MKTSEGMENT
varchar(100) NOT NULL,
S_NAME
varchar(100) NOT NULL,
S_ADDRESS
varchar(100) NOT NULL,
S_CITY
varchar(100) NOT NULL,
S_NATION
varchar(100) NOT NULL,
S_REGION
varchar(100) NOT NULL,
S_PHONE
varchar(100) NOT NULL,
P_NAME
varchar(100) NOT NULL,
P_MFGR
varchar(100) NOT NULL,
P_CATEGORY
varchar(100) NOT NULL,
P_BRAND
varchar(100) NOT NULL,
P_COLOR
varchar(100) NOT NULL,
P_TYPE
varchar(100) NOT NULL,
P_SIZE
tinyint(4) NOT NULL,
P_CONTAINER
varchar(100) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin
PARTITION BY RANGE ( YEAR(LO_ORDERDATE
) ) (
PARTITION p0
VALUES LESS THAN (1991),
PARTITION p1
VALUES LESS THAN (1992),
PARTITION p2
VALUES LESS THAN (1993),
PARTITION p3
VALUES LESS THAN (1994),
PARTITION p4
VALUES LESS THAN (1995),
PARTITION p5
VALUES LESS THAN (1996),
PARTITION p6
VALUES LESS THAN (1997),
PARTITION p7
VALUES LESS THAN (1998),
PARTITION p8
VALUES LESS THAN (1999),
PARTITION p9
VALUES LESS THAN (MAXVALUE)
)
多表关联聚合计算压测结果:
备注:TiFlash 开启 MPP 功能,DorisDB 和 Doris 分别配置并行度为 (set parallel_fragment_exec_instance_num = 8;)
在该压测场景中 TiFlash 的性能优于 Apache Doris;而 DorisDB 性能表现最佳。
五、总结
本次测试从架构角度出发不对产品好坏进行评价,目前没有大一统的数据库,每款主流的数据库都有其存在的理由和价值,根据场景选择适合或者适度超前的技术架构解决企业的痛点才是王道。最后引起玄姐的话:“一切脱离场景谈架构都是耍流氓”
版权声明: 本文为 InfoQ 作者【TiDB 社区干货传送门】的原创文章。
原文链接:【http://xie.infoq.cn/article/be7c6e5588dc617724df9b3f8】。文章转载请联系作者。
评论