3.4 数仓基准~TPC-H
TPC
事务处理性能委员会( Transaction ProcessingPerformance Council ),是由数 10 家会员公司创建的非盈利组织,总部设在美国。该组织对全世界开放,但迄今为止,绝大多数会员都是美、日、西欧的大公司。TPC 的成员主要是 计算机软硬件厂家,而非计算机用户,它的功能是制定商务应用基准程序(Benchmark)的标准规范、性能和价格度量,并管理测试结果的发布。
TPC 不给出基准程序的代码,而只给出基准程序的标准规范(Standard Specification)。任何厂家或其它测试者都可以根据规范,最优地构造出自己的系统(测试平台和测试程序)。(需要自己写测试工具,测试完之后 提交给TPC协会)为保证测试结果的客观性,被测试者(通常是厂家)必须提交给 TPC 一套完整的报告(FullDisclosure Report),包括被测系统的详细配置、分类价格和包含五年维护费用在内的总价格。该报告必须由 TPC 授权的审核员核实(TPC 本身并不做审计),现在 全球只有不到十个审核员,全部在美国。
TPC-H
TPC-H 的目的
TPC-H 主要目的是评价特定查询的决策支持能力,强调服务器在数据挖掘、分析处理方面的能力。查询是决策支持 应用的最主要应用之一,数据仓库中的复杂查询可以分成两种类型:一种是预先知道的查询,如定期的业务报表;另一种则是事先未知的查询,称为动态查询 (Ad- Hoc Query)。
通俗的讲,TPC-H 就是当一家数据库开发商开发了一个新的数据库操作系统,采用 TPC-H 作为测试基准,来测试衡量数据库操作系统查询决策支持方面的能力.
TPC-H 的衡量指标
它模拟决策支持系统中的数据库操作,测试数据库系统复杂查询的响应时间,以每小时执行的查询数(TPC-H QphH@Siz) 作为度量指标.
TPC-H 标准规范
TPC- H 标准规范由 10 章正文和 5 个附录组成。
数据库运行的环境条件
TPC- H 测试模型为数据库服务器连续 7×24 小时工作,可能只有 1 次/月的维护;多用户并发执行复杂的动态查询,同时有并发执行表修改操作。数据库模型见图 1,共有 8 张表,除 Nation 和 Region 表外,其它表与测试的数据量有关,即比例因 SF(Scale Factor)
数据库关系图以及表各个字段定义如下图
图 14 TPC-H 的数据表关联图
图 15 TPC-H 的数据库模型
由于数据量的大小对查询速度有直接的影响,TPC- H 标准对数据库系统中的数据量有严格、明确的规定。用 SF 描述数据量,1SF 对应 1 GB 单位,SF 由低到高依次是 1、10、30、100、300、1 000、3 000、10 000。需要强调,SF 规定的数据量只是 8 个基本表的数据量,不包括索引和临时表。
从 TPC- H 测试全程来看,需要的数据存储空较大,一般包括有基本表、索引、临时表、数据文件和备份文件,基本表的大小为 x;索引和临时空间的经验值为 3-5 位,取上限 5x;DBGEN 产生的数据文件的大小为 x;备份文件大小为 x;总计需要的存储空间为 8x。就是说 SF=1,需要准备 8 倍,即 8 GB 存储空间,才能顺利地进行测试
测试语句:22 个查询,2 个更新
3 个测试
TPC-H 测试分解为 3 个子测试:数据装载测试、Power 测试和 Throughput 测试。
建立测试数据库的过程被称为装载数据,装载测试是为测试 DBMS 装载数据的能力。装载测试是第一项测试,测试装载数据的时间,这项操作非常耗时。Power 测试是在数据装载测试完成后,数据库处于初始状态,未进行其它任何操作,特别是缓冲区还没有被测试数据库的数据,被称为 raw 查询。
Power 测试要求 22 个查询顺序执行 1 遍,同时执行一对 RF1 和 RF2 操作。最后进行 Throughput 测试,也是最核心和最复杂的测试,它更接近于实际应用环境,与 Power 测试比对 SUT 系统的压力有非常大的增加,有多个查询语句组,同时有一对 RF1 和 RF2 更新流。
度量指标
测试中测量的基础数据都与执行时间有关,这些时间又可分为:装载数据的每一步操作时间、每个查询执行时间和每个更新操作执行时间,由这些时间可计 算出:数据装载时间、Power@Size、Throughput@Size、QphH@Size 和$/QphH@Size。
TPC 基准列表
TPC 目前推出的基准程序
TPC 推出过许多基准程序,目前 11 套活跃基准程序,5 套不被业界接受而放弃(分别是 TPC-A、TPC-B、TPC-D、TPC-R、TPC-W 和 TPC- App)。
表格 7 TPC Active Benchmarks
Benchmar/ Document | 当前版本 | 目的 | Specification | Source Code |
---|---|---|---|---|
TPC-C | 5.11.0 | 测试数据库系统的事务处理能力。 | n/a | |
TPC-DI | 1.1.0 | TPC-DI_Tools_v1.1.0.zip | ||
TPC-DS | 2.9.0 | TPC-DS_Tools_v2.9.0.zip | ||
TPC-E | 1.14.0 | TPC-E_Tools_v1.14.0.zip | ||
TPC-H | 2.17.3 | 评价特定查询的决策支持能力,强调服务器在数据挖掘、分析处理方面的能力。 | TPC-H_Tools_v2.17.3.zip | |
TPC-VMS | 1.2.0 | n/a | ||
TPCX-BB | 1.2.0 | TPCX-BB_Tools_v1.2.0.zip | ||
TPCX-HCI | 1.1.3 | TPCx-HCI_Benchmarking_Kit_v1.1.3.zip | ||
TPCX-HS | 2.0.3 | TPCX-HS_Tools_v2.0.3.zip | ||
TPCX-IOT | 1.0.3 | TPCx-IoT_Tools_v1.0.3.zip | ||
TPCX-V | 2.1.3 | TPCx-V_Benchmarking_Kit_v2.1.3.zip |
备注:数据时间截止至 2018-9-8.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论