使用datax同步数据报错信息提示如下:

  1. 配置的ip/port/database/jdbc错误,无法连接。———这个仔细检查了也没有啥问题:json中配置:jdbc:postgresql://localhost:5432/cnop

  2. 配置的username/password错误,鉴权失败。请和DBA确认该数据库的连接信息是否正确。——用户名和密码也没问题。

  3. 具体错误信息为:java.sql.SQLException: No suitable driver found for jdbc:postgresql://localhost:5432/database。——数据库驱动已更换为42.2.5,同样的驱动在dbeaver上可用,在datax上不可用。

最后发现问题竟然是json中"name": "mysqlreader", 没有改为"name": "postgresreader", ,也就是name要和使用的数据库相对应。程序是读到这个name的值,才去plugin中找对应的文件夹名字,进而读取数据库驱动。所以这里面有两个问题:

  • 提示信息信息非常不准确;
  • 工具设计者没有考虑到正常使用者的思维逻辑,我们一般连接数据库就是用户名、密码,再就是url信息和驱动。不应该让使用者通过name去找对应的驱动,这不符合逻辑。
{
    "job": {
        "content": [
            {
                "reader": {
                    "name": "mysqlreader", 
                    "parameter": {
                        "column": [
							"datadate",
							"citycode",
							"p_date",
							"importtime",
							"rid",
							"datamonth",
							"p_provincecode",
							"kpijson"
						], 
                        "connection": [
                            {
                                "jdbcUrl": ["jdbc:postgresql://localhost/database"], 
                                "table": ["t_bg_aaupowerofmacrokpi"]
                            }
                        ], 
                        "password": "*****", 
                        "username": "postgres"
                    }
                }, 
                "writer": {
                    "name": "mysqlwriter", 
                    "parameter": {
                        "column": [
							"datadate",
							"citycode",
							"p_date",
							"importtime",
							"rid",
							"datamonth",
							"p_provincecode",
							"kpijson"
						], 
                        "connection": [
                            {
                                "jdbcUrl": "jdbc:postgresql://127.0.0.1:5432/test", 
                                "table": ["t_bg_aaupowerofmacrokpi"]
                            }
                        ], 
                        "password": "**********", 
                        "username": "test"
                    }
                }
            }
        ], 
        "setting": {
            "speed": {
                "channel": "1"
            }
        }
    }
}
Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐