Informatica-增量抽取圖文教程_第1頁(yè)
Informatica-增量抽取圖文教程_第2頁(yè)
Informatica-增量抽取圖文教程_第3頁(yè)
Informatica-增量抽取圖文教程_第4頁(yè)
Informatica-增量抽取圖文教程_第5頁(yè)
已閱讀5頁(yè),還剩8頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

Informatica增量抽取圖文教程源表T_SOURCETABLE初始有兩條測(cè)試數(shù)據(jù)目標(biāo)表T_TARGETTABLE初始默認(rèn)清空一、按時(shí)間戳抽取首先,我們根據(jù)CREATE_DT來(lái)進(jìn)行數(shù)據(jù)的增量抽取,模擬場(chǎng)景為第一次抽取全部數(shù)據(jù),第二次抽取第一次抽取之后新增的數(shù)據(jù)。MAPPING圖如下,主要使用了一個(gè)Expression組件:選擇Mappings菜單的參數(shù)與變量選項(xiàng)設(shè)置變量v_pumpdt新建變量$$v_pumpdt,類(lèi)型選擇變量,數(shù)據(jù)類(lèi)型選擇date/time,匯總方式選擇MAX。下面的初始值用于第一次全量更新,可以根據(jù)實(shí)際情況設(shè)置,我這設(shè)置成01/01/197000:00:01。修改SQ組件的過(guò)濾方式:可以先用生成SQL按鈕自動(dòng)生成select語(yǔ)句,然后下面增加過(guò)濾條件:whereT_SOURCETABLE.CREATE_DT>=to_date('$$v_pumpdt','mm/dd/yyyyhh24:mi:ss')andT_SOURCETABLE.CREATE_DT<to_date('$$$SESSSTARTTIME','mm/dd/yyyyhh24:mi:ss')即只過(guò)濾出從變量v_pumpdt值到抽取任務(wù)執(zhí)行時(shí)間值之間這段時(shí)間create的數(shù)據(jù)。完成后可以用驗(yàn)證按鈕驗(yàn)證語(yǔ)句的準(zhǔn)確性。這里要注意日期時(shí)間類(lèi)型字段的數(shù)據(jù)格式,由于服務(wù)器設(shè)置不同可能格式不同,而如果你取到的數(shù)據(jù)值和你指定的格式不匹配,在后面執(zhí)行抽取任務(wù)時(shí)會(huì)報(bào)錯(cuò)。我這個(gè)測(cè)試環(huán)境的格式是'mm/dd/yyyyhh24:mi:ss'修改Expression組件,增加一個(gè)表達(dá)式,把$$v_pumpdt的默認(rèn)值置為SESSSTARTTIME的值,這樣下次執(zhí)行時(shí),則會(huì)從這個(gè)時(shí)間,即上次session執(zhí)行時(shí)間開(kāi)始算起,達(dá)到個(gè)增量的目的。新增表達(dá)式設(shè)為date/time型,I、O、V端口這里選擇V,設(shè)置表達(dá)式內(nèi)容為:SETVARIABLE($$v_pumpdt,SESSSTARTTIME)設(shè)計(jì)完成后保存Mapping文件,然后打開(kāi)Workflow設(shè)計(jì)。新建一個(gè)workflow,設(shè)定好源表和目標(biāo)表的數(shù)據(jù)連接。保存,并執(zhí)行workflow,可以在monitor中看到任務(wù)執(zhí)行成功Target表中插入了源表中的兩條數(shù)據(jù),即完成了首次的全量抽取。這時(shí)候我們可以在workflow中查看到變量的變化情況:我們可以看到變量v_pumpdt的值變成了我們這次workflow開(kāi)始執(zhí)行的時(shí)間。在這里說(shuō)明一下,如果不再執(zhí)行增量抽取,需要再次全量抽取數(shù)據(jù)時(shí),只需要在這里執(zhí)行resetvalues,即可把變量值初始化回之前設(shè)定的'01/01/197000:00:01'。上文中提到的日期格式也可以在這里看到是'mm/dd/yyyyhh24:mi:ss'格式,如果是其他格式請(qǐng)相應(yīng)修改SQL中的格式。接下來(lái)我們驗(yàn)證增量抽取的執(zhí)行情況,在源表中新增兩條數(shù)據(jù),一條是用于抽取的“測(cè)試數(shù)據(jù)3”,創(chuàng)建時(shí)間介于第一次抽取時(shí)間與第二次抽取時(shí)間,另一條是對(duì)比數(shù)據(jù)“測(cè)試數(shù)據(jù)4”,雖然是新增數(shù)據(jù),但我們把create_dt設(shè)為第一次抽取時(shí)間之前。再次運(yùn)行workflow,查看結(jié)果,我們可以看到只有符合條件,即創(chuàng)建時(shí)間介于兩次抽取之間的測(cè)試數(shù)據(jù)3被正確抽取。驗(yàn)證按時(shí)間戳抽取數(shù)據(jù)正確執(zhí)行后,即可將workflow設(shè)為按計(jì)劃執(zhí)行,monitor中進(jìn)行監(jiān)控即可。二、比對(duì)更新抽取上文介紹了按時(shí)間戳字段對(duì)數(shù)據(jù)進(jìn)行增量抽取,但實(shí)際情況我們有些源表中沒(méi)有有效的時(shí)間戳字段,或者例如上文例子中,有個(gè)新增數(shù)據(jù)“測(cè)試數(shù)據(jù)4”無(wú)法根據(jù)時(shí)間戳進(jìn)行增量抽取,這種時(shí)候怎么辦呢?我們可以根據(jù)數(shù)據(jù)比對(duì)的方式進(jìn)行增量抽取,還是以剛才的測(cè)試數(shù)據(jù)為例:Mapping圖如下,主要用到了一個(gè)Lookup組件和一個(gè)UpdateStrategy組件2、創(chuàng)建Lookup組件時(shí)會(huì)提示你需要Lookup哪個(gè)表的數(shù)據(jù),這里指定成目標(biāo)表,我們?cè)O(shè)定的場(chǎng)景是需要根據(jù)源表的ID值去Lookup目標(biāo)表,如果不存在,增插入,如果ID存在,并且NAME相同,則拒絕插入,如果ID存在但是NAME不同,則update更新。這里是為了演示效果,用了NAME字段,實(shí)際項(xiàng)目中,可能會(huì)根據(jù)modified_dt或者多個(gè)字段去進(jìn)行比對(duì)。Lookup組件創(chuàng)建好后會(huì)自動(dòng)加載目標(biāo)表的字段,這時(shí)候我們將SQ組件中的ID和NAME字段拖拽到Lookup組件中,會(huì)自動(dòng)創(chuàng)建ID1和NAME1字段。先將Lookup組件中的ID和NAME拖拽到UpdateStrategy組件中,再將SQ組件中的全部字段拖拽進(jìn)UpdateStrategy組件(此時(shí)ID和NAME會(huì)自動(dòng)更名成ID1和NAME1),再?gòu)腢pdateStrategy組件拖拽到目標(biāo)表組件,即UpdateStrategy組件中的ID1、NAME1和目標(biāo)表中的ID、NAME建立link,最終形成上圖所示Mapping圖形。因?yàn)槲沂窃谏弦粋€(gè)例子中直接修改的Mapping,所以先把SQ組件中的過(guò)濾條件刪除。如果是新建的Mapping,這里不用維護(hù),留空即可,或根據(jù)項(xiàng)目實(shí)際需要設(shè)定過(guò)濾條件。修改Lookup組件,增加比對(duì)條件是ID=ID1修改UpdateStrategy組件,根據(jù)設(shè)計(jì)場(chǎng)景添加如下表達(dá)式:iif(isnull(ID),dd_insert,iif(ID=ID1ANDNAME=NAME1,dd_reject,dd_update))在UpdateStrategyExpression中可以輸入常量(DD_INSERT,DD_UPDATE,DD_DELETE,DD_REJECT)或者對(duì)應(yīng)的數(shù)字值(0,1,2,3),其它數(shù)字值被解析為0,可以用IIF或者DECODE函數(shù)構(gòu)建邏輯表達(dá)式來(lái)區(qū)別每一行的更新策略。維護(hù)完成后保存Mapping文件。為了查看抽取效果,我們更新一下源表數(shù)據(jù),將“測(cè)試數(shù)據(jù)3”的NAME值改為“測(cè)試數(shù)據(jù)3333”,共四條數(shù)據(jù)。而此時(shí)的目標(biāo)表仍是上次我們按時(shí)間戳抽取之后的三條數(shù)據(jù),其中第三條數(shù)據(jù)NAME是“測(cè)試數(shù)據(jù)3”:保存好Mapping文件后我們來(lái)更新我們的workflow,這里有兩點(diǎn)需要注意:一是workflow屬性中的插入方式,要改成Datedriven,默認(rèn)的Insert會(huì)插入全部數(shù)據(jù)。 二是由于我們的Mapping文件做了修改,在這里要刷新一下,執(zhí)行RefreshMapping,刷新后需要再次保存workflow,才能執(zhí)行處理:任務(wù)執(zhí)行成功后我們查看抽取結(jié)果,新增的“測(cè)試數(shù)據(jù)4”被執(zhí)行了插入,而“測(cè)試數(shù)據(jù)3”被Update成了“測(cè)試數(shù)據(jù)3333”有時(shí)候我們希望修改過(guò)的數(shù)據(jù)不是更新原數(shù)據(jù),而是作為一條新增數(shù)據(jù)插入到目標(biāo)庫(kù)中,這時(shí)候需要修改workflow中的目標(biāo)表的屬性為UpdateasInsert(已插入方式對(duì)待更新)。默認(rèn)是UpdateasU

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論