日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關咨詢
選擇下列產品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關閉右側工具欄

新聞中心

這里有您想知道的互聯網營銷解決方案
Ubuntu環(huán)境使用TPC-DS工具生成測試數據

1、下載工具

兩種渠道

 a、官網(建議直接跳過~)

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

在信息填寫正確的情況下,無法下載??淳W友的解答,需要用谷歌瀏覽器才能下載。嘗試未果。

b、github上下載

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

ps:官方的包生成sql的時候會報錯,上面這個大神已經修復。

2、編譯

操作環(huán)境:ubuntu 16.04

進入TPC-DS工具包所在目錄,由于下載的是源碼,需要編譯后才能使用。

a、解壓

unzip  tpcds-kit-master.zip

b、編譯

編譯之前請確認依賴環(huán)境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++不熟悉,搜索了一下也沒有相關的解答。百思不得其解之下,換了個思路??赡苁堑谝淮尉幾g報錯生成的錯誤文件對第二次編譯產生的影響。

于是刪除解壓后的目錄,重新編譯成功。

如果生成dsdgen和dsqgen且無報錯,說明編譯成功

ll *gen

 3、生成數據

第一次使用這個工具我是一臉懵比的。因為官方的文檔特喵的根本看不懂?;叵胍幌拢闩龅讲皇煜さ腖inux命令是怎么做的?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 .tpl
  • -FILTER:重定向到標準輸出。

查看生成的SQL:

一共有99,每一個都要這樣生成多費勁呀。來寫個for循環(huán)一把生成所有的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)
    #執(zhí)行命令
    os.system(cmd)

去sql目錄下查看剛才生成的SQL:

這種情況下還是shell更快一點。

5、總結

  1. 通過TPC-DS,可以生成指定量級的數據。
  2. 碰到報錯不要慌,先google或bing,不要用某度,原因你懂的。
  3. TPC-DS基本用法已經總結完了,但是實際操作中還有很多問題,比如:
  • 我想要生成10T數據怎么搞?
  • 怎么判斷生成的數據是否正確呢?
  • child和parallel怎么使用?
  • 數據和SQL生成完了怎么測試?
  • 。。。。。。

分享標題:Ubuntu環(huán)境使用TPC-DS工具生成測試數據
地址分享:http://m.5511xx.com/article/dppiphh.html