ERROR: value for column "imgfile" exceeds pagesize 1048576! (seg78 192.168.2.7:40000 pid=487967)

时间:2021-06-05 12:21:10

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导数据的人更少。。。