Mac上TPC-H数据导入postgresql教程
Mac上TPC-H数据导入postgresql教程
环境安装创建数据库导入数据
环境
软件版本号
MacOX10.12.2 (16C68)Postgre9.6.2
安装
安装postgre 1) 终端命令:brew install postgresql -v 2) 若出现Error: Cannot write to /usr/local/Cellar 可以输入以下命令进行解决 sudo chown -R $USER /usr/local下载dbgen 1)链接:https://github.com/electrum/tpch-dbgen 2)修改makefile.suite的103~112行
CC = GCC
DATABASE= SQLSERVER
MACHINE = LINUX
WORKLOAD = TPCH
3)在终端访问至该文件的根目录,输入make 4)在终端输入命令:./dbgen -s 1 -f 生成8个.tbl文件
创建数据库
启动PostgreSQl pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start关闭 PostgreSQL pg_ctl -D /usr/local/var/postgres stop -s -m fast用superuser登录数据库,template1表示没有要连的数据库 psql -U username -d template1创建一个PostgreSQL用户 createuser username -P给新创建的用户superuser的权限(为了之后能将.tbl里的文件copy到数据库中) alter user username superuser;为新用户创建数据库 createdb dbname -O username -E UTF8 -e连接数据库 psql -U username -d dbname -h 127.0.0.1
导入数据
创建表,tpc-h表的模式存储在dss.dll的文件上,拷贝并执行命令\dt查看8张表是否创建成功 数据预处理 dbgen生成的tbl文件需要修改,将每一行最后一个‘|’去掉,才能导入postgre。PostgreSQL requires that the delimiter should not appear at the end of every line. 预处理程序下载:https://github.com/babyLiyuan/TPC-H/blob/master/ProcessTblFile.java
public ProcessTblFile(Scanner in) {
String line =
"";
while(in.hasNextLine()){
line = in.nextLine();
StringBuilder newLine =
new StringBuilder(line);
int len = newLine.length();
if(newLine.charAt(len-
1)==
'|'){
newLine.deleteCharAt(len-
1);
}
System.out.println(newLine.toString());
}
}
导入数据 copy nation from ‘/Users/babyLiyuan/Documents/workspace/Postgre/files/nation1.tbl’ with delimiter as ‘|’; 添加外键、主键 1)修改tpch-dbgen文件夹中的dss.ri 2)psql -f 文件路径 数据库名称 psql -f /Users/babyLiyuan/Desktop/tpch-dbgen-master/dss.ri dbname以上步骤建议使用脚本批量执行 1)导入数据importData.txt 脚本下载: https://github.com/babyLiyuan/TPC-H/blob/master/importData.txt 脚本执行: psql –host=localhost –dbname=dbname –username=username –file=importData.txt –output=output.txt 2)添加外键、主键addKey.txt 脚本下载: https://github.com/babyLiyuan/TPC-H/blob/master/addKey.txt 脚本执行: psql –host=localhost –dbname=dbname –username=username –file=addKey.txt –output=output2.txt
参考博文:http://blog.csdn.net/zhoujl25/article/details/51067230
转载请注明原文地址: https://ju.6miu.com/read-671527.html