Datax源码改造关键步骤记录
阅读原文时间:2023年07月08日阅读:1

Datax源码改造关键步骤记录:

一、作业配置
1、一个job配置;reader 和writer 的column 字段必须是所有表共有的;
2、reader多张表,writer一个表时,所有reader的数据都会写到一张表里面(叠加);reader多种表,writer也多张表时,会按表对应顺序一一写入其他表;
3、writer表的数量不能超过reader表的数量;
4、一个job里只能有一个reader和一个writer;

二、核心代码改造

1、返回日志改造:
(1)、修改Engine类:方法start重写为returnResultLogStart;方法entry重写为returnEntry;
(2)、修改AbstractContainer抽象类:增加returnResultLogStart抽象接口;
(3)、修改JobContainer类:实现方法returnResultLogStart(即重写了start方法);方法logStatistics重写为returnlogStatistics,异常:throw改为 return .getmessage();

2、使用核心代码(不打包直接使用源码)需要修改地方:

(1)、直接复制core模块代码,导入datax-common、datax-transformer、plugin-rdbms-util;
(2)、修改conf下的core.json(包路劲和speed参数值)、plugin下的全部插件的plugin.json(包路径);
(3)、修改core.transport.transformer.GroovyTransformer的代码中的包路径,datax.core.transport.exchanger.BufferedRecordTransformerExchanger的包路径;
(4)、core.transport.channel.speed.byte(conf/core.json)和job.setting.speed.byte需要同时进行设置或全都不设置,
core.transport.channel.speed.record(conf/core.json)和job.setting.speed.record需要同时进行设置或全都不设置;
(5)、修改datax.core.job.JobContainer的logStatistics方法返回结果(kafka生产消息);

3、使用多线程或消息中间件(并发)时,方法入口加上synchronized;否则会线程间影响;