Java技术栈 —— 如何实现一个自己的DataX插件?
一、概要
DataX 是阿里云 DataWorks数据集成 的开源版本(可以理解为DataWorks的阉割版),实现一个自己的DataX插件可以有助于各种异构数据源的导入导出,从业务角度与提升自己的技术视野两个方面来说,实现一款自己的DataX插件是很有必要的一件事。
二、实现流程与技术细节
2.1 认识DataX
DataX采用FrameWork+plugin的方式,插件只需关心数据的读取或者写入本身,而同步的共性问题,比如:类型转换、性能、统计,则交由框架来处理。[3]
Job是DataX数据同步的最小业务单元
Task是DataX数据同步的最小执行单元,相当于对Job的拆分
参考文章或视频链接 |
---|
[1] 《如何开发一个自己的datax插件》 |
[2] DataX - Github |
[3] 官方文档重点参考 DataX插件开发宝典 - Github |
[4] 系列文章值得一看 DataX学习指南(一)–基础介绍 |
[5] 打包报错,Maven版本不可过高,我使用的是3.6.3 Could not find goal ‘assembly‘ in plugin org.apache.maven.plugins:maven-assembly-plugin: among avai |
[6] 《DataX与Kettle,深度对比分析》 - 51CTO |
2.2 运行DataX
对参考文章3的纠正,的确可以用IDEA把DataX运行起来,但datax.home
有讲究,运行Engine.java
传入的参数方式也有说法,你配置的datax.home
,一定要有conf目录及其下的core.json文件
# -jobid你自己填,总之不要是-1
-job E:\IdeaProjects\DataX\target\datax\datax\job\job.json -jobid 1
其实关于DataX在IDEA中的调用,datax-example项目里有写,所以并不像参考文章三说的那样,官方没有IDEA运行的示例文档,只是写在了代码中,不过这一点确实容易误导开发者,可说到底,python datax.py
也只是一种用python调度java程序运行的方式,一个java项目,不可能存在IDEA运行不起来的情况。
参考文章或视频链接 |
---|
[1] 《DataX学习指南(四)-- 项目运行》 |
[2] |