江苏山海连云建设有限公司网站,邯郸有设计网站的吗,自己怎么做logo图标,开发网站 公司背景
业务需求希望把Oracle数据库中的数据#xff0c;迁移至MySql数据库中#xff0c;因为需要迁移全量和增量的数据#xff0c;所以希望想用数据迁移工具进行操作。 经过一些调研查询#xff0c;最终打算使用DataX进行数据的迁移。
DataX简单介绍
DataX 是阿里云 DataW…背景
业务需求希望把Oracle数据库中的数据迁移至MySql数据库中因为需要迁移全量和增量的数据所以希望想用数据迁移工具进行操作。 经过一些调研查询最终打算使用DataX进行数据的迁移。
DataX简单介绍
DataX 是阿里云 DataWorks数据集成 的开源版本在阿里巴巴集团内被广泛使用的离线数据同步工具/平台。DataX 实现了包括 MySQL、Oracle、OceanBase、SqlServer、Postgre、HDFS、Hive、ADS、HBase、TableStore(OTS)、MaxCompute(ODPS)、Hologres、DRDS, databend 等各种异构数据源之间高效的数据同步功能。
项目搭建
环境配置
jdk:1.8 IDEA:2023.2
1.clone源代码
DataX源码地址:https://github.com/alibaba/DataX
这里可以用各自习惯的方式进行clone源代码至项目中然后打开项目等待依赖下载完成。如果这里导入太慢可以在maven里的settings.xml配置阿里云的镜像地址如下 idalimaven/id namealiyun maven/name urlhttp://maven.aliyun.com/nexus/content/groups/public//url mirrorOfcentral/mirrorOf
/mirror2.编译打包源码
可以用IDEA中的maven工具进行编译打包源码clean(清理)package(打包)
等待编译打包完成可以在项目文件目录/core下方生成了一个target文件夹主要是需要用下方datax里面的内容。
也可以复制出来放在桌面上(地址:/Users/用户名/Desktop/datax[MacOS地址win可以自行使用文件夹地址])将打包后的文件提取出来待后续配置配置完成可移植至迁移源服务器上用python进行运行这样就无需放一个大项目在服务器上进行运行。
3.配置编译后的包
可以看到文件夹下方的包目录结构如下图
我们需要首先修改conf文件夹下的core.json配置修改里面的core.transport.speed.byte,只要不为-1即可值可以任意写比如把byte设置为2000000表示单个通道的大小更改为2MB
4.修改任务配置
打开datax文件夹下方的job文件夹打开job.json文件这里最重要的是reader和writer这两分别代表了读数据库配置和写数据库配置 最开始看到的job示例任务用到了streamreader和streamwriter插件这是流数据的读和写插件DataX目前已经有了比较全面的插件体系主流的RDBMS数据库、NOSQL、大数据计算系统都已经接入所以可以根据我们自己的需求配置对应的插件。首先先在datax文件目录下新建一个plugin目录
然后需要修改任务配置和添加对应插件组件拿需要从Mysql数据库迁移到另一Mysql数据库举例需要配置mysqlreader和mysqlwriter两个插件
回到工程在maven中找到mysqlreader和mysqlwriter然后也使用上方的方法进行打包将打包出来的reader和writer文件复制到datax-plugin路径下
然后修改job.json文件配置上对应的数据库地址账号密码等相关信息。 具体配置方式可参考官网https://github.com/alibaba/DataX 数据源参考指南 修改后配置文件如下
5.配置运行环境
回到IDEA项目中DataX的启动项路径在src/main/java/com/alibaba/datax/core/Engine.java类然后可以在IDEA的右上角进行配置启动文件
然后需要添加一个VM options配置添加方式如下
添加后需要配置以下三项即可
配置项配置内容描述VM options-Ddatax.home/Users/用户名/Desktop/dataxdatax编译后存放的地址Program arguments-mode standalone -jobid -1 -job /Users/用户名/JavaProject/DataX/core/src/main/job/job.json运行的json文件路径JRE1.8官方建议使用jdk1.8
ps这里我用的是IDEA里面的job文件运行的组件是桌面上的组件大家可以都更改为IDEA中的内容如果跟我一样的话需要注意要把需要用到的组件打包到桌面datax-plugin文件夹中
6.启动项目
运行IDEA项目中的Engine看到没有报错即完成了数据迁移
失败的数据量和迁移成功的数据量也分别在读写失败总数和读出数据总数中有所描述
ps如果用python进行执行的话可以在data/bin路径下执行操作python3 datax.py ../job/job.json 具体操作如下
总结
这次只是在需求的背景下简单的接触了下数据迁移若有更好的办法或者有问题的地方大家可以随意评论也非常感谢杨林伟博主的文章介绍让我在操作的途中少走许多坑大家也可以看看下方的文章希望对大家有所帮助。
相关链接
dataX官方地址
DataX教程02- IDEA运行DataX完整流程