datax怎么读取不同mysql实例场景下的分库分表数据,不同mysql实例的账号密码是不一样的

ijxebb2r  于 4个月前  发布在  Mysql
关注(0)|答案(5)|浏览(149)

类似这样的情况是需要一样的账号密码,假如不同的账号密码需要怎么配置在一个datax json中

r7xajy2e

r7xajy2e1#

jdbcurl虽然是个数组,但他只能配置一个.
PS:之所以使用JSON数组描述连接信息,是因为阿里集团内部支持多个IP探测,如果配置了多个,MysqlReader可以依次探测ip的可连接性,直到选择一个合法的IP。如果全部连接失败,MysqlReader报错。 注意,jdbcUrl必须包含在connection配置单元中。对于阿里集团外部使用情况,JSON数组填写一个JDBC连接即可。

不同的Mysql实例只能配置多个任务,不能在一个任务中配置.

mysqlreader/doc/mysqlreader.md
这个文档说得很清楚.

xmjla07d

xmjla07d2#

jdbcurl虽然是个数组,但他只能配置一个. PS:之所以使用JSON数组描述连接信息,是因为阿里集团内部支持多个IP探测,如果配置了多个,MysqlReader可以依次探测ip的可连接性,直到选择一个合法的IP。如果全部连接失败,MysqlReader报错。 注意,jdbcUrl必须包含在connection配置单元中。对于阿里集团外部使用情况,JSON数组填写一个JDBC连接即可。

不同的Mysql实例只能配置多个任务,不能在一个任务中配置.

mysqlreader/doc/mysqlreader.md 这个文档说得很清楚.

-- 不同的Mysql实例只能配置多个任务,不能在一个任务中配置.
针对这个回答。其实是因为我做了测试 在不同实例下的mysql 表数据 能通过一个配置进行抽取,前提是一样的账号密码,所以我想请教下 是不是不同账号密码的不同实例下的mysql 表数据 是不是也能通过一个配置搞定,只是我没发现怎么配置?

0dxa2lsx

0dxa2lsx3#

应该不行,username和password这两个参数是和connection这个参数一级的,而jdbcurl是参数connection的子级.

对子任务的配置处理,在代码里是JobContainer.split()这个方法,然后调用doReaderSplit()方法,在MysqlReader中,最终是调用ReaderSplitUtil.整个链路看下来,所有的子任务都是用的同一个username和password.

sh7euo9m

sh7euo9m4#

其实这就很奇怪了,都能支持分实例同一个配置脚本抽数了,为什么不支持不同账号密码的,应该将账号密码与jdbcurl一级别,也就是放在connection里面 就能解决了

gpnt7bae

gpnt7bae5#

嗯,要这个功能的话,只能自己在源码的基础上改改了.

不想改源码的话,也就多配置几个任务的事,也不是太麻烦.

相关问题