当前位置: 首页 > news >正文

「DataX」数据迁移-IDEA运行DataX方法总结

背景

业务需求希望把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配置阿里云的镜像地址,如下:

  <id>alimaven</id>  
  <name>aliyun maven</name>  
  <url>http://maven.aliyun.com/nexus/content/groups/public/</url>  
  <mirrorOf>central</mirrorOf>          
</mirror>
2.编译打包源码

可以用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文件,这里最重要的是readerwriter,这两分别代表了读数据库配置和写数据库配置
最开始看到的job示例任务,用到了streamreaderstreamwriter插件,这是流数据的读和写插件,DataX目前已经有了比较全面的插件体系,主流的RDBMS数据库、NOSQL、大数据计算系统都已经接入,所以可以根据我们自己的需求配置对应的插件。首先先在datax文件目录下,新建一个plugin目录
在这里插入图片描述

然后需要修改任务配置和添加对应插件组件,拿需要从Mysql数据库迁移到另一Mysql数据库举例,需要配置mysqlreadermysqlwriter两个插件

回到工程,在maven中找到mysqlreadermysqlwriter,然后也使用上方的方法进行打包,将打包出来的readerwriter文件复制到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完整流程

相关文章:

  • 实现插入排序
  • 【leetcode hot 100 234】回文链表
  • manus对比ChatGPT-Deep reaserch进行研究类学术相关数据分析!谁更胜一筹?
  • K8s 端口转发实战指南(Practical Guide to k8s Port Forwarding)
  • 软件性能测试深度解析(进阶篇):JMeter高阶应用与性能工程体系构建
  • Spring Framework中的IoC容器
  • 深度优先搜索(DFS)和广度优先搜索(BFS)——c#实现
  • 如何验证邮件列表的有效性?
  • 从高资源到低资源语言的全覆盖:Manus AI的数据革命与迁移学习策略
  • 计算机组成原理:进位计数制与进制转换
  • #9 【code】实现扩散模型的一个jupyter notebook
  • 二、Visual Studio2022配置OpenGL环境
  • CameraX学习2-关于录像、慢动作录像
  • 【单片机通信技术】STM32 HAL库 SPI主从机通过串口发送数据
  • MySQL表空间碎片原理和解决方案
  • [HTTP协议]应用层协议HTTP从入门到深刻理解并落地部署自己的云服务(2)实操部署
  • 基于PySide6的CATIA零件自动化着色工具开发实践
  • 导入 Excel 规则批量修改或删除 Excel 表格内容
  • 【SegRNN 源码理解】【今天不水文系列】编码器部分理解
  • 云曦春季开学考复现(2025)
  • 做网站需要域名吗/培训机构退费法律规定
  • 聊城房地产网站建设/拉新app推广平台排名
  • wordpress 插件有后门/seo优化服务价格
  • 企业展厅图片/seo一个月工资一般多少
  • 网站发布与推广计划/今日腾讯新闻最新消息
  • 鄂城区人民政府门户网站/快手作品免费推广软件