关于数据库:OceanBase-40解读从TPCH性能测评看40与3x差异

38次阅读

共计 3764 个字符,预计需要花费 10 分钟才能阅读完成。

对于作者

肖帆
OceanBase 技术专家

OceanBase 技术专家,开源生态团队成员。毕业于华中科技大学软件工程业余,从事数据库畛域的品质保障工作,曾就任于有赞、网易,参加关系型数据库、缓存数据库、对象存储相干产品的测试开发,目前的工作方向是 OceanBase 社区版性能测试。


 

2022 年 11 月 3 日,OceanBase 社区版 4.0 Beta 版本正式上线。公布现场的演练测试结果显示,OceanBase 社区版 4.0 在等同硬件环境下,OLTP(联机事务处理)性能是 MySQL 企业版的 1.9 倍,OLAP(联机剖析解决)性能是 Greenplum 6.22.1 的 5 到 6 倍。其中,OLAP 性能测试采纳 TPC-H(商业智能计算测试),这是国际事务交易解决性能委员会(TPC,Transaction Processing Performance Council)组织制订的用来模仿决策反对类利用的一个测试集,基于 3NF 实现了一个数据仓库,共蕴含 8 个根本关系,其次要评估指标是各个查问的响应工夫,TPC-H 曾经成为世界上最为风行的 OLAP 工作负载的 benchmark 测试程序,其测试后果也成为剖析型数据库及 HTAP 数据库重要的评测指标。

本文将和大家分享如何在 OceanBase 数据库上进行 TPC-H 测试,介绍 OceanBase 4.0 版本的 TPC-H 基准测试方法和性能优化倡议。

 

如何进行 TPC- H 测试

 

▋ OBD 一键自动测试

 

OBD(OceanBase Deployer)是 OceanBase 社区版的装置部署工具,作为包管理器,能够用来治理 OceanBase 社区版所有的工具。为了帮忙用户更简略、更疾速地进行性能测试,OBD 已集成了 Sysbench、TPC-C、TPC-H 三种罕用测试工具,你能够一键进行全流程的性能测试。测试中过程中 OBD 会依据以后运行环境主动进行参数调优,以跑出最佳的性能。

在实现 OBD 及 OceanBase 社区版装置后,用户能够通过一条简略的命令,就能够实现整个 TPC-H 流程的测试:

obd test tpch obperf --tenant=tpch_mysql -s 100 --remote-tbl-dir=/tmp/tpch100

 

图 1 TPC-H 测试演示(obd)

 

OBD 既能够全自动式一键进行 TPC-H 测试,也能够手动设置各种参数来白盒体验测试的各个步骤。上面介绍几个应用 OBD 进行 TPC-H 性能测试中,比拟重要的参数。

  • 查看流程及操作日志: 如果用户感觉 OBD 的执行过程绝对黑盒,心愿理解 OBD 一键测试的过程中,具体进行哪些操作,能够加上 ’-v’,OBD 将在控制台具体打印出整个操作的流程,包含生成数据、导数、参数调优、合并、执行查问 SQL 等所有的操作日志。
  • 敞开数据文件传输:TPC-H 须要指定一台 OceanBase 指标服务器作为执行对象。在执行 TPC-H 测试前,OBD 会将测试须要的数据文件传输到指定机器的指定目录下,这些文件可能会比拟大,如果用户曾经在指标机器上筹备好数据文件,能够通过 ‘–dt=true’ 选项敞开传输,OBD 将间接从导数步骤开始进行 TPC-H 测试。
  • 执行查问 SQL: 如果用户曾经实现了导数,只是想简略的执行查问 SQL,能够加上 ’–test-only=true’,OBD 会进行参数调优并执行 22 条查问语句,操作实现后,还会主动将调优参数复原成零碎默认值。如果用户心愿手动体验参数调优带来的性能差别,能够再加上 ’-O 0’,这样 OBD 将不会进行任何参数调优,仅仅执行查问语句。用户能够自由组合各种参数,体验 OceanBase 带来的性能收益。

 

▋ 手动进行 TPC-H 测试

 

如果用户心愿通过原始的流程,手动体验整个 TPC-H 的测试,OceanBase 也在官网供了具体的测试流程和步骤。这里次要对 4.0 版本与之前 3.x 版本的步骤差别进行介绍。

  • 参数调整:OceanBase 4.0 版本引入了向量化和存储下压等新的个性,这些个性对性能晋升有重大影响。须要留神的是,在存储下压和向量化设置后,倡议用户进行刷新 plan cache 操作,以防止因后期执行 query 导致旧的 plan cache 被命中。
  • 建表语句调整: 因为扫表性能的晋升,OceanBase 4.0 版本后不再须要额定加索引。建表时能够将编码格局指定为 CONDENSED,数据会被编码并以 selective encoding 格局保留,有利于晋升查问的性能。
  • 合并步骤调整:4.0 引入了租户级别的合并,执行合并命令须要在对应的租户下执行,或在零碎租户下指定合并的租户。相应的合并相干的外部表也进行了调整,用户能够在零碎租户下查问 CDB_OB_MAJOR_COMPACTION,获取所有租户合并的全局信息。
  • 手动收集统计信息:4.0 版本后,合并不再收集统计信息,用户能够手动进行统计信息的收集。在 OceanBase 优化器中,可统计信息有表统计信息(table level statistics)和列统计信息(column level statistics)两种。统计信息收集后,优化器的估算会更精确,生成的执行打算也会更快。

目前 OceanBase 优化器针对统计信息收集提供了两种形式:DMBS_STATS(举荐)、ANALYZE 命令行。应用 OBD 或者 OCP 部署的用户,能够应用自带的 DMBS_STATS 包,通过 call dbms_stats.gather_table_stats 等形式进行统计信息的收集。

如果应用 ANALYZE 的形式,MySQL 租户须要开启 SQL 拓展性能(执行 alter system set enable_sql_extension=True)。用户也能够设置_force_parallel_query_dop,进一步晋升统计信息收集的执行并发度。

▋ 重要参数解析

  1. 向量化参数:_rowsets_enabled

4.0 减少向量化执行性能(vectorization),使得 OceanBase 具备一次解决多行数据的能力,大幅缩小函数调用次数和指令调用 cache miss,进步 SQL 执行器能力。

为了进步 SQL 执行器的灵活性,咱们提供了配置项_rowsets_enabled,管制整个向量化执行的开启敞开。向量化是租户级配置项,在零碎租户下执行肯定要指定租户名,或者在一般租户下执行。向量化影响所有 SQL 的 RT(响应工夫),倡议用户在测试时开启。

  1. 存储下压参数:_pushdown_storage_level

随着对 AP 场景不断深入优化,存储层引入多个将过滤、计算下压到底层的新个性,该配置项_pushdown_storage_level 进行管制。当参数设置为 3 时,将开启静态数据疾速扫、filter 下推以及聚合下推。存储层将提前对数据进行计算或者过滤,从而缩小有效数据的解决并显著晋升计算效率。

 

TPC- H 测试后果解读

 

以下测试后果的硬件环境,均为 3 台 32C 128G(ecs.g7.8xlarge)节点、每台机器上挂载 3 块 500G ESSD 云盘,测试数据量为 100GB。

▋ 相比上一个版本,OceanBase 4.0 带来了哪些变动?

咱们将 OceanBase 社区版 4.0.0、社区版 3.1.0 进行 TPC-H 100GB 测试比照,依照程序执行 22 条查问 SQL。从数据上来看,整体性能相比于 3.1 版本晋升 5 倍。

 

 

▋ 相比开源 OLAP 数据库,OceanBase 4.0 带来了哪些新可能

 

咱们将 OceanBase 社区版 4.0.0 与 Greenplum 6.22.1 进行 TPC-H 性能比照,从理论测试数据上能够看到,等同硬件条件下,OceanBase 社区版 4.0 的 AP 能力是 Greenplum 6.22 的 5-6 倍,局部场景下性能差别可达到 9 倍。

 

图 2 TPC-H 100 GB Results (By Query)

 

图 3 TPC-H 100 GB Results (Total Time)

 

写在最初

 

TPC-H 22 条规范 SQL 中,蕴含了用户数据分析 SQL 里罕用的聚合剖析、连贯查问、表达式计算、子查问等操作,反映了数据库在并发查问、表扫描、filter 下压等方面的通用能力。OceanBase 在 TPC-H 测试中响应工夫的大幅升高,体现了 OceanBase 在 OLAP 方面能力的一直冲破。

从 2010 年开始立项的 OceanBase,始终是原生分布式数据库的信仰者、开拓者。咱们心愿可能基于“一个零碎,一份数据”为用户提供同时解决交易和实时剖析的高性价比能力。自登顶 TPC-C 榜首,OceanBase 一直稳步迈进晋升 OLAP 的能力。4.0 版本 OceanBase 的实时剖析能力,无论是绝对 3.x 版本,还是专门的 OLAP 数据库,都有了质的飞跃。 咱们心愿真正帮忙企业解决传统 ETL 带来的数据同步提早和业务复杂度问题,帮忙用户在理论场景中可能同时兼顾到 OLTP 类的事务处理和 OLAP 类的报表剖析、业务决策等实时剖析能力,让数据库服务和业务利用变得简略。

Reference:

○ TPC-H 基准测试定义

https://www.tpc.org/tpcc/defa…

○ TPC-H Standard Specification

https://www.tpc.org/tpc_docum…

○ OceanBase 4.0 TPC-H 测试文档

https://www.oceanbase.com/doc…

正文完
 0