Pivotal HAWQ之数据入库的几种方式

最快的方式 将本地文件作为外部表来入库 

1,source /usr/local/hawq/greenplum_path.sh
或者直接把上面一行写入到 /etc/profile 里面,这样不用每次都敲 source 命令了。
 
2,需要单独开一个终端 运行gpfdist 这个程序
 
3,运行好了gpfdist后  就可以在psql中创建外部表 并且进行数据入库操作了
使用的不是出异常的file协议了
使用的是刚刚说的 gpfdist协议  具体建表语句如下:
CREATE EXTERNAL TABLE test
(
phone_num bigint,
imei_num TEXT,
star_data integer,
end_data integer,
city TEXT,
brand_id SMALLINT,
vip integer,
state integer,
customer_num integer,
is_group integer,
mind_high integer,
channel_num integer,
area TEXT
) LOCATION('gpfdist://mdw/data/SGSN_right_130.csv') FORMAT 'TEXT' (DELIMITER = E'|');
 
备注 gpfdist的根目录是 /home/gpadmin 所以上面的路径是mdw/data/....而不是/mdw/home/gpadmin/data/...
gpfdist默认端口好像是8080,有时候可能会端口冲突 需要修改一下,具体怎么修改我还没找到。
 
然后进行入库操作
 
insert into 内部表 select * from 外部表

--------------------------------------------------------

其他方式:

本地文件直接入库

cat /home/gpadmin/data/SGSN_right_130.csv | psql -p 5432 -c "COPY table_name FROM STDIN DELIMITER E'\t' NULL E''; "

/home/gpadmin/data/SGSN_right_130.csv-本地文件路径

-p 5432指定PSQL端口

 table_name 就是要入库的表明

 DELIMITER E'\t'  表示以制表符分割,如果不是的话 可自行将\t更换为别的。


将HDFS中的文件当作外部表来入库

A:创建外部表关联HDFS文件
create external table table_name(字段) LOCATION('pxf://mdw:50070/test/test1.csv?Fragmenter=HdfsDataFragmenter&Accessor=TextFileAccessor&Resolver=TextResolver') FORMAT 'TEXT' (DELIMITER = E'|');
 
A:创建外部表关联HDFS文件方式2
create external table table_name(字段) LOCATION('gphdfs://hostname:port/test/test1.csv?Fragmenter=HdfsDataFragmenter&Accessor=TextFileAccessor&Resolver=TextResolver') FORMAT 'TEXT' (DELIMITER = E'|'); 

test/test1.csv 是HDFS下的路径

Fragmenter=HdfsDataFragmenter&Accessor=TextFileAccessor&Resolver=TextResolver制定的规则,具体我也说不清。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值