历史版本21 :数据开发问题排查 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

 1. 数据同步编辑

1.1 数据同步节点设置后运行任务,任务日志界面报错关键字:脏数据或Too many dirty error

1.1.1 脏数据详细报错为:“Long类型不能转为Bytes”


原因:

tinyint(1)类型字段被代码读取为bit类型字段

解决方案:

数据连接中增加参数?tinyInt1isBit=false

1.1.2 脏数据详细报错为: 脏数据条数检查不通过,限制是[(0]条, 但实际上捕获了[1]条或 limit [0] records , but catch [13] records

继续查看fanruan.log日志是否有相关报错。

原因1

查看来源表中某字段有空值,但是目标表中该字段设置了不可为空

解决方案:

过滤掉来源表中某字段为空的数据,或者设置目标表字段可为空

原因2

来源数据与目标数据的字段类型或字段长度对不上

解决方案:

修改目标表字段类型、字段长度,与来源表相符

原因3

当 IDENTITY_INSERT 设置为 OFF 时,不能为表 'CB' 中的标识列插入显式值。

解决方案:

数据库配置问题set IDENTITY_INSERT Student ON。

小结

报错脏数据目前发现的原因有:

1.字段类型不匹配 

2.字段长度不够

3.inentity insert设置为off

4.复制节点没有点击字段映射

1.2 数据同步节点设置后运行任务,任务日志界面报错:您填写的参数值不合法

报错详细

com.fr.dp.exception.FineDPException: Code:[DBUtilErrorCode-02], Description:[您填写的参数值不合法.]. - 您的配置文件中的列配置信息有误. 因为您未配置写入数据库表的列名称,fdi获取不到列信息. 请检查您的配置并作出修改.

原因:

来源表字段获取失败

解决方案:

检查来源表数据预览是否成功,若是数据库数据源,可能是sql语法错误,若是API数据源,可能token失效

1.3 数据同步节点中,预览数据来源报错:无法获取已存在的目标表

查看fanruan.log日志报错:不支持的字符集(在类路径中添加orai18n.jar)

原因:

lib中缺少orai18n.jar包

解决方案:

FDL的lib中增加orai18n.jar包即可

1.4 数据同步节点中,数据来源选择RestAPI,预览时执行失败

报错详细:

com.fr.dp.exception.FineDPException: API_DATA_INVALID_ERROR - ApiReader can't get data of column [data], please check api response.

原因:

API数据源token失效,读不到data字段

解决方案:

重新获取API数据源的token

1.5 数据同步节点中,数据来源选择RestAPI,预览时显示数据为空值

原因:

请求头中可能未指定通过json的格式进行取数

解决方案:

点开更多配置,请求头中添加: {"Content-Type":"application/json"}

1.6 数据同步节点中,数据来源选择RestAPI,预览时报错Warning: wrong json format

原因:

导入的是表格形式,如果不写,就是识别表格,会报错

解决方案:

请求头加上:{"Content-Type":"application/json"}

1.7 数据同步节点设置后,运行任务显示:服务器内部错误

原因1:核实触发了20009规则,该规则主要拦截POST数据请求体解码后包含”%“、”$“等特殊字符的攻击特征,这些字符通常是代码执行攻击利用到字符,所以被识别为攻击拦截了。

解决方案:

条件分支用到了$,特殊字符需要加密传输,可以先给$ 这个字符开通道,如下图,或对这个ip加白名单

原因2:

服务器禁用了put和delete请求,安装插件“put和delete转换为post”即可。

1.8 数据同步节点设置后运行任务,任务日志界面报错:数据连接异常

数据连接异常- DataBase[testnora]'s table[ceshi1] get pk names failed! - Table 'testnora.ceshi1' doesn't exist

解决方案:

要在数据连接的url处,增加:?useUnicode=true&characterEncoding=UTF-8

1655436971eGQY[1].png

1.9 数据去向为GPload时,运行任务出现“connection disabled”的报错,如下图所示:

a89ed3fd09678ea538769253f8d6bd3.png

原因:fd没访问成功对应接口;网络连接问题

解决方案:检查下fdl服务器的15500端口有没有开放;fd服务器能否ping通fdl服务器

1.10 数据同步页面无报错,读取正常但是插入卡住


原因:

可能是目标库发生了锁表

解决方案:

检查目标表是否锁表,检查方式和解锁方式见网络:https://blog.csdn.net/zbh1957282580/article/details/122457542

注:该动作会直接结束锁表进程,有可能会影响他人使用数据库,结束前请注意确认该进程来源


2. 数据转换编辑

2.1 数据转换节点保存后运行,任务日志界面报错:Spark执行错误

报错信息:[数据关联]: Spark执行错误- org apache spark sql. execution joins .exception.N2NInterruptException - null

原因:

spark自己的保护机制,数据量过大避免宕机时触发,关联结果膨胀超过5倍 + 关联数据量大于 1kw出现

2.2 DB表输出为GreenPlum(并行装载)时报错:Data write error - connection disables

原因:

gpdfist不支持放置路径有空格

解决方案:

放置文件的路径下有空格,换个文件夹放置,并重启gpfdist进程

2.3 简道云入库MySQL报错Table doesn't exist

原因:

简道云字段过长,字段类型不匹配

解决方案:

通过字段设置修改对应字段的长度

3. SQL脚本编辑

3.1 节点中直接使用call 存储过程不生效

原因:

存储过程没有指定数据库模式,jdbc方式没有识别

解决方案:

除Mysql数据库外,其他数据库的存储过程、数据表调用时,建议均增加模式名:call 模式名.存储过程名

3.2 sql脚本节点运行后,任务日志界面报错:jeva.sql.sQLException: Incorrect string value: "xE7\x8E\x8B\xE5\xA9\x7...' for column 'user_ name' at row 1

原因:

一节点使用自动建表创建目标表A,二节点使用手动建表语法创建目标表B,三节点将目标表A的数据进行汇总插入到目标表B,报错的原因是自动创建的目标表编码格式和手动创建表的编码格式不同,如下图:

解决方案:

手动创建表时,指定目标表编码格式和自动创建表格式相同

CREATE TABLE IF NOT EXISTS `test1234` (
`user_name` varchar(255) DEFAULT NULL,
`numbers` varchar(255) DEFAULT NULL
)charset=utf8mb4

3.3 sql脚本节点运行后,任务日志界面报错

Code:[DatasourceError. 008], Description:[Cached table data has been removed].Code:[DICommon-20], Describe:[Shutdown command received.]

原因:

sql脚本】先删除数据库前两天的数据,【数据同步】把excel的数据同步到数据库预览正常且数据量不大,但数据计算有点大,预览时间超过六十秒

解决方案:

如果超过60s,会自动清除服务器数据集对象

3.4 SQL脚本运行时会有服务器内部错误

原因:

left join 前面加了空格会报错,防火墙把敏感词过滤导致请求挂了

解决方案:

需要修改防火墙进行放行

4. 任务运行编辑

4.1 所有任务均无法执行,报错无法执行cloudpayorder

原因:

Finedb中存在两条一样的数据

解决方案:

SELECT * FROM "fine_dp_conf_entity_x"

where value_class = 'WorkAttributeEntity' and entity_value like '%%'

先看fanruan.log里面的报错信息,定位到错误信息:


  1. 打开finedb,找到fine_dp_conf_entity_x

  2. 执行上述sql语句,找到日志里的圈起来的dp文件。

  3. 删除其中一个文件即可

4.2 任务执行失败,报错:com.mysql.jdbc.execeptions.jdbc4.MySQLNonTransientConnectionException

No operations allowed after connection closed;

原因:

工程的MySQL版本是5.7.37,使用了5.1.37版本的驱动Jar,导致不匹配

解决方案:

MySQL和MySQL驱动版本不匹配,换一下驱动即可

4.3 GP到GP数据库任务执行失败,报错信息:SQL执行失败

原因:

临时表的建表规则是ext_gpload_组件ID_模式名_表名_时间戳,由于表名太长了,导致后面的被截断,出现了重复表名,外部表创建失败。

解决方案:

把复用临时表改成了否,就可以执行成功。

5. FDL启动编辑

5.1 报错:数据平台启动未成功,请稍等

原因

查看fanruan.log日志,报错未知的名称或服务

解决方案:

参考:https://blog.csdn.net/M983373615/article/details/103195151,修改/etc/hosts 成功安装

原因2

日志无相关报错,但是缺少jar包:fine-bi-engine-third-5.1.jar,新增即可。

解决方案:

jar包下载见帮助文档:FineDataLink集成部署-https://help.fanruan.com/finedatalink/doc-view-44.html

原因3

FR版本和FDL版本不匹配,报错Data Platform start failed,fine-data-prep-11.0.jar:?

fine-data-prep-11.0.jar还是插件版本的FDL,属于很久之前的版本,而FR已经是最新的版本,两者之间不匹配,查看catalina.out日志报错如下:

解决方案:

升级FDL版本,参考帮助文档即可,插件版FDL需要先删除旧jar包[fine-data-prep-11.0.jar],再放入新jar包,注意备份。

5.2 启动报错:检测到1项配置异常,数据库连接异常

原因:

一般是集成版本FDL会出现该问题,主要是FR的内置库不能多线程连接,有其他应用正在使用内置库,导致报错。

解决方案:

切换为外置库,或者删除db.lck。FR安装目录\webapps\webroot\WEB-INF\embed\finedb 下的 db.lck 文件删除。

注:该方法在运行一次后仍会报错,需要反复删除 db.lck 文件。

5.3 Linux环境FDL启动报错

原因:

FDL安装包默认通过GUI图形化页面启动,但是在linux环境下是没有图形化页面的,所以报错 ,在启动时添加 -c命令,使启动策略调整成通过控制台的方式。

解决方案:

报错文档:https://stackoverflow.com/questions/21131855/could-not-initialize-class-sun-awt-x11graphicsenvironment-on-solaris,操作方法:./XXX.sh -c

5.4 使用sh安装后,linux安装./FineDataLink命令无法启动


产生原因:

linux环境语言不对

解决方案:

linux语言LANG改为zh_CN.UTF-8,改好后重连一下shell再启动FDL

5.5 使用sh命令无法启动,报错Unpacking JRE


解决方案:

yum install -y fontconfig

yum install -y urw-fonts

安装一下字体,检查看下路径下面有没有残留,有的话删掉,重新部署下可以

5.6 安装启动进入浏览器的时候报错database is not initilized

原因:

tomcat和服务器内存都比较小

解决方案:

修改tomcat内存大小,catalina.bat.参考BI是增加如下语句,具体数值需要自己修改

set JAVA_OPTS=%JAVA_OPTS% -Xms4g -Xmx8g

set  JAVA_OPTS=%JAVA_OPTS% -XX:PerBytecodeRecompilationCutoff=-1

set  JAVA_OPTS=%JAVA_OPTS% -XX:PerMethodRecompilationCutoff=-1

5.7 安装FDL报错环境缺少文件

原因:

Windows环境缺少文件

解决方案:

https://blog.csdn.net/Tianxuan_kong/article/details/120060738

6. 参数赋值编辑

6.1 参数赋值下游节点报错:SQL执行失败

1656384930Faqh[1].png

原因:

参数赋值中选择“文本型分隔”后,在下游的数据同步节点中引用时,加了引号“”

解决方案:

如果参数赋值选择了数值型参数,则后续传递的参数,在引用中需要加引号;如果选择了文本型分隔,则后续传递的参数,不需要加引号。具体操作如下图所示:

16554478249Yti[1].png

1655448007dYwt[1].png


7. 数据连接编辑

7.1 GPload数据连接报错“检测gptdist环境失败”

3d467d94082b6a1b88763f8316c6f86.png

原因:

在上传gpfdist文件时,先解压再上传至linux服务器。

解决方案:

在上传该文件时,需要先把压缩包上传到linux服务器,再进行解压,即可解决该问题。

7.2 数据连接异常,报错表不存在 Table 'xxxt' doesn't exist

原因:

数据连接这个用户没有建表权限

解决方案:

检查是否开放了用户相关表的权限

7.3 SQL server数据连接连不上,报错com.microsoft.sqlserver.jdbc.SQLServerException:

驱动程序无法使用安全套接字层(SSL)加密与 SQL Server 建立安全连接。

错误: No appropriate protocol (protocol is disabled or cipher suites are inappropriate)。

解决方案:

先排查是否是驱动版本不匹配,测试过无误后,发现是jdk版本有问题,更换jdk版本后可以或更换服务器。

也可能是没有Java环境,修改FDL的jre下的文件就好。参考:https://blog.csdn.net/weixin_46990454/article/details/125217693

7.4 阿里云MySQL数据库连接报错

com.fr.third.alibaba.druid.pool.GetConnectionTimeoutException: wait millis 10003, active 0, maxActive 50, creating 1, createElapseMillis 20014 at com.fr.third.alibaba.druid.pool.

原因:

不在阿里云白名单内

解决方案:

不在阿里云白名单内,需要将FDL服务器加入白名单内

7.5 Oracle数据连接报错:ora-12505:TNS:监听程序当前无法识别连接描述符中所给出的SID


原因:

SID和数据库名称搞混了

解决方案:


7.6 Presto数据连接报错 SQL执行失败

报错:java.sql.SQLException: Connection is in auto-commit mode - java.sql.SQLException: Connection is in auto-commit mode

原因:

驱动版本问题

解决方案:

0.273.2的Prosto至少要换成0.169的驱动

8. 消息通知编辑

8.1 企业微信消息通知

运行时报错:javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target

产生原因及解决方案:

关掉了外网访问,内网IP与外网不通,导致消息通知时报错,开启外网访问就好。

9. 数据管道编辑

9.1 管道运行中报错:Exception during get all topics from broker

ERROR  Exception when realtime job run - com.fr.dp.exception.FineDPException: exception during get all topics from broker.

原因:

kafka未启动

解决方案:

检查传输队列的测试连接可不可以成功,重启Kafka

9.2 kafka测试连接失败


解决方案:

Kafka测试连接失败,把meta.properties. 这个文件删了启起来了

9.3 数据管道报错,但是测试连接成功


原因:

有一个表配置了336个字段,实际上这个表只有289个字段。

解决方案:

同步的表中目标表有个同名表是已经存在的,但是表结构是不一样的,导致报错。

9.4 kafka启动失败


原因:

Kafka和zookeeper关闭先后顺序不对导致的问题

解决方案:

kafka服务依赖于zookeeper服务,需要先启动 zookeeper,再启动 Kafka。

关闭时则相反,先关闭Kafka,再关闭zookeeper

9.5 配置传输队列的时候,报错connect timeout


原因:

FDL和Kafka不在一台机器上,需要跨服务器访问,而kafka默认是localhost访问,因此需要在配置文件设置ip进行访问

解决方案:

在server.properties需要配置listeners,如下:


10. 外接数据库编辑

10.1 配置外置数据库MySQL5.7.26提示数据库连接中,点击测试连接报错

原因:

数据库账号的权限不足,无法自动建表

解决方案:

配置外接数据库的地方没有报错,在测试连接的地方有个报错,是因为MySQL账号权限不足,无法自动建表。

11. Shell脚本编辑

11.1 shell脚本报错,行xxx:java未找到命令


解决方案:

将notepad++编译器中的【换行】换成linux格式就好了,原先的是Windows格式,传到linux上脚本不兼容。

12. 插件问题编辑

12.1 【多产品连接插件】连不上FDL,但是BI可以连上


原因:

连接服务器的tomcat禁用了options请求

解决方案:

删除tomcat的web.xml的options