近日,YMatrix 5.0 正式发布,通过 138 项优化,实现了性能的全方位突破。其中针对单表查询分析性能,我们进行了 SSB 基准测试,对标大宽表性能标杆 ClickHouse。结果显示:YMatrix 在两种测试数据规模下,分别比 CK 提升了 24% 及 37%。
详细的测试报告如下:
01 测试结论
Star Schema Benchmark(以下简称 SSB)是目前业界普遍采用的一个星型测试集(注1),它是从 TPC-H (注2)演化出来的一种针对分析场景的“性价比”评价标准。在 SSB 基准测试中定义了 13 个查询场景,从不同角度和维度,考察了一个分析型数据库的综合性能。
随着社区发展,SSB 最初的设计并不完全适用于今天大部分数仓的使用模式。Apache Druid 在最近的一次基准测试中(注3),基于原始版本提出了一种 SSB 变体,即:将多张原始表数据先做一次聚合转化为一张宽表,然后基于这张宽表来执行 SSB 基准测试中的各测试项。在 ClickHouse 发布的最新 SSB 基准测试结果中,同样采用了这种方案。(注4)
此次 YMatrix 5.0 采用了与 ClickHouse 一致的 SSB 基准测试模型,分别测试了 100倍和 1000倍数据规模(SSB的数据规模来源于 TPC-H 的 scale factor)。其中 100倍数据的宽表数据量约为 6亿条数据,1000 倍数据的宽表数据量约为 60亿。测试结果中,100 倍数据规模下 ClickHouse 的测试结果引用了 ClickHouse 官方数据,而官方并未公开 1000 倍数据规模下的结果,因此 1000 倍的结果由 YMatrix 工程师采用同等机器配置实测得到。
最终完整的测试结果如下:
02 测试环境
硬件环境
软件环境
为了最大程度上还原 ClickHouse 最新的测试结果,YMatrix 5.0 的 SSB 基准测试采用和 ClickHouse 同等的测试环境和场景(注6),即单机部署,并采用目前 YMatrix 产品自动选择的默认部署方式,在前文介绍的硬件环境下是 6 个 Segment 节点。
-
操作系统内核:3.10.0-1127.19.1.el7.x86_64
-
操作系统版本:CentOS Linux release 7.8.2003
-
YMatrix:企业版 matrixdb-5.0.0.beta.2+enterprise-1,其中 YMatrix 集群部署参见见 YMatrix 官网文档 (注7)和 YMatrix 的 SSB 基准测试工具(注8)。
-
ClickHouse:22.7.2.15
03 测试步骤
1. 准备测试环境
如上文“硬件环境”一节,初始化 AWS 上的虚拟机环境。并按照 YMatrix 官网文档(注9)安装测试集群。
2. 下载 SSB 基准测试工具
git clone https://github.com/ymatrix-data/ssb.git
3. 环境检查
./validate_environment.sh
4.生成测试数据
通过 -s 100,来生成100倍规模的数据。
./generate_data.sh -s 100
5. 导入测试数据
工具支持测试多种数据规模的数据集,通过 -s 100 选择将生成好的100倍数据集导入YMatrix,默认的导入方式为 MatrixGate (注10),目前支持 MatrixGate 和 COPY 两种模式,如果需要调整导入方式可以通过 -t 来指定。
./import_data.sh -s 100
6.生成宽表数据
YMatrix 对 SSB基准中的表结构和查询做出以下调整:
-
ENUM字段:ClickHouse的基准测试中使用了3个ENUM列 C_REGION, S_REGION, P_MFGR,而 YMatrix 的基准测试中采用了5个 enum 列 c_region, s_region, p_mfgr, c_nation, s_nation
-
排序字段:ClickHouse SSB 基准中主键索引使用了6个列 S_REGION, C_REGION, P_MFGR, S_NATION, C_NATION, P_CATEGORY,并且还有额外的8个排序键 S_REGION, C_REGION, P_MFGR, S_NATION, C_NATION, P_CATEGORY, LO_CUSTKEY, LO_SUPPKEY;在YMatrix的基准测试中没有区分这二者的关系,YMatrix 的基准测试中采用了 7 个排序键:s_region, c_region, p_mfgr, s_nation, c_nation, p_category, lo_orderdate。
./generate_flat_table.sh -s 100
7. 执行 SSB 基准测试
./ssb.sh -s 100
04 附录
100 倍数据:YMatrix vs. ClickHouse 结果:
1000 倍数据:YMatrix vs. ClickHouse 结果:
注1:
详见:https://www.cs.umb.edu/~poneil/StarSchemaB.PDF
注2: 参见:https://www.tpc.org/tpc_documents_current_versions/pdf/tpc-h_v3.0.1.pdf
注3:
注4: 参见:https://altinity.com/blog/clickhouse-nails-cost-efficiency-challenge-against-druid-rockset
注5: 参见:https://aws.amazon.com/ec2/instance-types/m5/
注6: 参见:https://altinity.com/blog/clickhouse-nails-cost-efficiency-challenge-against-druid-rockset
注7: 参见:https://ymatrix.cn/doc/5.0/install/mx5_cluster/mx5_cluster
注8: 参见:https://github.com/ymatrix-data/ssb
注9: 参见:https://ymatrix.cn/doc/5.0/install/mx5_cluster/mx5_cluster