在使用大数据流批一体化技术加工处理数据时,经常需要过滤掉一些无效或者垃圾数据,本文简单介绍bboss流批一体化数据加工处理时记录过滤功能的使用方法。
1. bboss过滤记录方法
bboss通过接口DataRefactor来加工处理数据
package org.frameworkset.tran;
import org.frameworkset.tran.context.Context;
/**
* <p>Description: 数据加工处理接口</p>
* <p></p>
* <p>Copyright (c) 2018</p>
* @Date 2018/9/4 9:19
* @author biaoping.yin
* @version 1.0
*/
public interface DataRefactor {
/**
* 数据加工处理方法
* @param context 包含需要加工数据记录的上下文对象
* @return
*/
public void refactor(Context context) throws Exception;
}
数据加工处理方法refactor接收Context类型参数,对应需要加工处理的数据记录的上下文对象,Context提供获取、修改、添加、删除记录字段的一系列数据处理方法,也包含过滤数据记录的方法setDrop:
/**
* 设置是否过滤掉记录,true过滤,false 不过滤(默认值)
* @param drop
*/
void setDrop(boolean drop);
接下来介绍数据过滤方法的使用案例。
2. 记录过滤案例
数据过滤方法的使用非常简单,示例如下:
过滤入网号码为空非法号卡订单
//设置源数据加工操作,指标分析之前执行
importBuilder.setDataRefactor(new DataRefactor() {
@Override
public void refactor(Context context) throws Exception {
String new_number = context.getStringValue(CARD_FIELD.NEW_NUMBER.name());
//过滤掉入网号码为空非法号卡订单
if (null == new_number){
context.setDrop(true);//将当前记录标记为丢弃状态,以便过滤记录
return ; //过滤记录无需进行后续的加工处理,直接返回结束记录的后续加工处理
}
//加工和处理数据
Object value = context.getValue(CARD_FIELD.CHNL_COUNTY.name());
if (null == value){
context.addFieldValue(CARD_FIELD.CHNL_COUNTY.name(), "未知");
}
}
});
记录过滤说明:
-
通过调用context.setDrop(true)方法,将当前记录标记为丢弃状态,以便过滤记录
-
通常将记录过滤处理逻辑放置到refactor方法的开头,避免对需要过滤的记录做一些不必要的处理,以提升数据加工处理效率
-
过滤记录无需进行后续的加工处理,直接返回结束记录的加工处理
3. 参考资料
【1.数据采集ETL工具使用指南】
https://esdoc.bbossgroups.com/#/db-es-tool
【2.数据采集&流批一体化处理使用指南】
https://esdoc.bbossgroups.com/#/etl-metrics
【3.数据采集&流批一体化处理插件介绍】
https://esdoc.bbossgroups.com/#/datatran-plugins
【4.数据采集&流批一体化处理使用案例】
https://esdoc.bbossgroups.com/#/bboss-datasyn-demo