2 Star 0 Fork 2

pf-qiu/gpdb-tpcds

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

TPC-DS测试组件

包含TPC-DS v3.2.0,gpdb目录下是gpdb上运行tpc-ds的脚本,主要包含数据生成与加载,查询修复,测试运行和统计等。非标准开源协议,参考EULA.txt。

准备工作

  • 规划测试规模和gpdb集群配置,TPC-DS测试数据量以GB为单位,最小标准测试为1TB(1000GB),脚本默认值为10GB,按需要修改。
  • 准备好gpdb集群环境,当前脚本主要运行在master节点上,要保证master节点剩余磁盘容量大于测试数据量,master节点9999端口可被segment节点访问。
  • 这里使用master节点生成并加载数据,如果需要使用单独ETL节点,参考最后一节。

生成数据

  • 在tools目录下直接make来编译数据生成工具dsdgen和dsqgen,不需要configure。
  • 切到gpdb目录,按目标数据量修改gen.sh中SC变量,单位GB。可按需要修改PARALLEL控制数据生成并行度,默认为可用逻辑cpu数。
  • 运行 gen.sh,数据和查询生成在data目录。

为了适配gpdb运行,对原查询进行了以下修改。所有修改都通过gen.sh完成,没有改变原来查询模板

  1. 查询2,14,23,49中部分子查询加alias
  2. 查询5,12,16,20,21,32,37,40,77,80,82,92,94,95,98包含date差值运算,gpdb的语法为'interval diffvalue'
  3. 删除查询30中包含的未定义列c_last_review_date_sk
  4. 查询36,70,86中ORDER BY使用了计算列的alias,替换为将原查询整个作为子查询再ORDER BY

数据加载

  1. source greenplum_path.sh,通常在/usr/local
source /usr/local/greenplum-db/greenplum_path.sh
  1. 创建数据库,执行schema.sql
createdb
psql -f schema.sql
  1. tables中包含所有要加载的表名,此列表可运行以下命令得到 grep "create table" schema.sql | awk '{print $3;}'
  2. 测试加载dbgen_version表
./load_data.sh dbgen_version

标准结果如下,可忽略EXTERNAL TABLE不存在错误

CREATE EXTERNAL TABLE
TRUNCATE TABLE
../data/dbgen_version_1_32.dat
INSERT 0 1
ANALYZE
  1. 加载全部数据
./load_all.sh

运行测试

  1. 运行单个query n,结果保存在n.out中,确认没有n.err文件
./run_single.sh 8
  1. 运行全部99个query
./run_all.sh
  1. 运行全部99个query N次,测试时间结果保存在/tmp/summary
./run_iterations.sh 5

单独ETL节点

如果master节点上磁盘空间紧张,或者可用cpu核心数不多,可以为数据生成和加载单独准备资源。此时需要保证ETL节点的9999端口可被所有segment访问到。替换gen.sh中MASTER_HOST变量为ETL节点的IP或域名即可,其它流程相同。

如需要其它端口,替换ext_table.sql中@host@:9999部分,以及load_data.sh中gpfdist -d /tmp -p 9999部分

空文件

简介

gpdb运行tpc测试 展开 收起
取消

发行版

暂无发行版

贡献者

全部

近期动态

不能加载更多了
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/pf-qiu/gpdb-tpcds.git
git@gitee.com:pf-qiu/gpdb-tpcds.git
pf-qiu
gpdb-tpcds
gpdb-tpcds
master

搜索帮助