一、TPC-DS介绍
TPC(Transaction Processing Performance Council)是一家非营利性组织,专注于开发以数据为中心的benchmark standards,并向行业传播客观、可验证的数据。而TPC-DS(decision support)是一个决策支持基准,它对决策支持系统的几个普遍适用的方面进行建模,包括查询和数据维护。该基准作为一个通用决策支持系统,提供了一个具有代表性的性能评估。TPC-DS使用了一个真实的业务场景——商品销售来测试系统性能。在给定硬件、操作系统和数据处理系统配置的条件下,通过在单用户模式和多用户模式中的查询性能以及数据维护性能,TPC-DS测试可以获得客观的被测系统(System Under Test,SUT),如大数据系统的性能数据。目前TPC-DS的的版本为Version 3。
TPC-DS模拟了任何必须管理、销售和分销产品的行业(如食品、电子产品、家具、音乐和玩具等)中的公司。它利用了一家大型零售公司的商业模式。除了开设实体店外,该公司还通过商品目录和互联网销售商品。除了用来建模相关的销售和退货的表外,它还包括一个简单的库存系统和一个促销系统。TPC-DS的模型是一个雪花模型,拥有事实(Fact)表和维度(dim)表。事实表共7张:store_sales,store_returns,catalog_sales,catalog_returns,web_sales,web_returns,inventory。维度表共17张::store,call_center,catalog_page,web_site,web_page,warehouse,customer,customer_address,customer_demographics,date_dim,household_demographics,item,income_band,promotion,reason,ship_mode,time_dim。维度表分为以下几类:static(不会改变的维度,比如data维度,),historical(所做的更改的历史记录,比如item维度),non-historical(新纪录覆盖历史记录,总是使用最新数据,比如customer维度)。
二、测试流程
通过TPC-DS官方提供的工具“DSGen-software-code-3.2.0rc1”,我们可以生成不同数据规模的数据和针对此数据规模的99个查询query。我们可以通过尺度因子(Scale Factor,SF)来控制数据规模,官方文档中包含1TB,3TB,10TB,30TB,100TB数据量的表行数信息。
TPC-DS测试执行的顺序为:
- Load Test(加载数据)
- Power Test(单线程处理一个query stream,包含99个查询)
- ThroughPut Test 1 (并行运行≥4个query streams)
- Data Maintenance Test 1 (一些数据的refresh,替换成新的数据)
- Throughput Test 2 (第二次并行运行≥4个query streams)
- Data Maintenance Test 2 (第二次一些数据的refresh,替换成新的数据)
三、评分标准
TPC-DS测试的评分标准有三个:
- 性能指标(Performance Metric):QPhDS@SF
- 价钱-性能指标(Price-Performance Metric):$/kQphDS@SF
- 系统可用的日期(System availability date)
3.1 QPhDS@SF
QPhDS@SF反应系统的吞吐量,越大越好,计算公式如下:
- SF为尺度因子,测试数据量的大小,单位为GB
- Q=Sq*99,为总查询语句数量=查询流数*99,查询流streams要求偶数且≥4
- TPT=TPower*Sq为多个顺序流的总时间,TPower为Power Test的总时间
- TTT= TTT1+TTT2, 为两次ThroughPut Test的总时间
- TDM= TDM1+TDM2,两次Data Maintenance Test的总时间
- TLD =0.01*Sq*TLoad,为 0.01*查询流数*加载时间
- TPT, TTT, TDM and TLD 的单位为秒,精度为小数点后两位
3.1 $/kQphDS@SF
$/kQphDS@SF反应单位性能指标上的价格,值越小说明性价比越高,计算公式如下:
- P 为TPC定价规范中的价格
- QphDS@SF 为吞吐量
四、参考文章
官方网站:TPC-Homepage