问题描述:
驱动程序无法使用安全套接字层(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! '交回数量' is not a recognized built-in function name.
字段用[]包裹起来。
阿里云 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服务器加入白名单内
实际已经建好数据连接,驱动为 org.gjt.mm.mysql.Driver
使用时没有找到对应的MySQL连接:
原因分析:
MySQL这个驱动还不支持
目前MySQL支持的驱动是这两个:com.mysql.jdbc.Driver 和 com.mysql.cj.jdbc.Driver
数据输出到 MySQL 中,写入方式选择「清空目标表,再写入数据」,但执行任务后发现每次并不会清空目标表。
MySQL 数据连接中的用户,没有 drop 权限,需要赋予他 drop 权限。
mysql 升级了 TLS 协议之后,数据连接报错Caused by: javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure。ssh连接的时候握手失败
MySQL 数据连接的 URL 中,拼接:?useSSL=false&allowPublicKeyRetrieval=true
数据连接报错 ora-12505:TNS:监听程序当前无法识别连接描述符中所给出的SID
SID和数据库名称搞混了
数据预览无数据,日志报错 ORA-00942表或视图不存在
查询的SQL没有区分模式名和表名的大小写。Oracle对大小写敏感。
修改表名和模式名的大小写。
在上传 gpfdist 文件时,需要先把压缩包上传到linux服务器,再进行解压,即可解决该问题。详情参见:配置Greenplum(并行装载)数据源
SQL 语句在 GreenPlum 数据库中执行成功,在 FDL 中执行失败。
在 SQL 语句中加上模式即可。
来源端和写入端都是 Greenplum,数据同步时卡住,抽取了 3 亿数据后。读取和写入的行都变成了 0。
网络波动导致的读取卡住。
对于读取端的 Greenplum 数据连接处,数据连接的「数据连接URL」后加上参数 socketTimeout,jdbc:postgresql://hostname:port/database?socketTimeout=1800
数据去向为 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 服务进程。
数据去向为 Greenplum 数据库,任务运行时报错:error when connecting to gpidist htp:/10.145 1.74:15500/491b2d5143c97c36 ods oa worklow curentoperator.csy, quit aftei11 tries (seg10 slice1 10.145.1.79:40002 pid=46296)
gp 节点异常,无法访问到 FDL 服务器的 15500 端口。
检查 gp 节点,查看服务器是否能 telnet FDL 的 ip、端口。
报错: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 数据连接成功;但在「数据同步」节点中,数据连接失败。
产品逻辑问题:
「管理系统>数据连接>数据连接管理」中,若获取不到模式,模式将为空,提示连接成功;但「数据同步」节点中,获取不到模式将报错。
有其他事务占用了这个表,所以无法对这个表进行删除操作。
查目前所有进程: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: nested exception is java.lang.NoClassDefFoundError: com/sap/conn/ico/CoException
放置驱动之后没有重启,重启 FineDataLink 服务器即可。
数据同步节点中,输出数据时报错: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。如下图所示:
FDL 所在服务器 telnet 不通目标服务器 22 端口,需要排查防火墙、黑白名单等原因。
数据连接报错 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 。
Hive(HFDS)数据连接失败,日志中报错:hdfs write file error. Caused by: java.lang.UnsupportedOperationException
数据连接的「HDFS 设置」中,格式为hdfs://ip:port,用户错填为:http://ip:port
定时任务中从 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
配置的 HDFS 用户没有对应权限。
更改为有权限的 HDFS 用户。
新建数据连接时,找不到服务器本地目录。
服务器本地目录数据连接仅支持「超级管理员」新建。详情请参见:配置服务器本地目录数据连接
若连接时出现报错 ClickHouse response without column names ,用户可以在 URL 后加上后缀:urlcompress=false,如下图所示:
clickhouse中已创建主键,数据同步中获取不到主键。
clickhouse数据库的主键和普通的主键不一样。
clickhouse数据库的主键更像一个排序键。只提供了数据的一级索引,但却不是唯一约束。
FineDataLink的主键是为了更新删除同步,如果不是唯一约束,允许重复的话,选中主键的意义不大。
写入 clickhouse 数据库时,自动建表失败。如下图所示:
clickhouse 数据库引擎使用的是 MySQL 引擎(MySQL 数据库引擎是不支持建表的),导致功能使用有问题。
Atomic 引擎,才支持写入时自动建表功能。
使用「数据同步」节点写入到 clickhouse 数据库,设置主键冲突覆盖,发现速度只有几十行/s。
clickhouse 是 mpp 数据库,插入很快但是更新会很慢。
使用「数据比对」提前在 FDL 进行逻辑处理,检查插入的数据量。
在数据同步过程中,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数据连接失败,报错SSH连接失败-timeout。
环境因素,FineDataLink 所在服务器 telnet 与数据连接对应的数据库所在服务器端口不通,需要排查防火墙、黑白名单等原因。
数据连接测试成功,但定时任务运行时报错 数据连接创建失败,当前数据库创建connection - wait nillis 10006
数据连接超时
调大数据连接建立时的最大等待时间,详情参见:连接池设置
可能是数据连接这个用户没有建表权限
检查是否开放了用户相关表的权限。
数据连接异常,报错示例:-XXXX get data failed
写SQL的时候没有选择数据库。
选择数据库。
数据同步数据去向中,已存在表无内容。
数据连接名称中包含:[],去掉就行。
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
驱动不匹配,需要从帮助文档对应数据连接后者数据源官网下载和数据库匹配的驱动,并上传到 FineDataLink 中。
滑鼠選中內容,快速回饋問題
滑鼠選中存在疑惑的內容,即可快速回饋問題,我們將會跟進處理。
不再提示
10s後關閉
反馈已提交
网络繁忙