数据转换
运行日志报错:超出内存限制
问题描述:
任务运行失败,报错超出内存限制。
原因分析:
数据开发所占用的内存资源超过工程设置的上限。
解决方案:
可以根据实际运行任务情况,参考 机器要求 适当调整 Tomcat的JVM内存和负载分配
API 输入
API取数数据预览报错:Http request error- Read timed out
问题描述:
使用API取数,点击「数据预览」报错 Http request error,如下图所示:
原因分析:
FineDataLink 默认超时是10s,耗时长的api会提示超时。
解决方案:
参考使用FDLTimeout参数 文档,在API Header 内使用 FDLTimeout 字段设置超时时间。
API 输入运行报错 json format is illegal
问题描述:
使用API取数,点击「数据预览」报错 json format is illegal,如下图所示:
原因分析:
4.0.20 版本中加了json格式校验,API 的 body 请求中不再支持写入注释。
解决方案:
清除 body 中的注释即可。
4.0.21 已经支持使用使用注释,可升级工程解决。
API输入报错:PKIX path building failed
问题描述:
API输入报错:PKIX path building failed
解决方案:
关闭 SSL 认证。详情请参见:API输出逻辑说明
数据关联
运行日志报错:Spark执行错误
问题描述:
任务运行失败,报错提示[数据关联]: Spark执行错误- org apache spark sql. execution joins .exception.N2NInterruptException - null
原因分析:
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
原因分析:
gpdfist 文件不支持放置路径有空格
解决方案:
放置文件的路径下有空格,换个文件夹放置,并重启gpfdist进程,配置并行装载方案详情参见:配置Greenplum(并行装载)数据源
任务执行成功但写入数据不全
问题描述:
用户将两个来源的数据通过「Spark SQL」算子 union 后写入到目标表,写入方式为「清空数据再写入」,发现写入的数据不全,只写入了一张表的数据。
原因分析:
数据写不全原因:目标表存在唯一索引(自增 ID 主键),写数时索引冲突。
任务执行成功原因:FineDataLink 写入方式选择「清空数据再写入」时,遇到冲突会默认跳过。
DB2 数据库SQL语句中的as为中文名不生效
问题描述:
任务运行失败,报错超出内存限制。
DB2 数据库SQL语句中的as为中文名在数据输出时字段映射没有生效。
解决方案:
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
问题描述:
解决方案:
在 配置简道云数据源 中将简道云数据连接请求失败重试次数调整的略大一些,默认值为5.
运行日志报错Table doesn't exist
问题描述:
任务运行失败,日志报错Table doesn't exist
原因分析:
简道云字段过长,字段类型不匹配
解决方案:
通过字段设置修改对应字段的长度
SparkSQL
数据预览报错:SparkSQL语法错误: Syntax error at or near 订; line 1 pos 18
问题描述:
数据预览界面报错SparkSQL语法错误: Syntax error at or near 订; line 1 pos 18
原因分析:
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
新增计算列
报错:该操作符两端必须为数值类型
问题描述:
「新增计算列」算子中,公式中包含内置参数 loopTimes,预览正常。
执行时报错:Spark算子计算错误 - formula check error - 字段[b]的公式校验失败:[:该操作符两端必须为数值类型
原因分析:
目前所有的内置参数都当作文本格式处理。
解决方案:
使用 TOINTEGER 公式转换字段类型。
文件输入
通过文件修改时间筛选文件,筛选结果不对
问题描述:
「文件输入」算子中,通过文件修改时间筛选文件,筛选 2023-05-22 11:48:30 之前的文件,最终 2023-05-22 11:48:59 的文件被筛选出来。
原因分析:
「文件修改时间」的精确度仅到分钟,暂时无法精确到秒级别。
数据比对
数据比对后数字后自动加上.0
Oracle 数据表中字段 ID 为 number 类型,使用包含该字段的数据表数据比对后,ID 字段后自动加上.0。如下图所示:
产品逻辑:
经过 Spark 计算后会出现上述问题,但不会影响计算结果。针对该问题,产品后续会优化。
火狐(firefox)浏览器中不显示数据比对的预览样式
问题描述:
火狐浏览器中,不显示数据比对的预览样式。如下图所示:
原因分析:
浏览器支持 has 特性,数据比对的预览样式才能显示正常。
火狐浏览器的 103 及之后版本,实际已经支持 has 特性,但默认为关闭状态,需要通过以下步骤进行开启:
1)地址栏输入about:config,进入设置界面。
2)搜索layout.css.has-selector.enabled,将其值切换为 true。
3)进入 FDL 工程,在「数据比对」算子中预览,发现样式正常。
数据比对结果不正确
问题描述:
定时任务中,简道云数据与数据库数据进行比对后,将数据变动更新到简道云表单中。
数据没有变动,但比对结果为 Changed。
原因分析:
简道云表单无法存储 null 值,null 值和空字符串上传到简道云都会被转为空字符串。
数据库中数据存在 null 值,第一次上云 null 值转换为空字符串保存在简道云表单中,第二次进行数据比对时,数据库数据为 null 值,简道云表单中为空字符串,所以比对结果为 Changed。
解决方案:
将数据库中的 null 值数据,转化为空字符串后再进行比对。
数据集输出
数据来源端中断退出
问题描述:
使用「数据集输出」,输出到 BI 公共数据时,报错:数据来源端中断退出。如下图所示:
原因分析:
50051 端口没开放,开放即可。