倚楼听风雨
淡看江湖路

阿里开源的异构数据迁移工具 DataX 之 MySQL 8.0 民间修复版教程分享 去掉其余数据库依赖

DataX 是阿里巴巴集团内被广泛使用的离线数据同步工具/平台,实现包括 MySQL、SQL Server、Oracle、PostgreSQL、HDFS、Hive、HBase、OTS、ODPS 等各种异构数据源之间高效的数据同步功能。之前老四在《码云、GitHub、SourceForge 开源精品优秀项目精选 第三期》这篇文章中推荐过这个工具,最近公司项目迁移的时候再次用到了这个工具,不过这次我发现这个开源项目基本已经没有什么大版本迭代了,最新的 MySQL 8.0 版本也不支持,而我刚好需要的就是要基于 MySQL 8.0 来进行数据迁移。某里巴巴的很多实用性的东西确实为我们带来了很多便利,但是感觉一款东西火爆起来变成商用之后,开源社区就逐渐的被他们所放弃,蛮有意思的。

因为性能快,简单易用,所以老四决定亲自克隆源码修复一下这个问题,这里单纯的分享一下我魔改的版本,至于源码我就不发布了,比较简单,我会说一下具体的修改过程。

DataX 修改之后的特性

  1. 去掉除 MySQL 以外的数据库迁移工具依赖,因为对我没什么用,索性我就干掉了。
  2. 将 MySQL 依赖驱动包版本升级到 8.0.11
  3. 去掉 DataX 默认添加的 jdbcUrl 字符串「yearIsDateType=false&zeroDateTimeBehavior=convertToNull&rewriteBatchedStatements=true」,改为迁移脚本自定义添加 jdbcUrl 完整配置。

系统环境要求

一、JDK 1.8

关于 JDK 的安装教程我就不说了,无论是 Windows、Linux 还是 macOS,作为搞 Java 的你再不会这玩意可就说不过去了。

二、Python 2.6

关于 Python 的安装老四也不多哔哔,无非也是安装之后配置一下环境变量即可,只不过版本我劝你就用推荐的这个。另外老版本的可执行安装版可能不太好找,官方也不是很全,老四这里会分享一个 python-2.6.6.amd64.msi,文末自助下载。

三、Apache Maven 3.6.1(3 以上的版本都行)

关于 Maven 老四多说一些,发现很多人对 Maven 的安装配置等掌握的其实不是很全面,很多人下载完 Maven之后,在 IDEA 或者 Eclipse 中不进行配置,依然用的还是编辑器默认的 Maven,还有的人安装之后不配置环境变量,甚至本地安装个 jar 包也不会。

首先,Maven 依赖于 JDK,所以你需要先把 JDK 安装的明明白白的。然后下载 Maven 的二进制安装包之后,尤其是在 Windows 环境下,老四的建议是在 Maven 的同级目录下新建一个 repository 目录来存放 Maven管理的 jar 包,然后再拷贝一份 settings.xml 文件到 Maven 的同级目录,然后修改配置。

首先将 Maven 仓库的设置修改,尽量不要放到 C盘当中,另外一个由于国外的网络国内不畅通,建议配置一个阿里云的镜像地址加速下载依赖 jar 包。

maven安装教程 第1张

windows下maven环境变量配置 第2张

maven阿里云镜像配置教程 第3张

配置完毕之后 你的 Eclipse 可以像下图这样配置:

eclipse中maven配置教程 第4张

同理,IDEA 你可以像下图这样配置,关于 intellij IDEA 更多的配置你可以参考老四的《可能是全网最全最基础最实用的 IntelliJ IDEA 的配置手册和基础使用教程 吐血整理》这篇文章。

idea中maven配置教程 第5张

最后,配置 Maven 的环境变量,使其可以帮助我们本地安装 jar 包,打包应用程序等等。

阿里开源的异构数据迁移工具 DataX 之 MySQL 8.0 民间修复版教程分享的图片-高老四博客 第6张

cmd 中命令「mvn -v」执行成功及证明环境变量配置成功。

阿里开源的异构数据迁移工具 DataX 之 MySQL 8.0 民间修复版教程分享的图片-高老四博客 第7张

DataX 数据迁移工具 MySQL 8.0 版本修改教程

一、官方 GitHub 地址克隆源码

二、修改项目根目录 pom.xml 文件,只保留 mysqlreader 和 mysqlwriter。

阿里开源的异构数据迁移工具 DataX 之 MySQL 8.0 民间修复版教程分享的图片-高老四博客 第8张三、分别修改 mysqlreader 和 mysqlwriter 目录下的 pom.xml 文件,将MySQL依赖驱动包版本设置为 8.0.11,因为 MySQL 8.0 向下兼容,所以我们也能用 MySQL 8.0 的驱动包来迁移 MySQL 5.6、MySQL 5.7 版本的数据,一劳永逸。

阿里开源的异构数据迁移工具 DataX 之 MySQL 8.0 民间修复版教程分享的图片-高老四博客 第9张四、 DataX 当初开源发行的时候,在配置 json 文件中的服务器 jdbcUrl 的时候,为了你省事,他直接将你的服务器连接参数默认加上了一些 jdbcUrl 属性:yearIsDateType=false&zeroDateTimeBehavior=convertToNull&rewriteBatchedStatements=true,但是在 MySQL 8.0 中这些参数不是这样配置的,所以需要我们修改一下,将这些参数全部都去掉,然后自己在 json 文件中直接配置完成的 jdbcurl 即可,这样的话还能灵活配置。

将文件「DataX\plugin-rdbms-util\src\main\java\com\alibaba\datax\plugin\rdbms\util\DataBaseType.java」中带有所有「yearIsDateType=false&zeroDateTimeBehavior=convertToNull&rewriteBatchedStatements=true」字样的变量声明置空即可。

阿里开源的异构数据迁移工具 DataX 之 MySQL 8.0 民间修复版教程分享的图片-高老四博客 第10张

MySQL 8.0的链接参数示例:

127.0.0.1:3306/glorze?useUnicode=true&characterEncoding=UTF-8&rewriteBatchedStatements=true&zeroDateTimeBehavior=CONVERT_TO_NULL&serverTimezone=Asia/Shanghai

五、最后使用 Maven 重新编译打包 DataX 项目,进入DataX 项目根目录,然后命令行执行:

$ cd {DataX_source_code_home}
$ mvn -U clean package assembly:assembly -Dmaven.test.skip=true

我已经打包好了一份并且自用,随着本文一并分享给喜欢拿来即用的同学,文末自助获取,但是还是建议自己动手折腾一下。

ps:本站所有视频、链接等均从互联网收集而来,版权归原创者所有,仅供试看,请下载后24小时内删除,如果喜欢请支持正版。不得用于任何盈利目的、行为以及商业操作,否则后果自负。如果本小站侵犯了您的权益,请及时通知站长老四(glorze#glorze.com),本站会及时删除侵权内容,谢谢您的合作与理解!

DataX 老四修改版本以及 Pyhthon2.6 安装版资源文末自助获取,无账号需使用邮箱注册一下小站。至于 DataX 的使用教程参考官方开源 README 文档即可。

更博不易,如果觉得文章对你有帮助并且有能力的老铁烦请捐赠盒烟钱,点我去赞助。或者扫描文章下面的微信/支付宝二维码打赏任意金额(点击「给你买杜蕾斯」),也可扫描小站放的支付宝领红包二维码,线下支付享受优惠的同时老四也可以获得对应赏金,老四这里抱拳谢谢诸位了。捐赠时请备注姓名或者昵称,因为您的署名会出现在赞赏列表页面,您的捐赠钱财也会被用于小站的服务器运维上面,再次抱拳感谢。

资源下载

隐藏内容:******,购买后可见!

下载价格:0 G币

您需要先后,才能购买资源

欢迎访问高老四博客(glorze.com),本站技术文章代码均为老四亲自编写或者借鉴整合,其余资源多为网络收集,如涉及版权问题请与站长联系。如非特殊说明,本站所有资源解压密码均为:glorze.com。

赞(20) 给你买杜蕾斯
本站原创文章受自媒体平台原创保护,未经允许不得转载高老四博客 » 阿里开源的异构数据迁移工具 DataX 之 MySQL 8.0 民间修复版教程分享

开始你的表演 抢沙发

觉得文章有用就打赏一下老四,鼓励我更好的创作

非常感谢你的打赏,我们将继续给力更多优质内容,让我们一起创建更加美好的网络世界!

支付宝扫一扫打赏

微信扫一扫打赏

登录

找回密码

注册