OceanBase 4.0解读:从TPC-H性能测评看4.0与3.x差异

本文涉及的产品
云原生数据仓库AnalyticDB MySQL版,基础版 8ACU 100GB 1个月
简介: OceanBase 4.0解读:从TPC-H性能测评看4.0与3.x差异

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 基准测试方法和性能优化建议。

image.png

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(响应时间),建议用户在测试时开启。


2. 存储下压参数:_pushdown_storage_level


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

image.png

image.png

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

我们将 OceanBase 社区版 4.0.0 与 Greenplum 6.22.1 进行 TPC-H 性能对比,从实际测试数据上可以看到,同等硬件条件下,OceanBase 社区版 4.0 的 AP 能力是Greenplum 6.22 的 5-6 倍,部分场景下性能差异可达到 9 倍。

image.png

image.png


相关实践学习
AnalyticDB MySQL海量数据秒级分析体验
快速上手AnalyticDB MySQL,玩转SQL开发等功能!本教程介绍如何在AnalyticDB MySQL中,一键加载内置数据集,并基于自动生成的查询脚本,运行复杂查询语句,秒级生成查询结果。
阿里云云原生数据仓库AnalyticDB MySQL版 使用教程
云原生数据仓库AnalyticDB MySQL版是一种支持高并发低延时查询的新一代云原生数据仓库,高度兼容MySQL协议以及SQL:92、SQL:99、SQL:2003标准,可以对海量数据进行即时的多维分析透视和业务探索,快速构建企业云上数据仓库。 了解产品 https://www.aliyun.com/product/ApsaraDB/ads
相关文章
|
关系型数据库 MySQL Java
对比下 datax 的 OceanBase/MYSQL 不同数据同步方案的效率差异 || 聊聊参数 rewriteBatchedStatements
对比下 datax 的 OceanBase/MYSQL 不同数据同步方案的效率差异 || 聊聊参数 rewriteBatchedStatements
|
SQL 算法 关系型数据库
OceanBase社区版4.0正式上线,与企业版同等性能,一键安装两分钟跑通Demo
OceanBase社区版4.0正式上线,与企业版同等性能,一键安装两分钟跑通Demo
284 0
|
NoSQL 固态存储 关系型数据库
TiDB、OceanBase、PolarDB-X、CockroachDB二级索引写入性能测评
二级索引是关系型数据库相较于NoSQL数据库的一个关键差异。二级索引必须是强一致的,因此索引的写入需要与主键的写入放在一个事务当中,事务的性能是二级索引性能的基础。本次测试将重点关注不同分布式数据库的索引性能,特别关注业内全局索引的性能与MySQL索引的性能差异。
TiDB、OceanBase、PolarDB-X、CockroachDB二级索引写入性能测评
|
SQL 算法 测试技术
OceanBase 4.0 解读:分布式查询性能提升,我们是如何思考的 ?
OceanBase 4.0 解读:分布式查询性能提升,我们是如何思考的 ?
549 0
OceanBase 4.0 解读:分布式查询性能提升,我们是如何思考的 ?
|
SQL 监控 Oracle
OceanBase 3.2.3 发版|HTAP引擎全面升级,TPC-H性能10倍提升!
OceanBase 3.2.3 发版|HTAP引擎全面升级,TPC-H性能10倍提升!
370 0
OceanBase 3.2.3 发版|HTAP引擎全面升级,TPC-H性能10倍提升!
|
3月前
|
存储 SQL 分布式数据库
OceanBase 入门:分布式数据库的基础概念
【8月更文第31天】在当今的大数据时代,随着业务规模的不断扩大,传统的单机数据库已经难以满足高并发、大数据量的应用需求。分布式数据库应运而生,成为解决这一问题的有效方案之一。本文将介绍一款由阿里巴巴集团自主研发的分布式数据库——OceanBase,并通过一些基础概念和实际代码示例来帮助读者理解其工作原理。
253 0
|
28天前
|
SQL 存储 人工智能
OceanBase CTO杨传辉谈AI时代下数据库技术的创新演进路径!
在「DATA+AI」见解论坛上,OceanBase CTO杨传辉先生分享了AI与数据库技术融合的最新进展。他探讨了AI如何助力数据库技术演进,并介绍了OceanBase一体化数据库的创新。OceanBase通过单机分布式一体化架构,实现了从小规模到大规模的无缝扩展,具备高可用性和高效的数据处理能力。此外,OceanBase还实现了交易处理、分析和AI的一体化,大幅提升了系统的灵活性和性能。杨传辉强调,OceanBase的目标是成为一套能满足80%工作负载需求的系统,推动AI技术在各行各业的广泛应用。关注我们,深入了解AI与大数据的未来!
|
3月前
|
Oracle 架构师 分布式数据库
OceanBase数据库的发展历程是什么?
【8月更文挑战第11天】OceanBase数据库的发展历程是什么?
167 63
|
3月前
|
Oracle 关系型数据库 MySQL
OceanBase数据库简介
【8月更文挑战第9天】OceanBase数据库简介
336 60
|
3月前
|
Oracle 关系型数据库 MySQL
OceanBase 与传统数据库的对比
【8月更文第31天】随着云计算和大数据技术的发展,分布式数据库因其高扩展性、高可用性和高性能而逐渐成为企业和开发者关注的焦点。在众多分布式数据库解决方案中,OceanBase作为一个由阿里巴巴集团自主研发的分布式数据库系统,以其独特的架构设计和卓越的性能表现脱颖而出。本文将深入探讨OceanBase与其他常见关系型数据库管理系统(如MySQL、Oracle)之间的关键差异,并通过具体的代码示例来展示这些差异。
189 1

热门文章

最新文章