Greenplum常用导数据方法及性能测试
- COPY 导入数据方法
- 1、生成数据文件
- 2、替换分隔符
- 2.1 使用gpadmin用户COPY数据到Greenplum中
- 2.2使用非gpadmin用户COPY数据到Greenplum中
- 3、查看效果
- 4、查看官网说明
- 5、Shell脚本导入数据
- 6、性能总结
- 6.1千兆网卡的性能总结
- 6.1.1 数据量的大小
- 6.1.2 查看数据的内容
- 6.1.3 开始导数据
- 6.1.4 查看表的详细信息
- 6.2 万兆网卡的性能总结
- 6.2.1 数据量的大小
- 6.2.2 查看数据的内容
- 6.2.3 开始导数据
- 6.2.4 查看表的详细信息
- 6.3 监控信息
- 6.3.1 主节点网卡信息
- 6.3.2 主节点的磁盘读写信息
- 6.3.3 主节点的CPU使用率信息
- 6.3.4 数据节点网卡信息
- 6.3.5 数据节点的磁盘读写信息
- 6.3.6 数据节点的CPU使用率信息
- 6.1千兆网卡的性能总结
- COPY 导出数据方法
- 1 查看表中的数据文件
- 2 导出CSV数据文件
- 3 查看导出的数据格式
COPY 导入数据方法
1、生成数据文件
$ cat source.txt
11111ddd22222
2、替换分隔符
2.1 使用gpadmin用户COPY数据到Greenplum中
$ cat replaceScript.sh
#!/bin/sh
# 生成隐藏字符
soh=`echo 1 | awk '{printf("%c", $1)}'`
replaceWord=$1
# 替换开始
sed -i 's/'$replaceWord'/'$soh'/g' $2
# 插入到greenplum数据库
cd /greenplum/soft/greenplum-db-5.8.0/bin
./psql -d ***** -h 192.****** -p 5432 -U gpadmin -c "COPY xiaoxu_test.xiaoxu_test FROM '/home/xiaoxu/gpload_test/$2' WITH csv DELIMITER E'\001' LOG ERRORS SEGMENT REJECT LIMIT 3000 ROWS";
标红的部分最好不用,这样可以确保数据的准确性。
E'\001' : 是ascii分隔符,详情请查看:https://blog.csdn.net/xfg0218/article/details/80901752
2.2使用非gpadmin用户COPY数据到Greenplum中
安装psql命令
#yum install postgresql -y
psql -d ****** -h 192.168.****** -p 5432 -U gpadmin -c "\\COPY xiaoxu_test.xiaoxu_test FROM '/home/xiaoxu/gpload_test/$2' WITH csv DELIMITER E'\001' LOG ERRORS SEGMENT REJECT LIMIT 3000 ROWS";
注意\\的问题
3、查看效果
$ sh psqlInsert.sh ddd source.txt
COPY 1
ddd: 是分隔符
source.txt:带有分隔符的文件
4、查看官网说明
http://postgresql.ru.net/manual/sql-copy.html
5、Shell脚本导入数据
# vi copyToGreenplum.sh
#!bin/sh
# 获取为文件所在的位置
basepath=$(cd `dirname $0`; pwd)
# scheam名字
scheamname='xiaoxu_test'
# 表名字
tablename='*******_20180812_20180812'
# 数据库名字
gpdatabase='******'
# gp服务器ip
gpip='192.168.******'
#gp port
gpport='2345'
# gp user
gpuser='gpadmin'
# 需要插入的文件的名字
dirfilename='mv_*****_20180812.csv'
# 替换双引号与隐藏字符
# sh asciiReplaceScriptAll.sh
# gp copy 开始时间
gpinsert_time=`date +'%Y-%m-%d %H:%M:%S'`
echo -e "GP COPY 数据开始...."
# 执行插入操作
psql -d $gpdatabase -h $gpip -p $gpport -U $gpuser -c "COPY $scheamname.$tablename FROM '$basepath/$dirfilename' WITH csv DELIMITER E'\001'";
# gp copy 结束时间
gpinsert_endtime=`date +'%Y-%m-%d %H:%M:%S'`
gpinsert_start_seconds=$(date --date="$gpinsert_time" +%s)
gpinsert_ent_seconds=$(date --date="$gpinsert_endtime" +%s)
time_of_use=$((end_seconds-start_seconds))
echo -e "\t $((time_of_use/3600)) h $((time_of_use%3600/60)) m $((time_of_use%3600%60)) s"
6、性能总结
6.1千兆网卡的性能总结
6.1.1 数据量的大小
$ du -sh mv_*******_20180812.csv
130G mv_*******_20180812.csv
6.1.2 查看数据的内容
$ head -n 1 mv_*******_20180812.csv
310000645D0435BED45B39E0531ECDA8C0463F2018020413595200008546上海佐洽房地产经纪有限公司闵行第一分公司3101120018106392151K7032018-02-02 00:00:00200000150214137361900-01-01 00:00:002018-02-02 00:00:002018-02-02 00:00:0031011210*************************000000000001900-01-01 00:00:0002018-08-08 09:54:29.000000,E20180204,E20180205,E20180206,E20180207,E20180212,E20180718,E2015030410e635326b318d6881ca0214c0831e6e65P01MA1GBWMN991310112MA1GBWMN9972E3B618BF6B3365E0531ECDA8C05E49E20150304D9FC431BDDA2CF143DDB0A89F76036F7**************
6.1.3 开始导数据
$ sh copyToGreenplum.sh
GP COPY 数据开始....
COPY 90700000
GP COPY 总耗时: 2 小时 32 分钟 8 秒
$ sh copyToGreenplum.sh
GP COPY 数据开始....
o0COPY 90700000
GP COPY 总耗时: 2 小时 54 分钟 35 秒
$ sh copyToGreenplum.sh
GP COPY 数据开始....
o0COPY 90700000
GP COPY 总耗时: 2 小时 46 分钟 35 秒
6.1.4 查看表的详细信息
select count(*) from*******_20180812;
2,7210,0000
select pg_size_pretty(pg_relation_size('*******_20180812'))
137 GB
6.2 万兆网卡的性能总结
6.2.1 数据量的大小
$ du -sh mv_enterprisebaseinfo_20180812.csv
130G mv_enterprisebaseinfo_20180812.csv
6.2.2 查看数据的内容
$ head -n 1 mv_enterprisebaseinfo_20180812.csv
310000645D0435BED45B39E0531ECDA8C0463F2018020413595200008546上海佐洽房地产经纪有限公司闵行第一分公司3101120018106392151K7032018-02-02 00:00:00200000150214137361900-01-01 00:00:002018-02-02 00:00:002018-02-02 00:00:0031011210*************************000000000001900-01-01 00:00:0002018-08-08 09:54:29.000000,E20180204,E20180205,E20180206,E20180207,E20180212,E20180718,E2015030410e635326b318d6881ca0214c0831e6e65P01MA1GBWMN991310112MA1GBWMN9972E3B618BF6B3365E0531ECDA8C05E49E20150304D9FC431BDDA2CF143DDB0A89F76036F7*******************
6.2.3 开始导数据
$ time psql -d stagging -h 192.168.***** -p 5432 -U gpadmin -c "COPY xiaoxu.*******_20180812_20180814 FROM '/home/xiaoxu/greenplum-load-data/oracle-export-greenplum/mv_*******_20180812.csv' WITH csv DELIMITER E'\001' LOG ERRORS SEGMENT REJECT LIMIT 3000 ROWS"
COPY 90700000
real 22m13.116s
user 0m0.003s
sys 0m0.002s
6.2.4 查看表的详细信息
select pg_size_pretty(pg_relation_size('*******_20180812_20180812'))
137 GB
select count(*) from *******_20180812_20180812;
2,7210,0000
分布键详细信息
select gp_segment_id,count(1) from *******_20180812_20180814 group by 1;
6.3 监控信息
6.3.1 主节点网卡信息
6.3.2 主节点的磁盘读写信息
6.3.3 主节点的CPU使用率信息
6.3.4 数据节点网卡信息
6.3.5 数据节点的磁盘读写信息
6.3.6 数据节点的CPU使用率信息
COPY 导出数据方法
1 查看表中的数据文件
2 导出CSV数据文件
$ psql -d ***** -h 192.168****** -p 5432 -U gpadmin -c "copy datafix.xiaoxu_df_entname to '/home/xiaoxu/shujudingzheng/data-dir/entname.csv' WITH DELIMITER AS E'\u0001' "
COPY 11807
3 查看导出的数据格式
$ head -n 3 entname.csv
11000020e38b8c4353938c014370906a7e0004中赣核(北京)投资发展有限公司
440000440125125021998031700074许村龙渡电镀厂
440000P-4da509af-be89-4ef8-b24a-4a4e97a96b57海宁市许巷乡郭湾村房屋装潢服务部
Greenplum常用导数据方法及性能测试相关推荐
- cfd计算linux windows,CFD计算分析时常用的数值模拟方法 | 坐倚北风
在运用计算流体力学CFD进行数值计算分析仿真时常用的离散化方法有:有限差分法.有限元法和有限体积法. 1.有限差分法 有限差分法是数值解法中最经典的方法.它是将求解区域划分为差分网格,用于有限个网格节 ...
- 几种常用的优化方法梯度下降法、牛顿法、)
几种常用的优化方法 1. 前言 熟悉机器学习的童鞋都知道,优化方法 ...
- python编程求导数_Python分享导数的方法
#coding:utf-8#一阶导def fun1(X, WINDOW = 5):result = []for k in range(WINDOW, len(X)-WINDOW):mid = (X[k ...
- 功能测试常用6种方法_建筑管道常用的8种连接方法
暖通风向标 本文来源 建筑工程鲁班联盟 建筑管道根据用途和管材,常用的连接方法有:螺纹连接.法兰连接.焊接.沟槽连接(卡箍连接).卡套式连接.卡压连接.热熔连接.承插连接等. 1. 螺纹连接 螺纹连接 ...
- SQLserver 常用函数适用方法(转载)
SQL Server 常用函数使用方法(持续更新) 之前就想要把一些 SQL 的常用函数记录下来,不过一直没有实行...嘿嘿... 直到今天用到substring()这个函数,C# 里面这个方法起始值 ...
- 数据维度爆炸怎么办?详解5大常用的特征选择方法
↑↑↑关注后"星标"Datawhale 每日干货 & 每月组队学习,不错过 Datawhale干货 作者:Edwin Jarvis,cnblog博客整理 在许多机器学习相关 ...
- 爬虫之常用数据解析方法
爬虫之常用数据解析方法
- selenium提取数据之driver对象的常用属性和方法
selenium提取数据之driver对象的常用属性和方法 在使用selenium过程中,实例化driver对象后,driver对象有一些常用的属性和方法 driver.page_source 当前标 ...
- 尚硅谷学习笔记-节点的常用属性和方法
节点的常用属性和方法[图片在末尾] 方法: 通过具体的元素节点调用 getElementsByTagName() 方法,获取当前节点的指定标签名孩子节点 appendChild( oChildNode ...
最新文章
- 基于Go语言来理解Tensorflow
- mybatis的注解开发之三种动态sql
- Ubuntu中使用WPS
- c++面向对象的程序设计
- ios加速计(可以用来检测摇动,自定义反应灵敏度)
- 最近在北京做银行软件项目亲身感受小总结
- HTML坐标不随着屏幕大小改变,HTML热区map坐标,随窗口大小自适应办法(javascript)...
- zTree v2.6 - v3.0 文件对比
- python课后题答案第二章_Python编程:从入门到实践——练习题答案(第二章)
- 【BZOJ3083】遥远的国度,树链剖分练习
- Java SringBoot demo
- python能做什么游戏-Python有做大型游戏的潜力吗?
- android交友php,android交友约会社交APP完整源码Dating App 3.7(服务端+客户端)
- 三轴机械臂逆运动学解算(附代码)
- c语言 输出1到n之间的全部素数,输出1到n中所有的素数
- kernel 打印时间戳
- 实时动态定位(RTK)
- 怎样在服务器上设置无线上网,设置无线路由器步骤 电信无线路由器的设置方法...
- sdcard/DCIM/.thumbnails文件夹里的庞然大物 是这样来的
- 【蓝桥真题5】带三百人训练了十天精选蓝桥真题,看看他们都练些什么(三门语言题解)