转自:https://www.csdn.net/article/2015-05-14/2824680


摘要:为了方便企业选择合适的大数据测试基准,本文将在分析总结现有成果的基础,进一步讨论大数据测试基准应该具有的要素;并以此为基础,对比现有的大数据测试基准;然后重点讨论TPC-DS测试基准。

【编者按】基于业内对大数据技术的需求,各种基于开源技术的商业产品得到了长足的发展。然而对于用户来说,如何才能客观地比较不同的数据管理系统,基准测试的研究也被提了出来。本文中,谭磊讲解了大数据测试基准应该具有的要素,并以此为基础对比了现有的大数据测试基准,然后重点讨论TPC-DS测试基准。

以下为原文

随着开源Hapdoop、Map/Reduce、Spark、HDFS、HBASE等技术的商用化,大数据管理技术得到了突飞猛进的发展。一般来说,大数据具有3V特性,即Volume(海量)、Velocity(高速)和Variety(多样)[1]。TPC联合主席、Cisco高级工程师Raghunath Nambiar进一步认为大数据还面临Value(价值)和Veracity(精确)的挑战。如何客观地比较不同数据管理系统,即大数据测试基准的选择,成为一个重要的研究课题。

事务性能管理委员会(TPC)是目前最知名的数据管理系统评测基准标准化组织。在过去二十多年间,该机构发布了多款数据库评测基准,如TPC-A、TPC-D、TPC-H和TPC-DS,在业界得到了广泛应用[2]。BigBench和BigFrame是对TPC-DS进行多样化的数据扩充的测试基准。近年来,Apache开源社区针对Map/reduce架构开发了多款性能测试用例,如TestDFSIO、teraSort。国内对大数据测试基准的研究起步较晚,尚未建立起权威的测试基准。目前由中国信息通信研究院牵头,联合中科院计算所及国内外知名公司和机构共同制定的大数据测试基准正在金罗密布的测试中[3]。

为了方便企业选择合适的大数据测试基准,本文将在分析总结现有成果的基础,进一步讨论大数据测试基准应该具有的要素;并以此为基础,对比现有的大数据测试基准;然后重点讨论TPC-DS测试基准。

大数据测试基准的选择

企业在选择大数据测试基准时,首先应考虑基准与其自身业务的相关性。

1. 与其自身业务的相关性

它主要描述测试基准设定的应用场景是否与企业的实际业务场景类似,如基于社交网络应用的评测基准与银行系统的应用场景就没有什么相关性。不相关的基准,测试结果再好,也没有实际意义。相关性还要考虑测试基准所采用的数据模型是否代表数据仓库的发展方向,如基于星型模型的开发要比基于传统的关系模型开发更加有效。

当然,一套行之有效的大数据测试基准包含许多其它要素。Jim Gray及金澈清等学者[4]已经对度量选取、模拟数据生成器、工作负载设定、审计等要素进行了详细论述。除此之外,本文还认为测试基准的健壮性、SQL标准的兼容性和通用性/可移植性也是重要的要素。

2. 模拟数据生成要具有真实性

它描述了测试基准是否仿真真实应用场景,所产生的模拟数据是否与真实数据相似。

3. 工作负载的设定具有可扩展性

它描述该评测基准是否适用于不同规模的计算机系统,许多评测基准会使用标度因子来决定模拟数据的规模,通过调整标度因子来得到不同规模的工作负载。

4. 度量的选取的可理解性

它衡量该评测基准是否易于为用户理解,不易为用户理解的基准的可信程度也较低。

5. 客观性与公正性

众所周知,在竞技比赛中,一个人不能既是运动员又是裁判员。测试基准好比竞技比赛中的裁判员,应该由中立的第三方机构制定。事实也证明,在各个领域最受欢迎的测试基准都是有第三方机构设计的。过去20多年的经历证明TPC系列基准是数据库领域最为广泛接受的基准。除此之外,第三方机构的审计也是保证证评测结果的客观性与公正性的重要手段。

6. 健壮性

测试基准要足够健壮,不能轻易被“hack”,这对测试结果的公平性非常重要。例如对TPC-H的前身TPC-D,通过物理化视图,Oracle的性能比Micosoft的SQLServer高100倍,这些显然是不公平的。因此TPC组织规定TPC-H测试中物理化视图是不和法的。但是除非是专业人员,一般用户很难判定测试过程中视图有没有被物理化。TPC-DS在健壮行方面要好很多,因为它的SQL本身比较复杂,也比较多,Hack起来相对困难,并且只hack几个SQL对整体性能提高有限。

7. SQL标准兼容性

SQL是ANSI为统一各个数据库厂商之间的编程差异定义的标准,已发布SQL86、SQL92、SQL99、SQL2003等版本。这些标准已经被主流的商用(例如Oracle、DB2、SQL server)以及开源的数据库产品(例如MySQL、mSQL和PostgreSQL)的广泛采用。对整个数据库产业的发展起到了巨大的推动作用。大数据是个新兴的领域,它的发展不能完全抛弃原有的应用。如果不能全面支持SQL标准,现有系统的移植非常困难,学习曲线就会变长。

8. 通用性/可迁移性

通用性描述是否可在不同数据库系统和架构上实现指定的评测基准。测试基准不应该规定实现的细节,而只需要定义测试规范。DBMS只要遵循规范得到正确的结果,就是合理的测试,无论其基于Map/Reduce、Spark还是其他的技术,也不管其底层存储是用HDFS、HBASE还是其他方式。

大数据测试基准对比

经过30几年的研究,传统数据库测试基准的研究已经相当成熟,在各个领域出现了行之有效的测试基准。随着大数据应用的发展,大数据测试基准的研究最近几年逐渐兴起,但大都是在传统的测试基准的基础进行裁剪、扩充、综合。金澈清等学者[4]对数据库基准的发展概述如图1所示。

本文重点关注被列为大数据测试基准的相关基准、BigFrame[5]以及TPC-DS,对其它的基准本文不再赘述,有兴趣的读者请参阅文[4]。

1. Map/reduce性能测试

如文[4]中所述,MRBench、HiBench、TestDFSIO、Sort/teraSort只是针对Map/Reduce框架,目的是评测运行Map/Reduce框架的集群的性能。CALDA基准尝试比较不同架构在数据管理方面的性能。这些测试过于简单,无法模拟复杂的应用,也不通用。

2. YCSB/YCSB++/LinkBench

这是一组针对网络应用的测试基准。YCSB(Yahoo! Cloud Serving Benchmark)及其扩展YCSB++测试查询回复的延时等云服务系统中云计算的特点,如查询回复的延时、纵向扩展和弹性加速比、并行性测试等。LinkBench是一个基于社交网络应用的评测基准。它仿真Facebook公司的图数据管理应用,包括数据特性、工作负载以及度量等。这些都是公司开发的针对自己特定应用场景的测试基准,很难在整个行业内进行推广。

3. BigBench

BigBench是一款面向商品零售业的基准,它扩展了TPC-DS,综合考虑多种数据模态,增加了半结构化数据Web Log和非结构化数据Reviews。其负载的生成是TPC-DS定制化的版本。BigBench包含30个查询。BigBench基本数据模型如图2所示:

4. BigFrame

BigFrame是一个测试基准生成器[5],用户可以根据自己的需求定制专有测试基准。在目前实现中,其关系模型与BigBench类似,也是基于TPC-DS。同时它扩展了半结构化和非结构化的数据Tweets以及图形化数据Followee/Follower。BigFrame基本数据模型如图3所示:

如文[5]所述,大数据与决策支持系统(DSS)并不是完全独立的,大数据也不能抛弃传统。DSS系统中,只要数据量足够大,都可以认为是大数据问题。被化为大数据测试基准的BigBench和BigFrame的大部分内容都来自于TPC-DS,从这个意义上讲,TPC-DS不但是一种结构数据的大数据测试基准,而且是其它大数据测试基准的基础。

TPC-DS

TPC-DS测试基准是TPC组织推出的用于替代TPC-H的下一代决策支持系统测试基准。因此在讨论TPC-DS之前,先介绍一下TPC-H。

1. TPC-H

TPC-H是一款面向商品零售业的决策支持系统测试基准,它定义了8张表,22个查询,遵循SQL92。TPC-H的数据模型如图4所示。TPC-H基准的数据库模式遵循第三范式,叶晓俊教授等学者[6]认为“它的数据表数据特征单一(如数据不倾斜) ,其数据维护功能仅仅限制了潜在的对索引的过度使用,而没有测试DBMS 执行真实数据维护操作——数据提取、转换和加载(ETL) 功能的能力”。同时,新兴的数据仓库开始采用新的模型,如星型模型、雪花模型。TPC-H已经不能精准反映当今数据库系统的真实性能。为此,TPC组织推出了新一代的面向决策应用的TPC-DS 基准。

2. TPC-DS

TPC-DS采用星型、雪花型等多维数据模式。它包含7张事实表,17张纬度表平均每张表含有18列。其工作负载包含99个SQL查询,覆盖SQL99和2003的核心部分以及OLAP。这个测试集包含对大数据集的统计、报表生成、联机查询、数据挖掘等复杂应用,测试用的数据和值是有倾斜的,与真实数据一致。可以说TPC-DS是与真实场景非常接近的一个测试集,也是难度较大的一个测试集。

TPC-DS的这个特点跟大数据的分析挖掘应用非常类似。Hadoop等大数据分析技术也是对海量数据进行大规模的数据分析和深度挖掘,也包含交互式联机查询和统计报表类应用,同时大数据的数据质量也较低,数据分布是真实而不均匀的。因此TPC-DS成为客观衡量多个不同Hadoop版本以及SQL on Hadoop技术的最佳测试集。这个基准测试有以下几个主要特点:

  • 一共99个测试案例,遵循SQL'99和SQL 2003的语法标准,SQL案例比较复杂

  • 分析的数据量大,并且测试案例是在回答真实的商业问题

  • 测试案例中包含各种业务模型(如分析报告型,迭代式的联机分析型,数据挖掘型等)

  • 几乎所有的测试案例都有很高的IO负载和CPU计算需求

叶晓俊等学者对这些查询的分部总结如表1所示[6]。典型的Store_Sales的数据模型如图5所示。这个基准测试的完整信息请参考http://www.tpc.org/tpcds/。

3. TPC-DS认证现状

TPC-DS以其高标准、高要求得到大家的广泛认知,理应得到广泛的应用,但是到目前为止还没有任何厂商得到TPC官方的认证。究其原因,本文认为:

  • 传统的数据库厂商,DBMS系统比较成熟,SQL的支持也相当完善,但是其分布式、并行处理能力欠缺,导致其性能很差。所以传统的厂商不愿意发布测试结果。

  • 新型的计算模型如Map/Reduce、spark,具有较好的并行处理能力,但是SQL的兼容性比较差,如HiveSQL、SparkSQL只支持40个SQL,从而也无法发布TPC-DS测试报告。尽管如此,各厂商还是通过非TPC官方的途径发布TPC-DS的部分测试结果,以展现其在性能方面的提升。由此可见大家对TPC-DS的程接受度。

结束语

大数据评测基准用于公平、客观地评测不同大数据库产品/平台的功能和性能,对人们选择合适的大数据分析决策系统具有重要的参考价值。随着国内外各代表性的Hadoop发行版厂商以TPC-DS为标准测评产品,TPC-DS也就逐渐成为了业界公认的大数据系统测试基准。但是随着大数据应用在各行各业的发展,测试基准也需不断与时俱进。大数据测试基准仍然面临着诸多挑战,还需要政府、学术界和工业界的紧密合作。

编外话:对于用户来说,产品的测试绝对不是自己可以轻易完成的事情。而为了更好地取信潜在用户,对产品做基准测试应为每个产品/服务提供商的首要工作之一。而据编者所知,国内已经有一些提供商开始从事类似方面的工作,比如星环的TPC-DS 500G的功能、性能及其兼容性测试已经得到上海市计算机软件评测实验室的认证。

参考文献

  • Big data: Science in the petabyte era. Nature, 2008, 455: 1-136

  • www.tpc.org

  • www.dca.org.cn

  • 金澈清, 钱卫宁, 周敏奇, 周傲英,数据管理系统评测基准:从传统数据库到新兴大数据,计算机学报, 2014.

  • M. Barata, etc, Survey on Big Data and Decision Support Benchmarks, LNCS 8645, 174–182, 2014.

  • 陈旦,叶晓俊,施霖, TPC-DS性能测试工具的实现, 计算机应用,第31 卷,第9期, 2011.

关于作者:谭磊,复旦计算机学士、美国杜克计算机硕士。美国微软总部服务13年,是数据分析、数据挖掘、产品研发及管理、互联网广告和互联网营销方面的专家。《New Internet:大数据挖掘》《数据掘金:电商数据运营》两书作者。

转载于:https://blog.51cto.com/yntmdr/2143932

解析大数据基准测试——TPC-H or TPC-DS相关推荐

  1. 一篇文章看懂TPCx-BB(大数据基准测试工具)源码

    TPCx-BB是大数据基准测试工具,它通过模拟零售商的30个应用场景,执行30个查询来衡量基于Hadoop的大数据系统的包括硬件和软件的性能.其中一些场景还用到了机器学习算法(聚类.线性回归等).为了 ...

  2. 解析大数据思维的五大商业本质以及思维变革

    问题:为什么要进行大数据分析? 第一章  解析大数据思维的五大商业本质 1.  大数据的5V特点 2.  大数据应用下需要正视的误区 3.  大数据的分类 4.  应用 5.  大数据的核心竞争力 市 ...

  3. 【涨姿势】网络术语解析—— 大数据

    大数据 big data 大数据(big data),指无法在可承受的时间范围内用常规软件工具进行捕捉.管理和处理的数据集合,是需要新处理模式才能具有更强的决策力.洞察发现力和流程优化能力的海量.高增 ...

  4. 搜狗2016校园招聘之编程题解析-大数据开发

    搜狗2016校园招聘之编程题解析-大数据开发 解题思路: 使用JDK中的Point2D类,该类定义了坐标系空间中的一个点 Point2D是一个抽象类,但是在该类内部定义了静态的Double类,并且Do ...

  5. BAT大厂的架构大数据你有了解么?解析大数据技术及算法

    本篇从大数据架构的角度全面解析大数据技术及算法,探讨大数据的发展和趋势,全面介绍大数据的相关技术.算法和一些应用场景,帮助读者培养大数据的技术选型和系统架构能力. 不仅对大数据相关技术及算法做了系统性 ...

  6. 全面解析大数据解决方案的架构层

    大数据解决方案的逻辑层可以帮助定义和分类各个必要的组件,大数据解决方案需要使用这些组件来满足给定业务案例的功能性和非功能性需求.这些逻辑层列出了大数据解决方案的关键组件,包括从各种数据源获取数据的位置 ...

  7. eXtremeDB金融版横扫大数据基准测试指标项

    2016年7月27日作为eXtremeDB®<Financial Edition-金融版>数据库管理系统(DBMS)的开发者,McObject®宣布:在STAC-M3™ 的Kanaga套件 ...

  8. 为您解析大数据的未来趋势

    趋势一:数据的资源化 何为资源化,是指大数据成为企业和社会关注的重要战略资源,并已成为大家争相抢夺的新焦点.因而,企业必须要提前制定大数据营销战略计划,抢占市场先机. 趋势二:与云计算的深度结合 大数 ...

  9. 深度解析 | 大数据面前,统计学的价值在哪里?

    来源:机器学习算法与Python实战 本文约8100字,建议阅读8分钟 本文介绍了关于统计学与大数据的一些观点. 统计学对大数据的意义 很高兴有这样一个机会,我能与大家在这里做一些关于统计学与大数据的 ...

最新文章

  1. “System.Data.Entity.ModelConfiguration.ModelValidationException”类型的未经处理的异常在 EntityFramework.dll 中发生
  2. Linq中使用Left Join 和 Right Join
  3. eclipse中通过search打开第二个文件时 第一个文件就自己关闭了
  4. .net mysql数据库_.net连接MySQL数据库
  5. 从Nest到Nesk -- 模块化Node框架的实践
  6. 比特币的密钥、地址、钱包
  7. 【转】使用 Element-UI 的 Loading 组件-以服务的方式调用
  8. 反爬机制能绕过?动态ip代理来教你怎么做
  9. 高斯克吕格投影中有关带号与经度的关系
  10. 计算机系统修复命令提示符,win10怎么用命令提示符修复电脑 用命令提示符修复win10电脑的方法...
  11. Kindle 文档生成工具
  12. 深度长文!阿里总监的内心思考,聊聊企业数据和技术架构的进化史
  13. 畅阳题库管理系统-在线考试(h5+小程序)Java开源版本
  14. 华为交换机批量加入 Vlan 方法
  15. source not found解决方法(亲测)
  16. word文件解除保护模式让其可编辑
  17. HTML5期末大作业:个人介绍/个人主页/网页设计——个人博客 (11页) HTML+CSS+JavaScript
  18. hdu 2222 AC 自动机 模版(数组实现)
  19. 【VJudge】【Legilimens Contest 1】
  20. 全域、全要素、全过程的数字化国土空间治理之道

热门文章

  1. 追格小程序重磅升级 新亮点来袭!
  2. SLAM学了2年还是不会?每一步其实都是脚印
  3. 网络大数据采集与整理课程学习中遇到的主要问题及解决
  4. POJ1753 filp game
  5. R2LIVE论文翻译: A Robust, Rea-time, LiDAR-Inertial-Visual tightly-coupled state Estimator and mapping.
  6. 初尝Mcafee之通过Mcafee Agent部署VirusScan【05】
  7. 信贷系统开发优化的那些事儿
  8. 计算机新安装系统后桌面上有什么图标,电脑重装系统后桌面文件如何恢复?新技巧分享...
  9. 编服图涵生NCI.SNAP.v2.571 1CD+MaxSEA
  10. 2019最新多款毕业季照片排版素材,附送图片排版神器