学习的资料
最新版本下载:https://www.tpc.org/tpc_documents_current_versions/current_specifications5.asp
还待验证:https://cloud.tencent.com/developer/article/1344308
版本的标准中文版解读官方文档:https://max.book118.com/html/2018/0716/8016002101001115.shtm
生成数据
进入 tpch-tool/dbgen中执行如下命名
生成的数据后显示耗费的时间(注:【time】记录生成200GB数据的耗费时间,【f】展示详细信息)
生成1G的数据
生成1G数据量的RF内容
查询与建表SQL
默认query语句存放的路径:tpch-tool/dbgen/queries。
创建8表的SQL:/tpch-kit/dbgen/dss.ddl。dss.ri是table外键约束生成文件
(注)如果在queries文件夹下无22条SQL,则用下面方法自动生成22条查询SQL
测试策略
上搭建minio的环境,minio的安装目录下新建data/tpc-h-100g,将TPC-H生成的测试数据(nation.tbl)直接复制到minio新建的目录下即可
minio中的数据导入到AtomData中
创建的表oss_customer与TPC-H中的表customer表字段、表结构与类型均保持一致
再次通过insert into的方式将数据从oss_customer写入到AtomData的customer表(注意,minio创建的映射表oss_customer会多出一列tmp,因此insert时需要手动写出每个列)
insert into REGION(R_REGIONKEY,R_NAME,R_COMMENT) select R_REGIONKEY,R_NAME,R_COMMENT from OSS_REGION;
此时就可以计算写入性能的时间
测试注意点
中有creat view和drop view,这部分可以单独出来写,query中只写query不涉及其他,view中的revenue0参数根据streamID变化,query中也注意此参数要修改
3次22条query的运行,将数据预热,把数据从磁盘写入到内存
select count(1)from ORDERS;去查看数据是否写入成功,写入结束会生成记录表
select count(1)from ORDERS;去查看是否有删除成功表数据,只有等脚本运行结束才可以去看
知识点总结
更适合OLTP类型的数据库,RF中包含的insert和delete更贴近于OLTP数据库的使用
与ORDERS的数据量占据了整体的83%
TPC-H测试的目的:减少在信息分析应用中出现操作的多样性
TPC基准模拟的是商用环境的操作端
TPC-H不包含验证数据库的连续性。也没有特定的系统功能可以设置用来测试数据库的连续性。但是满足规范中描述的要求也能产生相应的测试结果
1G的数据,后续的数据行数row=SF*1G的数据基础
和RF2的测试
Refresh Function Definition
注意事项:
RF1和RF2的数据
测试RF1之后注意校验insert的数据量是否正确,示例验证点:SF=100,则插入到orders表中的数据等于100*1500=150000行数据,同理验证lineitem表数据
官方给出的脚本如下
:向ORDERS 与 LINEITEM表中insert新的数据
LOOP (SF * 1500) TIMES
INSERT a new row into the ORDERS table
LOOP RANDOM(1, 7) TIMES
INSERT a new row into the LINEITEM table
END LOOP
END LOOP
RF2:从ORDERS 与 LINEITEM表中delete旧的数据
LOOP (SF * 1500) TIMES
DELETE FROM ORDERS WHERE O_ORDERKEY = [value]
DELETE FROM LINEITEM WHERE L_ORDERKEY = [value]
END LOOP
文档核心内容解析总结
一、商业和应用环境
适应的行业:汽车租赁、食品销售、供应商
TPC查询语句的特征:
非常复杂
各种各样的访问模式
带有随机特性
检查可获得数据的大部分
每个SQL互不相同
query时修改不同的值)
所有查询回答的商业问题
定价和促销
供货和需求管理
利润和收入管理
顾客满意度研究
市场份额研究
运输管理
就按实际
1.作者:Syw