GoldenGate中字段的筛选通常都在TABLE参数中配置(目标端是在MAP参数)。通常推荐在源端extract进程配置文件中配置,这样能够有效得减少trail文件的大小,减少网络负载。如下是一些筛选配置例子(只列出配置文件的TABLE参数部分)。网络
(1)字段筛选:ide
/***spa
table ddw.aatest,进程
FETCHCOLS (id, name, type1, sell_date,value1); --代表只提取这些字段it
***/table
使用指定字段作主键:class
/***test
table ddw.aatest,cli
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的值
***/