GoldenGate中字段的筛选一般都在TABLE参数中配置(目标端是在MAP参数)。一般推荐在源端extract进程配置文件中配置,这样可以有效得减小trail文件的大小,减小网络负载。以下是一些筛选配置例子(只列出配置文件的TABLE参数部分)。
(1)字段筛选:
/***
table ddw.aatest,
FETCHCOLS (id, name, type1, sell_date,value1); --表明只提取这些字段
***/
使用指定字段做主键:
/***
table ddw.aatest,
KEYCOLS (client_taq, id);
***/
(2)数据过滤:
使用WHERE条件:
/***
table ddw.aatest, where (type1 ="1" AND type2 = "2"); --表明只提取表中type1=’1并type2=’2’的记录
***/
如下提取非NULL值:
/***
table ddw.aatest, where (value <> @NULL);
***/
使用FILTER参数:
/***
table ddw.aatest,FILTER((num1*num2)>1000);
***/
与WHERE条件不同的是,FILTER只能后面数字,字符型需要转换后才可以使用,如:
/***
table ddw.aatest, FILTER (@STRFIND(NAME,"JOE") > 0).
***/
FILTER参数的优势是还可以指定只在某种DML操作下才过滤,比如:
/***
table ddw.aatest, FILTER((ON UPDATE, ON DELETE, (num1*num2)>1000);
--只在UPDATE和DELETE操作时过滤num1*num2不大于1000的值
***/
转载于:https://blog.51cto.com/369258/1353254