otter 扩展
参见otter官方的说明:数据处理自定义,比如Extract , Transform的数据处理. 目前Select/Load不支持数据自定义处理。
Extract模块:
1.EventProcessor : 自定义数据处理,可以改变一条变更数据的任意内容。
2.FileResolver : 解决数据和文件的关联关系。
Transform模块:这个模块的自定义目前没有看到对应的官方demo,源码叶没有关注到对应的实现,有待进一步了解。
自定义EventProcessor :
1.通过Otter Manager直接发布source文件代码,然后推送到node节点上即时生效。
2.可以将class文件放置到extend目录或者打成jar包,放置在node启动classpath中,也可以通过Otter Manager指定类名的方式进行加载
/*** 业务自定义处理过程* * @author jianghang 2012-6-25 下午02:26:36* @version 4.1.0*/
public interface EventProcessor {
/*** 自定义处理单条EventData对象* * @return {@link EventData} 返回值=null,需要忽略该条数据*/
public EventData process(EventData eventData);}
通过实现EventProcessor 接口,完成自已逻辑处理,可以完成每一条数据的处理,不过此处自定义EventProcessor也存在一些坑,比如在执行ddl语句时,如果对应的Pipeline中配置了支持ddl同步,ddl语句在执行至自定义的EventProcessor时存在不可预见的异常,这块在实际处理的过程中可以关闭对ddl同步支持,或者忽略掉ddl异常。
官方demo参见:Otter扩展性 · alibaba/otter Wiki · GitHub
备注:本文大部分都参考了官方针对扩展性的说明,针对使用过程中出现的坑进行了补充说明。