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的值
***/