阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Ubuntu环境使用TPC-DS工具生成测试数据

429次阅读
没有评论

共计 2260 个字符,预计需要花费 6 分钟才能阅读完成。

1、下载工具

两种渠道

 a、官网(建议直接跳过~)

地址:http://www.tpc.org/tpc_documents_current_versions/current_specifications.asp

Ubuntu 环境使用 TPC-DS 工具生成测试数据

在信息填写正确的情况下,无法下载。看网友的解答,需要用谷歌浏览器才能下载。尝试未果。

b、github 上下载

地址:https://github.com/gregrahn/tpcds-kit.git

ps:官方的包生成 sql 的时候会报错,上面这个大神已经修复。

2、编译

操作环境:Ubuntu 16.04

进入 TPC-DS 工具包所在目录,由于下载的是源码,需要编译后才能使用。

a、解压

unzip  tpcds-kit-master.zip

b、编译

编译之前请确认依赖环境 ok

ubuntu:

1 sudo apt-get install gcc make flex bison byacc git

CentOS/RHEL:

1 sudo yum install gcc make flex bison byacc git
tpcds-kit-master/tools

make  -f  Makefile.suite

编译过程中报错:

Ubuntu 环境使用 TPC-DS 工具生成测试数据

make: yacc: Command not found。报错是因为 yacc 没有安装。

安装 yacc

sudo apt-get install -y byacc

再次编译

又报错对‘yy_create_buffer’未定义的引用。对 C /C++ 不熟悉,搜索了一下也没有相关的解答。百思不得其解之下,换了个思路。可能是第一次编译报错生成的错误文件对第二次编译产生的影响。

于是删除解压后的目录,重新编译成功。

Ubuntu 环境使用 TPC-DS 工具生成测试数据

如果生成 dsdgen 和 dsqgen 且无报错,说明编译成功

ll *gen

 3、生成数据

第一次使用这个工具我是一脸懵比的。因为官方的文档特喵的根本看不懂。回想一下,你碰到不熟悉的 Linux 命令是怎么做的?man 或者 –help,对吧。这里也可以用 –help。

先不着急生成数据,看一下帮助信息先。

./dsdgen  --help

Ubuntu 环境使用 TPC-DS 工具生成测试数据

  • DIR:数据存放目录。
  • SCALE:数据量,以 GB 为单位。
  • TABLE:生成哪张表的数据,一共有 24 张表哦。
  • PARALLEL:生成的数据一共分为多少份,一般生成 TB 级数据才会用到。
  •  CHILD:当前数据是第几份,与 PARALLEL 配对使用。
  • FORCE:强制写入数据。

常用的参数就上面几个。下面我们来生成 1G 包含所有表的数据。

./dsdgen  -scale 1 -dir ../data/

Ubuntu 环境使用 TPC-DS 工具生成测试数据

等待 dsdgen 程序正常退出后,1G 数据需要 2~3min 左右,进入 data 目录查看生成的数据。

cd ../data

Ubuntu 环境使用 TPC-DS 工具生成测试数据

假如只想生成其中某一张表的数据呢?这就需要用到 -table 参数了,以 web_returns 表为例。

./dsdgen  -scale 1 -dir ../data -table web_returns

报错了,信息如下:

Ubuntu 环境使用 TPC-DS 工具生成测试数据

web_returns 是子表,它是依赖于父表 web_sales 的。生成父表的时候也会同时生成子表,我们来验证一下。

./dsdgen  -scale 1 -dir ../data -table web_sales

Ubuntu 环境使用 TPC-DS 工具生成测试数据

说明一下,最终生成的数据量以少于 scale 值的。

dsdgen 的用法暂时先总结到这里。

 4、生成 SQL

查询 SQL 使用 dsqgen 生成,主要用于测试数据仓库的性能,一共 99 个。详细用法可以用 –help 查看帮助信息。这里不做介绍直接生成。

./dsqgen  -DIRECTORY ../query_templates/ -TEMPLATE "query1.tpl" -DIALECT netezza -FILTER Y > ../sql/query1.sql
  • -DIRECTORY:SQL 模板的路径 
  • -TEMPLATE:SQL 模板的名称 
  • -DIALECT:include query dialect defintions found in <s>.tpl
  • -FILTER:重定向到标准输出。

查看生成的 SQL:

Ubuntu 环境使用 TPC-DS 工具生成测试数据

一共有 99, 每一个都要这样生成多费劲呀。来写个 for 循环一把生成所有的 SQL。

shell 版:

#!/bin/sh
for i in `seq 1 99`
do
./dsqgen  -DIRECTORY ../query_templates/ -TEMPLATE “query${i}.tpl” -DIALECT netezza -FILTER Y > ../sql/query${i}.sql
done

Python3 版:

#coding:utf-8
import os
print(“generate query sql”)
for i in range(1,100):
    tpl = “query”+str(i)+”.tpl”
    qsql = “query” +str(i) +”.sql”
    #拼接命令
    cmd = “./dsqgen  -DIRECTORY ../query_templates/ “+”-TEMPLATE “+tpl+” -DIALECT netezza -FILTER Y > “+”../sql/”+qsql
    #print(cmd)
    #执行命令
    os.system(cmd)

去 sql 目录下查看刚才生成的 SQL:

Ubuntu 环境使用 TPC-DS 工具生成测试数据

这种情况下还是 shell 更快一点。

5、总结

  1. 通过 TPC-DS,可以生成指定量级的数据。
  2. 碰到报错不要慌,先 google 或 bing,不要用某度,原因你懂的。
  3. TPC-DS 基本用法已经总结完了,但是实际操作中还有很多问题,比如:
  • 我想要生成 10T 数据怎么搞?
  • 怎么判断生成的数据是否正确呢?
  • child 和 parallel 怎么使用?
  • 数据和 SQL 生成完了怎么测试?
  • 。。。。。。

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-22发表,共计2260字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中

星哥玩云

星哥玩云
星哥玩云
分享互联网知识
用户数
4
文章数
19348
评论数
4
阅读量
7805725
文章搜索
热门文章
开发者必备神器:阿里云 Qoder CLI 全面解析与上手指南

开发者必备神器:阿里云 Qoder CLI 全面解析与上手指南

开发者必备神器:阿里云 Qoder CLI 全面解析与上手指南 大家好,我是星哥。之前介绍了腾讯云的 Code...
星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛 NAS-6:抖音视频同步工具,视频下载自动下载保存 前言 各位玩 NAS 的朋友好,我是星哥!...
云服务器部署服务器面板1Panel:小白轻松构建Web服务与面板加固指南

云服务器部署服务器面板1Panel:小白轻松构建Web服务与面板加固指南

云服务器部署服务器面板 1Panel:小白轻松构建 Web 服务与面板加固指南 哈喽,我是星哥,经常有人问我不...
我把用了20年的360安全卫士卸载了

我把用了20年的360安全卫士卸载了

我把用了 20 年的 360 安全卫士卸载了 是的,正如标题你看到的。 原因 偷摸安装自家的软件 莫名其妙安装...
星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛 NAS-3:安装飞牛 NAS 后的很有必要的操作 前言 如果你已经有了飞牛 NAS 系统,之前...
阿里云CDN
阿里云CDN-提高用户访问的响应速度和成功率
随机文章
安装并使用谷歌AI编程工具Antigravity(亲测有效)

安装并使用谷歌AI编程工具Antigravity(亲测有效)

  安装并使用谷歌 AI 编程工具 Antigravity(亲测有效) 引言 Antigravity...
开发者必备神器:阿里云 Qoder CLI 全面解析与上手指南

开发者必备神器:阿里云 Qoder CLI 全面解析与上手指南

开发者必备神器:阿里云 Qoder CLI 全面解析与上手指南 大家好,我是星哥。之前介绍了腾讯云的 Code...
开发者福利:免费 .frii.site 子域名,一分钟申请即用

开发者福利:免费 .frii.site 子域名,一分钟申请即用

  开发者福利:免费 .frii.site 子域名,一分钟申请即用 前言 在学习 Web 开发、部署...
从“纸堆”到“电子化”文档:用这个开源系统打造你的智能文档管理系统

从“纸堆”到“电子化”文档:用这个开源系统打造你的智能文档管理系统

从“纸堆”到“电子化”文档:用这个开源系统打造你的智能文档管理系统 大家好,我是星哥。公司的项目文档存了一堆 ...
星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛 NAS-6:抖音视频同步工具,视频下载自动下载保存 前言 各位玩 NAS 的朋友好,我是星哥!...

免费图片视频管理工具让灵感库告别混乱

一言一句话
-「
手气不错
星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛 NAS-6:抖音视频同步工具,视频下载自动下载保存 前言 各位玩 NAS 的朋友好,我是星哥!...
星哥带你玩飞牛NAS硬件 01:捡垃圾的最爱双盘,暴风二期矿渣为何成不老神话?

星哥带你玩飞牛NAS硬件 01:捡垃圾的最爱双盘,暴风二期矿渣为何成不老神话?

星哥带你玩飞牛 NAS 硬件 01:捡垃圾的最爱双盘,暴风二期矿渣为何成不老神话? 前言 在选择 NAS 用预...
浏览器自动化工具!开源 AI 浏览器助手让你效率翻倍

浏览器自动化工具!开源 AI 浏览器助手让你效率翻倍

浏览器自动化工具!开源 AI 浏览器助手让你效率翻倍 前言 在 AI 自动化快速发展的当下,浏览器早已不再只是...
你的云服务器到底有多强?宝塔跑分告诉你

你的云服务器到底有多强?宝塔跑分告诉你

你的云服务器到底有多强?宝塔跑分告诉你 为什么要用宝塔跑分? 宝塔跑分其实就是对 CPU、内存、磁盘、IO 做...
星哥带你玩飞牛NAS-12:开源笔记的进化之路,效率玩家的新选择

星哥带你玩飞牛NAS-12:开源笔记的进化之路,效率玩家的新选择

星哥带你玩飞牛 NAS-12:开源笔记的进化之路,效率玩家的新选择 前言 如何高效管理知识与笔记,已经成为技术...