在数据同步时,出于某些考虑,对一些敏感数据要进行二次处理,在otter中如何实现?
同步管理->channel->pipeline->映射关系 编辑,
脱敏处理实例源码:
package com.lcg.nodeext; import com.alibaba.otter.node.extend.processor.AbstractEventProcessor; import com.alibaba.otter.shared.etl.model.EventColumn; import com.alibaba.otter.shared.etl.model.EventData; /** * Hello world! * */ public class App extends AbstractEventProcessor { public boolean process(EventData eventData) { System.out.println("插件进入 plugins in ..."); if("fuser".equalsIgnoreCase(eventData.getTableName())){ for (EventColumn column : eventData.getColumns()) { //对手机号码进行转换处理 if(column.getColumnName().equalsIgnoreCase("phone")){ String oriphone = column.getColumnValue(); System.out.println("process column phone:"+oriphone); if(oriphone != null && oriphone.length() == 11){ column.setColumnValue(oriphone.substring(0, 3)+"****"+oriphone.substring(7)); } } } } return true; } }
本文参考:https://github.com/alibaba/otter/wiki/Otter%E6%89%A9%E5%B1%95%E6%80%A7