DATAX编译及Transformer自定义插件添加

DataX Transformer

Transformer定义

在数据同步、传输过程中,存在用户对于数据传输进行特殊定制化的需求场景,包括裁剪列、转换列等工作,可以借助ETL的T过程实现(Transformer)。DataX包含了完整的E(Extract)、T(Transformer)、L(Load)支持。

源程序下载后,在 \core\src\main\java\com\alibaba\datax\core\transport\transformer 文件夹下,有几个原生的转换器

  1. 截取SubstrTransformer
  2. 填充PadTransformer
  3. 替换ReplaceTransformer
  4. 过滤FilterTransformer
  5. Groovy类型GroovyTransformer

 打开 TransformerRegistry.java 可以看见,这些转换器都被注册了的。

如果想要添加自定义转换器,需要在该文件夹里再新建一个类,同时把它注册到 TransformerRegistry.java 里。

于是我们在idea里打开这个项目,嗯,麻烦开始了。

DATAX编译

初次下载未编译的状态下,这个项目各种报红,无论是在idea里狂按clean和install,还是在项目文件夹下 cmd 编辑框里输入:mvn -U clean package assembly:assembly -Dmaven.test.skip=true,提示总会出现各种找不到,一会儿找不到插件,一会儿找不到jar包,一会儿又结构性报错,哪怕我重新建一个maven库,自己从网上下,好不好?

最后还是有两个jar包提示找不到:

pentaho-aggdesigner-algorithm-5.1.5-jhyde.jar

eigenbase-properties-1.1.4.jar

因为这个错误报的太奇葩我忘了截图,反正就是说这两个jar包 maven.aliyun.com/repository/public 上找不到。

阿里云公共仓库哭了:你才找不到!

非但如此,我本地仓库里明明也下载了这两个jar包:

哭死我了。

试了一堆办法都没用,于是我只好……呃,又下了个编译好的DATAX,解压缩后先试了试,发现能用,然后lib文件夹里捞出这两个jar包,手动添加到本地仓库:

在cmd编辑框下输入:

mvn install:install-file -DgroupId=org.pentaho -DartifactId=pentaho-aggdesigner-algorithm -Dversion=5.1.5-jhyde -Dpackaging=jar -Dfile=E:/code/jars/pentaho-aggdesigner-algorithm-5.1.5-jhyde.jar

mvn install:install-file -DgroupId=eigenbase -DartifactId=eigenbase-properties -Dversion=1.1.4 -Dpackaging=jar -Dfile=E:/code/jars/eigenbase-properties-1.1.4.jar

然后,小心翼翼地输入:

mvn -U clean package assembly:assembly -Dmaven.test.skip=true

按下回车。当一堆SUCCESS在我眼前不断跳动时,我的心也渐渐提到嗓子眼儿,不到最后关头都有fail的可能,别高兴得太早,希望越大失望越大,碎碎念。

啊,美如画!

对了,听我同事说,换maven能解决,不过要换成3.8.8的,我的maven是3.9.5的,已经哭不出来了。

Transformer自定义插件添加

编译成功,已经是万里长征走完了99%,下面就编写插件吧,这是我写的一个关于获取经纬度的插件。

别忘了注册:

而后编译,找到target目录,里面就是编译好的DATAX工具,可以直接使用。

在job.json里,writer节点下面加:

运行结果:

结语

短期内,我不想用它了,看到就反胃。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值