hawq通过gpfdist导入数据遇到的糟心事
1.单行记录size过大问题
1.1.报错事例
intelligence=# INSERT INTO hy_shiptarget_tb SELECT * from hy_shiptarget_tb_external ;
NOTICE: External scan from gpfdist(s) server will utilize 64 out of 160 segment databases
ERROR: gpfdist error - line too long in file /data/volume_b/hawq_intelligence_external/HY_SHIPTARGET_TB/INTELLIGENCE.HY_SHIPTARGET_TB-5-1.csv near (0 bytes) (url.c:1476) (seg34 192.168.2.6:40000 pid=677883)
DETAIL: External table hy_shiptarget_tb_external, file gpfdist://192.168.2.6:28808/*
1.2.报错说明
此ERROR的意思是csv文件中存在这样一行记录,此记录的大小超过了gpfdist一行记录大小的默认值32KB,可在启动gpfdist服务时添加-m参数解决此问题
1.3.解决办法
//在此设置了gpfdist一行记录大小为10MB
nohup gpfdist -d $path -p $port -l $log -m 10485760 &
1.4.参考资料
//gpfdist介绍
http://gpdb.docs.pivotal.io/4330/utility_guide/admin_utilities/gpfdist.html
2.个别字段size过大问题
2.1.报错事例
intelligence=# INSERT INTO hy_shiptarget_tb SELECT * from hy_shiptarget_tb_external ;
NOTICE: External scan from gpfdist(s) server will utilize 64 out of 160 segment databases
ERROR: value for column "imgfile" exceeds pagesize 1048576! (seg78 192.168.2.7:40000 pid=487967)
2.2.报错说明
此ERROR的意思是列“imgfile”的值超过了pagesize的默认大小1M,可在建表时添加pagesize参数和rowgroupsize参数解决此问题。
2.3.解决办法
create table hy_shiptarget_tb( imgfile text, name text )with(appendonly=true,orientation=parquet,compresstype=snappy,pagesize=10485760,rowgroupsize=83886080);
2.4.参考资料
http://blog.csdn.net/wzy0623/article/details/61196229
2.5.吐槽一下
这个问题在我写这篇博客之前,百度谷歌一下基本没有此条,不知道我写完后会不会多一个词条,希望可以帮助到和我一样遇到此问题的小伙伴。本来很简单的问题,就是因为对hawq不熟,搞了好久才找到解决办法,烦。估计用hawq的人不多,用gpfdist往hawq导数据的人更少。。。