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

目录:

数据转换编辑

运行日志报错:超出内存限制

问题描述:

任务运行失败,报错超出内存限制。

18.png

原因分析:

数据开发所占用的内存资源超过工程设置的上限。

解决方案:

可以根据实际运行任务情况,参考 机器要求 适当调整 Tomcat的JVM内存负载分配

API 输入编辑

API取数数据预览报错:Http request error- Read timed out

问题描述:

使用API取数,点击「数据预览」报错 Http request error,如下图所示:

19.png

原因分析:

FineDataLink  默认超时是10s,耗时长的api会提示超时。

解决方案:

参考使用FDLTimeout参数 文档,在API Header 内使用 FDLTimeout 字段设置超时时间。

API 输入运行报错 json format is illegal

问题描述:

使用API取数,点击「数据预览」报错 json format is illegal,如下图所示:

20.png

原因分析:

4.0.20 版本中加了json格式校验,API 的 body 请求中不再支持写入注释。

解决方案:

清除 body  中的注释即可。

 4.0.21 已经支持使用使用注释,可升级工程解决。

21.png

API输入报错:PKIX path building failed

问题描述:

API输入报错:PKIX path building failed

解决方案:

关闭 SSL 认证。详情请参见:API输出逻辑说明

数据关联编辑

运行日志报错:Spark执行错误

问题描述:

任务运行失败,报错提示[数据关联]: Spark执行错误- org apache spark sql. execution joins .exception.N2NInterruptException - null

22.png

原因分析:

spark 保护机制,避免数据量极速膨胀触发服务器宕机,通常在关联结果膨胀超过5倍 + 关联数据量大于 1kw出现,属于正常现象。

满足下面所有条件,判定为不合理场景:    

1)存在N:N的情况    

2)N:N步骤的结果数据量超过1kw     

3)N:N膨胀系数>=5

例如,100w 数据和 500w 数据N:N结果为2000w数据,那么N:N膨胀系数为: 2000w/500w =4,或者2000w/100w =20

关联中的字段名称大小写与数据库不一致

问题描述:

数据库中的表字段和数据关联中获取的字段名称大小写不一致。

原因分析:

数据关联获取的字段名,是由上游节点数据预览结果而来。

若DB表从数据库获取表字段时,混淆了大小写,此处便会不一致。

解决方案:

检查数据关联上游节点的字段获取过程。

DB表输入/输出编辑

运行日志报错:Data write error - connection disables

问题描述:

输出数据库为GreenPlum(并行装载)时,运行报错Data write error - connection disables

1715674481610488.png

原因分析:

gpdfist 文件不支持放置路径有空格

解决方案:

放置文件的路径下有空格,换个文件夹放置,并重启gpfdist进程,配置并行装载方案详情参见:配置Greenplum(并行装载)数据源

任务执行成功但写入数据不全

问题描述:

用户将两个来源的数据通过「Spark SQL」算子 union 后写入到目标表,写入方式为「清空数据再写入」,发现写入的数据不全,只写入了一张表的数据。

24.png

原因分析:

数据写不全原因:目标表存在唯一索引(自增 ID 主键),写数时索引冲突。

任务执行成功原因:FineDataLink 写入方式选择「清空数据再写入」时,遇到冲突会默认跳过。

DB2 数据库SQL语句中的as为中文名不生效

问题描述:

任务运行失败,报错超出内存限制。

DB2 数据库SQL语句中的as为中文名在数据输出时字段映射没有生效。

30.png

解决方案:

FDL4.0.22.1版本已经修复该问题。建议升级至该版本。

使用DB表输出算子,无法选中impala数据连接

问题描述:

使用「DB表输出」算子,无法选中 impala 数据连接,使用DB表输入算子可以选中。

原因分析:

impala 数据库由于 jdbc 速度过慢屏蔽了输出功能。

解决方案:

建议将数据输出到配置 hdfs 装载的 Hive 数据库中。详情请参见:配置Hadoop Hive(HDFS)数据源

简道云输入编辑

运行日志报错:try request out of limit. DB表输出:Runtime internal error. -null

问题描述:

1715674547848415.png

解决方案:

在 配置简道云数据源 中将简道云数据连接请求失败重试次数调整的略大一些,默认值为5.

26.png

运行日志报错Table doesn't exist

问题描述:

任务运行失败,日志报错Table doesn't exist

27.png

原因分析:

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

解决方案:

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

SparkSQL 编辑

数据预览报错:SparkSQL语法错误: Syntax error at or near 订; line 1 pos 18

问题描述:

数据预览界面报错SparkSQL语法错误: Syntax error at or near 订; line 1 pos 18

28.png

原因分析:

SparkSQL 不支持中文字段

解决方案:

在语法中去掉中文。

sparksql 使用count 计数只显示5000条

问题描述:

sparksql 算子中,使用 count 计数后预览只显示 5000 条。

原因分析:

sparksql 算子中,预览采样 5000 条进行计算,避免数据量过大导致服务器压力大,实际运行会根据实际条数来

无法编写SQL语句

问题描述:

sparksql 算子中,无法编写 SQL 语句。

原因分析:

使用的浏览器为:chrome79 内核版本的奇安信浏览器,浏览器版本过低。

解决方案:

升级浏览器版本。

SAP RFC 输入编辑

运行日志报错:The current pool size limit is 10 connections.

问题描述:

使用FineDataLink从SAP抽取数据,超过10个任务后面的任务报错:The current pool size limit is 10 connections.

原因分析:

这是SAP服务器配置了最大连接限制

解决方案:

请参考SAP相关配置说明,修改最大连接限制:配置 SAP 服务器的最大连接限制

执行速度过慢,且超时报错

问题描述:

SAP RFC 取数很慢,当取数超过 1 小时,定时任务会直接中断。

原因分析:

SAP RFC 函数数据量大,执行逻辑比较复杂,导致执行时间久,超时报错

解决方案:

优先通过优化 RFC 本身的性能,或者通过直连底层库解决:

  • 增大 sap 系统的超时时间解决报错问题

  • 通过多表并发执行减少整体耗时

SAP取数获取值少于预期

问题描述:

使用SAP RFC 输入算子取数,取出的数据条数比预期数据少。

原因分析:

FDL 服务器端语言为 EN,rfc 函数 abap 程序中使用登录语言参数作为查询条件。

解决方案:

FDL 服务器端的语言需要和 SAP 服务端的语言一致。

将 SAP 服务端的默认语言改为 EN 即可。

SAP返回值###不显示,字段拆列运行窜列

问题描述:

SAP 数据为Lily###Alice,FDL 读取后显示为空。

使用字段拆列算子(拆分符为 ~ )后预览正常(显示为 Lily Alice),但写入 Hive 数据库后,Lily Alice 通过三列展示(Lily 一列,空格一列,Alice 一列)。

原因分析:

SAP 数据中的 ### 并不是 # 字符,而是 tab 分隔符,因此在 FDL 中不显示为正常现象。如果需要写入 Hive,有以下两个方案:

  • 方案一:「SAP RFC 输入」算子后接「Spark SQL」算子,替换tab分隔符,示例:select regexp_replace(WA, ' ', ' ') as aa from sap输入

  • 方案二:目标表更换一下,使用 FDL 自动建表/重新建表。

读取SAP数据,部分字段为空

问题描述:

使用「SAP RFC输入」算子去获取 SAP 数据,发现部分字段是空的,SAP 数据库那边是有数据的。

原因分析:

FDL 中 SAP 数据连接设置的语言和 SAP 服务端语言不一致,保持一致即可。

MongoDB 输入编辑

节点运行报错null

问题描述:

FDL4.1.0及之前的版本,如果mongdb输入选择条件过滤查询方式,配置之后,再选择其他查询方式保存,升级到4.1.1-4.1.6.4任意版本,会出现节点运行报错null

解决方案:

手动修改dp文件,将mongodb输入节点的filter值置为null

29.png

新增计算列编辑

报错:该操作符两端必须为数值类型

问题描述:

「新增计算列」算子中,公式中包含内置参数 loopTimes,预览正常。

2.png

执行时报错:Spark算子计算错误 - formula check error - 字段[b]的公式校验失败:[:该操作符两端必须为数值类型

原因分析:

目前所有的内置参数都当作文本格式处理。

解决方案:

使用 TOINTEGER 公式转换字段类型。

文件输入编辑

通过文件修改时间筛选文件,筛选结果不对

问题描述:

「文件输入」算子中,通过文件修改时间筛选文件,筛选 2023-05-22 11:48:30 之前的文件,最终 2023-05-22 11:48:59 的文件被筛选出来。

原因分析:

「文件修改时间」的精确度仅到分钟,暂时无法精确到秒级别。

文件地址中文乱码

问题描述:

「文件输入」算子中,从 FTP 服务器上读取 Excel 文件时,文件地址处的中文乱码。如下图所示:

1740726819505367.png

原因分析:

配置FTP/SFTP数据连接 中,编码选择错误。

解决方案:

「编码」处,选择 FTP/SFTP 服务器的编码。

数据比对编辑

数据比对后数字后自动加上.0

Oracle 数据表中字段 ID 为 number 类型,使用包含该字段的数据表数据比对后,ID 字段后自动加上.0。如下图所示:

1714441627163514.png

产品逻辑:

经过 Spark 计算后会出现上述问题,但不会影响计算结果。针对该问题,产品后续会优化。

火狐(firefox)浏览器中不显示数据比对的预览样式

问题描述:

火狐浏览器中,不显示数据比对的预览样式。如下图所示:

1714441666130341.png

原因分析:

浏览器支持 has 特性,数据比对的预览样式才能显示正常。

火狐浏览器的 103 及之后版本,实际已经支持 has 特性,但默认为关闭状态,需要通过以下步骤进行开启:

1)地址栏输入about:config,进入设置界面。

2)搜索layout.css.has-selector.enabled,将其值切换为 true。

21.png

3)进入 FDL 工程,在「数据比对」算子中预览,发现样式正常。

数据比对结果不正确

问题描述:

定时任务中,简道云数据与数据库数据进行比对后,将数据变动更新到简道云表单中。

数据没有变动,但比对结果为 Changed。

1728472702641788.jpg

原因分析:

简道云表单无法存储 null 值,null 值和空字符串上传到简道云都会被转为空字符串。

数据库中数据存在 null 值,第一次上云 null 值转换为空字符串保存在简道云表单中,第二次进行数据比对时,数据库数据为 null 值,简道云表单中为空字符串,所以比对结果为 Changed。

解决方案:

将数据库中的 null 值数据,转化为空字符串后再进行比对。

数据集输出编辑

数据来源端中断退出

问题描述:

使用「数据集输出」,输出到 BI 公共数据时,报错:数据来源端中断退出。如下图所示:

2.png

原因分析:

50051 端口没开放,开放即可。

JSON解析编辑

XML解析编辑