作者:ORA-600

【目录】
一、服务器的配置
二、集群部署模式
三、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,数据条数如下

TiDB 5.0 在TPCH和SSB基准测试下OLAP方面的能力表现_数据

表的信息:2个事实表:lineorder,orders 6个维度表:customer,part,parsupp,supplier,region,nation
数据查询:22条标准SQL查询测试语句:统计查询、多表关联、sum、复杂条件、group by、order by等组合方式\

TiDB 5.0 在TPCH和SSB基准测试下OLAP方面的能力表现_数据_02

备注: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,数据条数如下:

TiDB 5.0 在TPCH和SSB基准测试下OLAP方面的能力表现_压测_03


表的信息:1张大宽表:lineorder_flat;1张事实表:lineorder4张维度表:customer,part,dates,supplier

数据查询:2类查询场景(单表和多表join)每类场景下有13条标准SQL查询测试语句:统计查询、多表关联、sum、复杂条件、group by、order by等组合方式

单表聚合计算压测结果:

TiDB 5.0 在TPCH和SSB基准测试下OLAP方面的能力表现_数据_04

备注: 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)
)

多表关联聚合计算压测结果:

TiDB 5.0 在TPCH和SSB基准测试下OLAP方面的能力表现_数据库_05

备注:TiFlash 开启 MPP功能,DorisDB和Doris分别配置并行度为(set parallel_fragment_exec_instance_num = 8;)

在该压测场景中TiFlash的性能优于Apache Doris;而DorisDB性能表现最佳。
五、总结
本次测试从架构角度出发不对产品好坏进行评价,目前没有大一统的数据库,每款主流的数据库都有其存在的理由和价值,根据场景选择适合或者适度超前的技术架构解决企业的痛点才是王道。最后引起玄姐的话:“一切脱离场景谈架构都是耍流氓”