• 中美研究人员发现新型狗流感病毒 2019-05-29
  • 豫园商城升级改造:这些楼顶可见最好的风景--旅游频道 2019-05-14
  • 头条 —频道 春城壹网 七彩云南 一网天下 2019-05-14
  • 人为某种意识而奋斗是幸福的,获得成绩或成就更幸福。 2019-05-10
  • 【专题】省违反中央八项规定精神和“四风”问题线索举报平台 2019-05-09
  • 确定这是热身赛?吴前拼到大腿抽筋 拆绷带继续干 2019-05-09
  • 应对排放新规 大众德国工厂计划短暂停产 2019-04-26
  • 一师一团土地确权登记颁证工作全面展开 2019-04-26
  • 一语惊坛(5月31日):“我们不一样”,中国向世界许下一个承诺。 2019-04-22
  • 俄罗斯世界杯F组:球迷风采 2019-04-10
  • 5月份国民经济数据发布:中国经济持续稳中向好 2019-04-10
  • 贵州宣讲十九大:干部争当宣讲员 群众心窝暖洋洋 2019-03-25
  • 别空谈,说说看,这个“简单的逻辑关系”是什么关系? 2019-03-25
  • 快过闪电,MIUI 10与MIUI 9速度对比 2019-03-21
  • 泽州去年“免费教育”资金达5211万元 2019-03-19
  • 使用TPC-DS工具生成数据

    1、下载工具

    快乐彩开奖号码 www.752o.com 两种渠道

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

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

    在信息填写正确的情况下,无法下载??赐训慕獯?,需要用谷歌浏览器才能下载。尝试未果。

    b、github上下载

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

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

    2、编译

    操作环境:Ubuntu16

    进入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

    编译过程中报错:

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

    安装yacc

    sudo apt-get install -y byacc

    再次编译

    又报错对‘yy_create_buffer’未定义的引用。对C/C++不熟悉,搜索了一下也没有相关的解答。百思不得其解之下,换了个思路??赡苁堑谝淮伪嘁氡ù砩傻拇砦笪募缘诙伪嘁氩挠跋?。

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

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

    ll *gen

     3、生成数据

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

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

    ./dsdgen  --help

     

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

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

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

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

    cd ../data

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

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

    报错了,信息如下:

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

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

    说明一下,最终生成的数据量以少于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:

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

    shell版:

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

    Python3版:

     1 #coding:utf-8
     2 import os
     3 print("generate query sql")
     4 for i in range(1,100):
     5     tpl = "query"+str(i)+".tpl"
     6     qsql = "query" +str(i) +".sql"
     7     #拼接命令
     8     cmd = "./dsqgen  -DIRECTORY ../query_templates/ "+"-TEMPLATE "+tpl+" -DIALECT netezza -FILTER Y > "+"../sql/"+qsql
     9     #print(cmd)
    10     #执行命令
    11     os.system(cmd)

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

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

    5、总结

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

         后面有时间再总结。

     

    posted @ 2019-03-17 01:27 秦无殇 阅读(...) 评论(...) 编辑 收藏
  • 中美研究人员发现新型狗流感病毒 2019-05-29
  • 豫园商城升级改造:这些楼顶可见最好的风景--旅游频道 2019-05-14
  • 头条 —频道 春城壹网 七彩云南 一网天下 2019-05-14
  • 人为某种意识而奋斗是幸福的,获得成绩或成就更幸福。 2019-05-10
  • 【专题】省违反中央八项规定精神和“四风”问题线索举报平台 2019-05-09
  • 确定这是热身赛?吴前拼到大腿抽筋 拆绷带继续干 2019-05-09
  • 应对排放新规 大众德国工厂计划短暂停产 2019-04-26
  • 一师一团土地确权登记颁证工作全面展开 2019-04-26
  • 一语惊坛(5月31日):“我们不一样”,中国向世界许下一个承诺。 2019-04-22
  • 俄罗斯世界杯F组:球迷风采 2019-04-10
  • 5月份国民经济数据发布:中国经济持续稳中向好 2019-04-10
  • 贵州宣讲十九大:干部争当宣讲员 群众心窝暖洋洋 2019-03-25
  • 别空谈,说说看,这个“简单的逻辑关系”是什么关系? 2019-03-25
  • 快过闪电,MIUI 10与MIUI 9速度对比 2019-03-21
  • 泽州去年“免费教育”资金达5211万元 2019-03-19
  • 骰子卡通 河北快三昨天开奖号码 七星彩走势图表带坐标连线 ps4古墓奇兵攻略 穿越火线本子 绝地求生女角色下体去内裤 近十期体彩p3试机号 魔术兔电子游艺 黄河风采彩票走势图 0809德甲赛程表 福利彩票分分钟快三计划手机软件 荒野行动下载游戏 全民突击如何解锁佣兵 福建时时彩最新88期 广东彩票app下载安装 英雄联盟洲际赛