【ETL工具】DataX + DataXWeb 初使用过程记录

版本: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流程

相关推荐
青石路18 天前
异源数据同步 → DataX 同步启动后如何手动终止?
datax
青石路19 天前
异源数据同步 → 如何获取 DataX 已同步数据量?
datax
Dkodak25 天前
DataX数据同步
java·linux·python·datax
青春不流名1 个月前
使用DataX同步hive数据到MySQL
java·hive·hadoop·mysql·datax·bigdata·datax-web
天冬忘忧2 个月前
DataX实战:从MongoDB到MySQL的数据迁移--修改源码并测试打包
大数据·mysql·mongodb·datax
天冬忘忧2 个月前
MongoDB在Linux系统中的安装与配置指南
数据库·mongodb·datax
天冬忘忧2 个月前
DataX--Web:图形化界面简化大数据任务管理
大数据·datax
atbigapp.com3 个月前
采集工具选型调研
datax·数据同步·seatunel
青石路3 个月前
异源数据同步 → DataX 为什么要支持 kafka?
datax·kakfa