目录:
SQL server编辑
数据连接连不上,报错
The server selected protocol version TLS10 is not accepted by client preferences [TLS12]
问题描述:
驱动程序无法使用安全套接字层(SSL)加密与 SQL Server 建立安全连接。
The server selected protocol version TLS10 is not accepted by client preferences [TLS12]
解决方案:
排查是否是驱动版本不匹配:根据数据库版本,在数据库官网查找对应的驱动版本区间,如果驱动版本在区间里,则排查匹配问题;驱动版本如何查看请自行百度。
排查是否是jdk版本有问题,更换jdk版本后可以或更换服务器。
排查是否有Java环境,并修改FDL的jre下的文件。详情参见:The server selected protocol version TLS10 is not accepted by client preferences [TLS12]
字段带括号,预览报错:数据连接异常 - DataBase[sqlserver2016] get data failed!
问题描述:
字段带括号,预览报错:数据连接异常 - DataBase[sqlserver2016] get data failed! '交回数量' is not a recognized built-in function name.
解决方案:
字段用[]包裹起来。
MySQL编辑
阿里云MySQL数据库连接报错
问题描述:
阿里云 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服务器加入白名单内
mysql数据源类型下没有找到建好的数据连接
问题描述:
实际已经建好数据连接,驱动为 org.gjt.mm.mysql.Driver
使用时没有找到对应的MySQL连接:
原因分析:
MySQL这个驱动还不支持
解决方案:
目前MySQL支持的驱动是这两个:com.mysql.jdbc.Driver 和 com.mysql.cj.jdbc.Driver
FDL 中数据无法被清空
问题描述:
数据输出到 MySQL 中,写入方式选择「清空目标表,再写入数据」,但执行任务后发现每次并不会清空目标表。
原因分析:
MySQL 数据连接中的用户,没有 drop 权限,需要赋予他 drop 权限。
数据连接报错Caused by: javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure
问题描述:
mysql 升级了 TLS 协议之后,数据连接报错Caused by: javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure。ssh连接的时候握手失败
解决方案:
MySQL 数据连接的 URL 中,拼接:?useSSL=false&allowPublicKeyRetrieval=true
Oracle编辑
Oracle数据连接报错:ora-12505:TNS:监听程序当前无法识别连接描述符中所给出的SID
问题描述:
数据连接报错 ora-12505:TNS:监听程序当前无法识别连接描述符中所给出的SID
原因:
SID和数据库名称搞混了
解决方案:
数据预览无数据,日志报错ORA-00942表或视图不存在
问题描述:
数据预览无数据,日志报错 ORA-00942表或视图不存在
原因分析:
查询的SQL没有区分模式名和表名的大小写。Oracle对大小写敏感。
解决方案:
修改表名和模式名的大小写。
GreenPlum编辑
数据连接报错“检测gptdist环境失败”
问题描述:
解决方案:
在上传 gpfdist 文件时,需要先把压缩包上传到linux服务器,再进行解压,即可解决该问题。详情参见:配置Greenplum(并行装载)数据源
SQL 语句只在 FDL 中执行失败
问题描述:
SQL 语句在 GreenPlum 数据库中执行成功,在 FDL 中执行失败。
解决方案:
在 SQL 语句中加上模式即可。
gp 数据同步过程卡住
问题描述:
来源端和写入端都是 Greenplum,数据同步时卡住,抽取了 3 亿数据后。读取和写入的行都变成了 0。
原因分析:
网络波动导致的读取卡住。
解决方案:
对于读取端的 Greenplum 数据连接处,数据连接的「数据连接URL」后加上参数 socketTimeout,jdbc:postgresql://hostname:port/database?socketTimeout=1800
http response code 404 from gpfdist
问题描述:
数据去向为 Greenplum 数据库,任务运行时报错:ERROR: http response code 404 from gpfdist (gpfdist://192.168.60.197:15500/fdda13be3f2f01e7_BLANK_CHANCHU.csv): HTTP/1.0 404 file not found (seg33 slice1 192.168.60.177:40001 pid=27049)
原因分析:
重启 FDL 时,没有杀死 gpfdist 进程,导致残留占用端口,新的任务无法执行。
解决方案:
kill -9 旧的 gpfdist 进程,重新启动定时任务,生成新的 gpfdist 服务进程。
error when connecting to gpidist
问题描述:
数据去向为 Greenplum 数据库,任务运行时报错:error when connecting to gpidist htp:/10.145 1.74:15500/491b2d5143c97c36 ods oa worklow curentoperator.csy, quit aftei
11 tries (seg10 slice1 10.145.1.79:40002 pid=46296)
原因分析:
gp 节点异常,无法访问到 FDL 服务器的 15500 端口。
解决方案:
检查 gp 节点,查看服务器是否能 telnet FDL 的 ip、端口。
Presto编辑
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的驱动
数据连接处连接成功,但数据同步中测试连接失败
问题描述:
「管理系统>数据连接>数据连接管理」中,presto 数据连接成功;但在「数据同步」节点中,数据连接失败。
原因分析:
产品逻辑问题:
「管理系统>数据连接>数据连接管理」中,若获取不到模式,模式将为空,提示连接成功;但「数据同步」节点中,获取不到模式将报错。
PostgreSQL编辑
navicat连接Postgresql,delete\drop\truncate都无法正常删除表
问题描述:
原因:
有其他事务占用了这个表,所以无法对这个表进行删除操作。
解决方案:
查目前所有进程:select pid,query from pg_stat_activity; 结果看到第二个pid涉及的表跟无法删除的表一致。
杀掉对应的pid:select pg_terminate_backend(pid),query from pg_stat_activity where query ~* 'order_table' and pid <> pg_backend_pid();即可成功删除表。
SAP编辑
Handler dispatch failed
问题描述:
连接 sap 报错 Handler dispatch failed: nested exception is java.lang.NoClassDefFoundError: com/sap/conn/ico/CoException
解决方案:
放置驱动之后没有重启,重启 FineDataLink 服务器即可。
Doris编辑
An error was encountered during data transfer - Connection reset
问题描述:
数据同步节点中,输出数据时报错:Exception when job run com.fr.dp.exception.FineDPException: An error was encountered during data transfer - Connection reset - Connection reset
原因分析:
Doris 数据连接中,FE 节点地址填错了,此处应该输入 FE 节点的 ip 和 FE 节点的 http_port。
SSH编辑
SSH连接失败-timeout
问题描述:
SSH协议数据连接 失败,报错:SSH连接失败-timeout。如下图所示:
原因分析:
FDL 所在服务器 telnet 不通目标服务器 22 端口,需要排查防火墙、黑白名单等原因。
Hadoop Hive 编辑
数据连接报错:Permission denied
问题描述:
数据连接报错 org.apache.hadoop.security.AccessControlException: Permission denied: user=root, access=WRITE, inode="/":hdfs:supergroup:drwxr-xr-x。
解决方案一:
在FDL服务端的catalina.sh 里面指定新增变量声明:export HADOOP_USER_NAME = hdfs,指定连接 HDFS 的用户为 hdfs;
注:hdfs 可根据实际用户名修改。
解决方案二(不推荐):
在不指定用户的情况下,连接HDFS时默认使用root账号,需要关闭HDFS用户验证,可能会带来安全隐患。因为该方案可让所有用户访问 hdfs,不用进入hdfs用户再执行命令。
注:CDH中没有这个配置,需要手动加进去。
步骤如下:
1)找到 hdfs-site.xml 的 HDFS 服务高级配置代码段(安全阀);
2)dfs.permissions.enabled 的值设置为 false,保存更改,重启 hdfs 。
hdfs write file error
问题描述:
Hive(HFDS)数据连接失败,日志中报错:hdfs write file error. Caused by: java.lang.UnsupportedOperationException
原因分析:
数据连接的「HDFS 设置」中,格式为hdfs://ip:port,用户错填为:http://ip:port
数据同步后,Hive数据库数据比来源库多
问题描述:
定时任务中从 kingbaseV8R6 到 Hive2.1 同步数据,发现数据行数变多了,kingbase 源端 87719 行,Hive 目标端 90496 行。并且 kingbase 设置了 id 不允许为空,Hive 里面却出现了空值。
原因分析:
目标表设置了 Hive 格式为 Text,kingbase 的数据中可能有分隔符,导致入库 hdfs 的时候被分割成了新的行。
解决方案:
手动建表语句下面加上格式 SQL,更改存储格式为 ora 。
CREATE TABLE your_table (
id INT,
name STRING
)
row format serde 'org.apache.hadoop.hive.ql.io.orc.OrcSerde'
STORED AS INPUTFORMAT
'org.apache.hadoop.hive.ql.io.orc.OrcInputFormat'
OUTPUTFORMAT
'org.apache.hadoop.hive.ql.io.orc.OrcOutputFormat';
Hive作为写入端清空后写入报错FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. Exception while processing
问题描述:
Hive 作为写入端清空后写入报错FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. Exception while processing
原因分析:
配置的 HDFS 用户没有对应权限。
解决方案:
更改为有权限的 HDFS 用户。
服务器本地目录编辑
ClickHouse编辑
ClickHouse response without column names
若连接时出现报错 ClickHouse response without column names ,用户可以在 URL 后加上后缀:urlcompress=false,如下图所示:
数据同步无法获取主键
问题描述:
clickhouse中已创建主键,数据同步中获取不到主键。
原因分析:
clickhouse数据库的主键和普通的主键不一样。
clickhouse数据库的主键更像一个排序键。只提供了数据的一级索引,但却不是唯一约束。
FineDataLink的主键是为了更新删除同步,如果不是唯一约束,允许重复的话,选中主键的意义不大。
自动建表失败
问题描述:
写入 clickhouse 数据库时,自动建表失败。如下图所示:
原因分析:
clickhouse 数据库引擎使用的是 MySQL 引擎(MySQL 数据库引擎是不支持建表的),导致功能使用有问题。
解决方案:
Atomic 引擎,才支持写入时自动建表功能。
clickhouse主键更新慢
问题描述:
使用「数据同步」节点写入到 clickhouse 数据库,设置主键冲突覆盖,发现速度只有几十行/s。
原因分析:
clickhouse 是 mpp 数据库,插入很快但是更新会很慢。
解决方案:
使用「数据比对」提前在 FDL 进行逻辑处理,检查插入的数据量。
join关联之后字段名出现了表的名称
问题描述:
在数据同步过程中,sql写了join语句进行关联,发现预览的字段名变成了表名.字段名。
原因分析:
与 MySQL 数据库不同,clickhouse 使用 join 后,后表如果有前表的字段,就算 select 中对应字段独一无二,也会附加上表名,例如select t2.bit1 from "fdl"."all_type_03" t1 join "fdl"."all_type_03" t2 on t1.bit1 = t2.bit1 的查询结果字段名会是t2.bit1
解决方案:
使用 as 进行字段重命名去掉表名。
其他编辑
测试连接报错:SSH连接失败-timeout:socket is not established
问题描述:
数据连接测试连接失败报错:SSH数据连接失败,报错SSH连接失败-timeout。
解决方案:
环境因素,FineDataLink 所在服务器 telnet 与数据连接对应的数据库所在服务器端口不通,需要排查防火墙、黑白名单等原因。
数据连接测试成功,但定时任务运行时报错 数据连接创建失败
问题描述:
数据连接测试成功,但定时任务运行时报错 数据连接创建失败,当前数据库创建connection - wait nillis 10006
原因分析:
数据连接超时
解决方案:
调大数据连接建立时的最大等待时间,详情参见:连接池设置
数据连接异常,报错表不存在 Table 'xxxt' doesn't exist
问题描述:
原因分析:
可能是数据连接这个用户没有建表权限
解决方案:
检查是否开放了用户相关表的权限。
数据预览报错:get data failed
问题描述:
数据连接异常,报错示例:-XXXX get data failed
原因分析:
写SQL的时候没有选择数据库。
解决方案:
选择数据库。
选择数据连接后,不显示表
问题描述:
数据同步数据去向中,已存在表无内容。
原因分析:
数据连接名称中包含:[],去掉就行。
报错:Communications link failure
问题描述:
TiDB 数据连接报错:
Communications link failure
The last packet successfully received from the serve was 1,165,470 milliseconds ago.The last packet sent successfully to the server was 1,165,470 milliseconds ago
原因分析:
数据连接配置时,「最大等待时间」设置的 0 毫秒,以为 0 毫秒是永不超时的意思。
解决方案:
数据连接设置中,修改「最大等待时间」的值。
JDBC列类型不匹配-No reader function mapping for java.sql.Types code: 0
问题描述:
测试连接报错:JDBC列类型不匹配-No reader function mapping for java.sql.Types code: 0
解决方案:
驱动不匹配,需要从帮助文档对应数据连接后者数据源官网下载和数据库匹配的驱动,并上传到 FineDataLink 中。