数据库 频道

HTAP 测试工具-HyBench 初探

随着IoT、手机应用、人工智能等发展带来数据爆炸式增长,越来越多的场景需要通过高效的数据管理和处理获得即时见解,HTAP因而成为全球数据技术的热门趋势。HTAP(即混合事务/分析处理)数据库能够同时支撑在线事务处理(OLTP)和在线分析处理(OLAP)场景,避免了传统架构中在线与离线数据库之间大量的数据交互。具体而言,OLTP实现在线交易处理,典型场景如银行转账业务;OLAP用于数据分析和报告。两种数据库本是相互独立的系统,而HTAP数据库将传统的OLTP和OLAP模式合二为一,基于一站式架构同时处理事务请求和查询分析请求,不仅消除了从关系型数据库到数据库仓库的数据抽取、转换和加载过程,还支持实时地分析最新事务数据,以灵活、高效、易用方式助力企业应对数字化时代挑战。

1. HTAP 评测

HTAP数据库核心的技术评价主要包括处理混合负载的性能、OLAP与OLTP之间的数据同步延迟(数据新鲜度)两大方面。虽然目前针对HTAP型数据库,有CH-benCHmark、HTAPBench、OLXPBench、HATrick等测试基准,但这些测试基准在数据模型、工作负载、评测指标方面无法支撑对HTAP的核心技术进行评价。

2. 测试工具-HyBench

HyBench是由中国软件评测中心、清华大学联合牵头,北京奥星贝斯科技有限公司、武汉达梦数据库股份有限公司、华为技术有限公司、腾讯云计算有限公司、阿里云计算有限公司共同研发,为数据库厂商和第三方评测机构提供HTAP数据库基准性能的评价方法及工具。

HyBench的出现,使用户可以客观地评价HTAP数据库性能;帮助数据库厂商在数据库研发过程中进行面向HTAP场景的性能评价和压测;为第三方评测机构提供客观的数据库性能测试服务。如何权衡负载隔离性与数据新鲜度并取得平衡,是HTAP数据库在设计过程中的最大挑战,同时也决定了其核心的技术评价为处理OLTP与OLAP混合负载的能力(性能)和OLAP与OLTP之间的数据同步延迟(数据新鲜度)两大方面,此外还应该具备基本的单独处理OLTP和OLAP负载的能力。

1).HyBench 架构

2).基准模型

基准模型基于在线金融应用,模拟转账业务与风控结合的场景,是典型的HTAP数据库技术的应用场景,测试数据根据真实情况采用倾斜分布,工作负载设计了在线事务转账与实时数据分析,评测指标方面,提出了基于事务处理吞吐量、查询处理吞吐量、混合处理吞吐量以及新鲜度的统一度量指标,使得HTAP数据库的评价更全面、准确。

3).评测指标

HyBench选取了OLTP的性能、OLAP的性能、OLTP与OLAP混合负载性能以及数据新鲜度作为衡量指标,以下为各测评指标的定义。

❖ 数据新鲜度

数据新鲜度指标反映OLAP负载访问到的数据的实时性,一般有两种衡量方式:

  • 统计OLAP分析的最新元组数目与OLTP所有更新的元组数目的比率,最高为1

  • 计算OLAP查询到最新数据的延迟时间

HyBench基准选择了延迟时间作为数据新鲜度的衡量指标,具体的计算方式为:在每个表单中有一个时间戳字段,在执行混合负载时,经过间隔时间段同时在OLTP与OLAP负载上进行查询,对比结果集的数据差异与时间戳差异,并将最大的时间戳差值作为数据新鲜度测量值。时间戳差值越小,代表延迟时间越短,则数据新鲜度指标越优。新鲜度是基于 OLXP 负载测试的性能度量指标,描述了查询结果集数据中的最大时间戳与最新事务数据时间戳间的差距,理想情况下,查询操作总是能读到最新的数据,即查询结果时间与最新事务时间完全一致,此时性能达到最优。根据上述描述,可将新鲜度的计算公式定义为:

其中,TM 是最新事务数据的时间戳,TQ 是查询结果集 Q 的最大时间戳,W 是所查询的实例(OLTP 实例或 OLAP 实例)。由于数据间同步往往有延迟,故新鲜度以整体数据查询最大延迟时间的平均值作为评价指标,以更好的评估 OLXP 负载的性能优劣。

❖ H-Score

H-Score指标综合了事务处理吞吐量TPS、分析查询吞吐量QPS、混合负载吞吐量XPS、数据新鲜度以及数据规模因子SF,公式表示如下:

H-Score是一个具有创新意义的衡量指标,它较全面的包含了量化 HTAP 数据库性能的各方面因素。H-Score的计算方式在本质上反映工作负载隔离和数据新鲜度之间的权衡,即工作负载隔离越好,混合负载性能 XPS 越高,但数据新鲜度指标也可能更差。因此 H-Score 作为 HyBench 基准的测评指标是客观合理的。

4).工具原理

3. HyBench实践

1).执行方法

2).配置文件

3).测试过程及结果

这里构造个简单模拟环境,验证 HyBench 工具的使用。环境中使用 MySQL 主从库,分别模拟 OLTP 和OLAP 环境。

测试的结果输出如下:

0
相关文章