DataX v202309与DataXWeb 2.1.3预发布版的部署与优化经验分享

版本:DataX v202309  DataXWeb 2.1.3预发布版

DataX:

Github:
https://github.com/alibaba/DataX

功能介绍文档:
https://github.com/alibaba/DataX/blob/master/introduction.md

文档上虽然只写了Linux系统,但实际部署Windows也可以

JDK版本使用1.8即可

Python如果环境的版本可以选择的话,可以使用2.6或者2.7,我这边使用的是3.12.5

Maven 3.x是编译时需要的条件

一开始下载的是v202308版本,安装包下载路径:
https://datax-opensource.oss-cn-hangzhou.aliyuncs.com/202308/datax.tar.gz

因为要Python3.x,所以替换DataX /bin目录下py文件(替换的文件在:DataXWeb:doc/datax-web/datax-python3/)

由于DataX对Mysql 只支持5.x,但是我这边的Mysql DB是 8.x的

所以下载了v202309的源码,调整代码使其支持mysql 8.x

(修改代码的步骤:
https://blog.csdn.net/weixin_41640312/article/details/132019719

然后按照github中的步骤打包即可



问题:

打包过程中发现oceanbasev10writer报错,项目的libs下缺少特定jar文件,


解决:

去master分支找到了这个jar,下载后复制,即可打包成功(打包过程非常慢,不知道是不是网络的问题)



问题:

创建了Mysql 数据源之间的迁移Job(文档中并没有说mysql的限制版本,也就没有想到支持的Mysql版本这么低)

配置是正确的,但dataX一直报错


解决:

去搜索了一下,才发现版本限制,所以切换了版本



问题:

打包好最新版后,运行Mysql Job还是报错(在有总bps限速条件下,单个channel的bps值不能为空,也不能为非正数)


解决:

在打包后的datax\conf\core.json 中core.transport.speed.byte由-1修改为2000000

DataXWeb:

众所周知,DataX是使用Python命令行运行Job的Json文件配置来同步数据源

所以使用DataXWeb来搭配使用

一开始使用的是DataXWeb v2.1.2版本,但是配置字段映射方面有点不太容易理解,就换了最新的版本,也就是2.1.3预发布版

1. 下载源码

2. 运行datax-admin&datax-executor(按需修改配置文件)

配置文件都有说明,按照说明配置DB,以及datax.py的路径等即可。

相对来讲新版的配置比旧版更容易理解,但是,页面的数据不是很即使,操作时,还是需要刷新,不知道以后会不会调整

至于DataX创建Job的步骤我就不提了,使用DataXWeb,可以很容易创建一个Job


其他:

附上DataX支持的数据源(github上都有)

DataX的核心架构

Job通过源端切分策略,切分为多个Task,然后调用Schedule模块,根据配置的并发参数等,将Task划分为TaskGroup(默认一个TaskGroup5个Task)

每一个Task中启用一个线程,完成Reader->Channel->Writer流程

未经允许不得转载:大白鲨游戏网 » DataX v202309与DataXWeb 2.1.3预发布版的部署与优化经验分享