7.1.3 Bigbench、BigDataBenchmark与TPC-DS

1.Bigbench

BigBench[1]是由Teradata、多伦多大学、InfoSizing、Oracle开发的一款大数据Benchmark。其设计思想和复用扩展的方式很具有研究价值,如果读者感兴趣,可以参阅论文:Bigbench:Towards an industry standard benchmark for big data analytics。

Bigbench可以作为Benchmark研究者的一个范例。Bigbench基于零售业的产品销售场景,用于评测的系统是大规模并行关系数据库和MapReduce类型的执行引擎。

BigBench的数据模型具有以下3种类型。

·结构化的数据:利用TPC-DS生成,筛选了TPC-DS的星型模型数据,并从中挑选部分典型关系表。

·半结构化的数据:利用网页浏览日志并通过PDGF工具生成,这些日志由零售业的客户的浏览页面产生。这些日志格式很像Apache服务器产生的日志格式,并和TPC-DS的数据模式融合,其数据规模也可以随着配置规模因子弹性调整。

·非结构化的数据:数据基于真实数据作为输入,进行采样,并利用字典通过一种使用马尔科夫链的算法生成的文本数据。同样,非结构化数据与结构化和半结构化数据融合。数据规模也可以根据配置的因子弹性动态增长。

整个数据生成器的数据模型如图7-1所示。

7.1.3 Bigbench、BigDataBenchmark与TPC-DS - 图1

图7-1 BigBench数据模型

BigBench的工作负载主要是针对零售业的大数据分析,同时覆盖了机器学习等算法。现在的工作负载还不是很多,但已经有30个Query。这个Benchmark工具还在扩展。

可以从以下几个维度来理解这个Benchmark工具现在和未来将要扩展的工作负载类型。

1)从业务维度:针对市场、销售、运营、供应链、报表5方面的负载。

2)从数据源的维度:针对结构化数据、半结构化数据、非结构化数据。

3)数据处理的方式和类型的维度:声明型语言、结构化语言或者二者的混合。

4)从分析技术的维度:统计分析、数据挖掘分析和采样报告3个维度。

2.BigDataBenchmark

BigDataBenchmark[2]是由中科院计算所开发的一款开源的大数据Benchmark。BigDataBenchmark集成了19个大数据Benchmark,并从应用情景维度、运营和算法维度、数据类型维度、数据源维度以及软件栈和应用类型维度综合考虑,开发出这款Benchmark用来公正地对比和评判大数据系统和架构。BigDataBenchmark包含多样的数据输入类型。感兴趣的读者可以参见论文:BigDataBench:a Big Data Benchmark Suite from Internet Services,访问官方主页:http://prof.ict.ac.cn/BigDataBench/publications/。

BigDataBenchmark的设计基于典型的大数据负载。由于在生产环境中,大数据应用的主导领域是搜索引擎、社交网络、电商。这三大领域占据了整个互联网80%的页面。BigDataBenchmark围绕这三大方向选取和开发相应领域的典型负载。

数据生成器也是基于这3个领域开发和设计的。针对搜索引擎领域产生文本数据,针对社交网络产生图数据,针对电商产生结构化关系表数据。

同时针对三大领域生成不同计算延迟的负载。在线(online)需要短的延迟;离线(offline)需要进行复杂数据计算分析;实时(Real-Time)需要交互式分析的负载。

3.TPC-DS

SQL on Hadoop产品的本质就是数据仓库系统,其作用是在大规模分布式的环境下分析和查询离线数据。TPC-DS(注:参见:TPC BenchmarkTM DS (TPC-DS):The New Decision Support Benchmark Standard。)广泛用于SQL on Hadoop的产品评测。但是,目前TPC-DS基准已经很难模拟越来越复杂的决策支持系统的业务需求。

TPC-H的数据模型满足数据库模式设计的第三范式,数据模型不是现在决策支持系统主流的星型模型或者雪花型模型,业务类型也不能很好地体现物化视图和索引等OLAP型查询引擎的优势,而且其数据表不能表达数据倾斜问题,限制了索引的过度使用。为了应对这个挑战,TPC组织推出了TPC-DS,现在也正在制作和推出大数据领域的Benchmark,但还未发布。所以现在很多厂商和科研院所采用TPC-DS暂时作为SQL on Hadoop的大数据测试的Benchmark。

传统数据仓库使用的主流Benchmark就是TPC-DS。我们可以使用TPC-DS最高生成100TB的数据,能够满足大数据量的要求。数据模式采用雪花型模式:24个平均含有18列的数据库表,同时提供了99个典型Query供用户使用。这些Query类型丰富,如Ad-hoc Query、Reporting Query等,满足用户多方面的要求。

笔者在2013年参与学校DB-IIR实验室的SQL on Hadoop结构化大数据测试,采用TPC-DS作为Benchmark测试大数据分析系统,这个测试结果在中国大数据大会2013上发布,并在VL DB 2014的workshop上进行了公布。

当时采用的查询负载有以下几种。

(1)单表查询


  1. --qA5o--
  2. select ss_store_sk as store_sk ss_sold_date_sk as date_sk
  3. ss_ext_sales_price as sales_price ss_net_profit as profit
  4. from store_sales
  5. where ss_ext_sales_price>20
  6. order by profit
  7. limit 100
  8. --qA9--
  9. select count(*) from store_sales
  10. where ss_quantity between 1 and 20
  11. limit 100

(2)Ad hoc查询:—qB65g—(2表连接)


  1. select ss_store_sk
  2. ss_item_sk
  3. sumss_sales_price as revenue
  4. from store_sales
  5. join date_dim onstore_sales.ss_sold_date_sk =date_dim.d_date_sk
  6. where d_month_seq between 1176 and 1176+11
  7. group by ss_store_sk ss_item_sk
  8. limit 100

(3)星型查询:—qD27go—(5表连接)


  1. select i_item_id s_state avgss_quantity agg1 avgss_list_price agg2
  2. avgss_coupon_amt agg3 avgss_sales_price agg4
  3. from store_sales ss
  4. join customer_demographics cd onss.ss_cdemo_sk = cd.cd_demo_sk
  5. join date_dim dd onss.ss_sold_date_sk = dd.d_date_sk
  6. join store s onss.ss_store_sk = s.s_store_sk
  7. join item i onss.ss_item_sk = i.i_item_sk
  8. where
  9. cd_gender = 'M' and
  10. cd_marital_status = 'S' and
  11. cd_education_status = 'College' and
  12. d_year = 2002 and s_state='TN'
  13. group by i_item_id s_state
  14. order by i_item_id s_state
  15. limit 100

(4)复杂查询:—qD6gho—(5表连接)


  1. select a.ca_state state count(*) cnt
  2. from customer_address a
  3. join customer c ona.customer_address.ca_address_sk =
  4. c.c_current_addr_sk
  5. join store_sales s onc.c_customer_sk = s.ss_customer_sk
  6. join date_dim d ons.ss_sold_date_sk = d.d_date_sk
  7. join item i ons.ss_item_sk = i.i_item_sk
  8. group by a.ca_state
  9. having count(*) >= 10
  10. order by cnt
  11. limit 100

[1] 参见论文:BigBench:Towards an Industry Standard Benchmark for Big Data Analytics。

[2] 参见:BigDataBench,A Big Data Benchmark Suite,ICT,Chinese Academy of Sciences。