FT问题汇总

环境与版本:FT2.3.0,SQL SERVER2016 span2,psql6.16.2,edge
不定期更新

1.表输入字段预览报错,后台报“Response should include 'x-content-type-options' header.”

解决:查询HTTP协议安全头部X-Content-Type-Options引入的问题发现是微软浏览器的问题,换了谷歌竟然真的好了。甚至也能在Edge上使用了,虽然后台还有报错。

2.fdload任务中断,消息报错ERROR: invalid input syntax for type timestamp: "" (seg7 slice1 ip:端口 pid=2101)

解决:看到后第一反应是不会不支持空字符串吧!?一查无法将CSV复制到postgreSQL表中:timestamp列不接受空字符串果然如此:PSQL TIMESTAMP不支持空字符串进来。

3.ERROR: length for type varchar cannot exceed 10485760

解决:看起来是varchar长度太长了,找到那几个nvarchar字段,发现有超过10485760的(1073741823),改成10485760,这是PSQL在UTF8下varchar的最大长度。

4.Parameter update_columns cannot reference column(s) in distribution key ("new_srv_workorderid")

解决:更新的字段不能设置成分布键。分布键就是GP在建表的时候,选取某字段作为分布排列依据的字段(distribution by column_name)。

5.表输入预览等操作报“network error"错误

解决:这是网络问题,检查黑名单与防火墙拦截。

6.FT任务的封装

解决:使用“生成记录”组件作为表输入,随便添加个字段命个名;使用“执行任务”组件作为封装组件。
注:
1. 每次更新子任务时,该封装后的任务需手动重启才能载入更新后子任务。
2. fdload的子任务吃内存,不要在一个执行任务中放入过多有fdload的子任务。

7.FDLOAD更新与合并更新不生效

解决:使用“表输出”组件,在写入设置中选择更新或者插入更新等。

8.130200005,Step FDLoade输出 initialize failed.

解决:后面的fdload输出会影响前面的表输入预览,把输出侧配置好或删除即可。

9.ERROR: value too long for type character(1) (seg0 slice1 10.8.32.180:40000 pid=21566)

解决kettle建表时会获取SQL SERVER bit类型字段为char(1),需手动改成bool类型。FT表输入SQL SERVER数据源获取bit类型字段时,需要手动改成bool类型。

10.数据管道:no mapping for jdbcType: -16

解决:使用数据管道时,从SQL SERVER到FD的表中有ntext字段时,会报错。有相关类型时别用管道。

11.ERROR: function lpad(boolean, integer, unknown) does not exist 建议:No function matches the given name and argument types. You might need to add explicit type casts. 位置:1305 Call getNextException to see other errors in the batch.

解决:使用数据管道时,表输出组件有 BIT 类型字段时,会报错。有相关类型时别用数据管道。

12.FT表输出建表为严格大小写建表,若希望不严格大小写,建议使用kettle建表功能。

注:
12.1 kettle建表时会获取SQL SERVER bit类型字段为char(1),需手动改下
12.2 GP建表后需更新分布键与主键,语句为:

alter table ods.tablename set distributed by(tablenameid);
alter table ods.tablename add primary key(tablenameid);

12.3 建表时注意添加表注释,语句为:

comment on column tablename.columnname is '注释内容';

posted @ 2021-10-12 15:38  沧浪浊兮  阅读(1919)  评论(0编辑  收藏  举报