YMatrix 与 ClickHouse SSB 基准对比测试报告

测试概况


本次测试对比了 YMatrix 和 ClickHouse (简称 CK) 在单表查询分析场景的 SSB(Star Schema Benchmark)性能表现。结果显示,YMatrix 在两种测试数据规模下,分别比 CK 提升了 24% 及 37%。

SSB 是目前业界普遍采用的一个星型测试集,它是从 TPC-H 演化出来的一种针对分析场景的“性价比”评价标准。在 SSB 基准测试中定义了 13 个查询场景,从不同角度和维度,考察了一个分析型数据库的综合性能。

随着社区发展,SSB 最初的设计并不完全适用于今天大部分数仓的使用模式。Apache Druid 在最近的一次基准测试中,基于原始版本提出了一种 SSB 变体,即:将多张原始表数据先做一次聚合转化为一张宽表,然后基于这张宽表来执行 SSB 基准测试中的各测试项。在 ClickHouse 发布的最新 SSB 基准测试结果中,同样采用了这种方案。

测试环境


硬件环境

机器 vCPU RAM 带宽 EBS
AWS EC2,m5.8xlarge 64 128GB 10Gbps gp3,iops = 3000,thoughtput = 125MB/s

软件环境

为了最大程度上还原 ClickHouse 最新的测试结果,YMatrix 的 SSB 基准测试采用和 ClickHouse 同等的测试环境和场景,即单机部署,并采用目前 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 官网文档YMatrix 的 SSB 基准测试工具

  • ClickHouse:22.7.2.15

测试方案


此次 YMatrix 采用了与 ClickHouse 一致的 SSB 基准测试模型,分别测试了 100 倍和 1000 倍数据规模(SSB的数据规模来源于 TPC-H 的 scale factor)。

其中 100 倍数据的宽表数据量约为 6 亿条数据,1000 倍数据的宽表数据量约为 60 亿。
测试结果中,100 倍数据规模下 ClickHouse 的测试结果引用了 ClickHouse 官方数据,而官方并未公开 1000 倍数据规模下的结果,因此 1000 倍的结果由 YMatrix 工程师采用同等机器配置实测得到。

测试步骤


  1. 准备测试环境
    如上文“硬件环境”一节,初始化 AWS 上的虚拟机环境。并按照 YMatrix 官网文档安装测试集群

  2. 下载 SSB 基准测试工具

    git clone https://github.com/ymatrix-data/ssb.git

    注意!
    YMatrix 的 SSB 工具已开源,简单易用,欢迎你的试用。

  3. 环境检查

    ./validate_environment.sh
  4. 生成测试数据 通过 -s 100,来生成 100 倍规模的数据。

    ./generate_data.sh -s 100
  5. 导入测试数据
    工具支持测试多种数据规模的数据集,通过 -s 100 选择将生成好的 100 倍数据集导入 YMatrix,默认的导入方式为 MatrixGate,具有高并发、分布式、流式、批量写入数据等特性。目前支持 MatrixGate 和 COPY 两种模式,如果需要调整导入方式可以通过 -t 来指定。

    ./import_data.sh -s 100
  6. 生成宽表数据
    YMatrix 对 SSB 基准中的表结构和查询做出了一些必要调整,然后执行:

    ./generate_flat_table.sh -s 100
  7. 执行 SSB 基准测试

    ./ssb.sh -s 100

测试结论


最终完整的测试结果如下:

数据规模 ClickHouse(ms) YMatrix(ms) 提升比例
100 倍数据 1112 840 24%
1000 倍数据 5794 3670 37%