目錄:
Informatica基礎(chǔ)系列(一)——Helloworld
Informatica基礎(chǔ)系列(二)——更新策略轉(zhuǎn)換組件
Informatica基礎(chǔ)系列(三)——表達(dá)式、篩選、查找組件
Informatica基礎(chǔ)系列(四)——聯(lián)結(jié)組件、路由組件
Informatica基礎(chǔ)系列(五)——參數(shù)與變量
Informatica基礎(chǔ)系列(六)——發(fā)布環(huán)境、遷移知識庫
正文:
這一篇介紹 Informatica 的軟件功能視圖,并通過一個簡單的 Demo 一窺 Infa 完整開發(fā)流程。
一、Infa 軟件視圖
1.1 概覽
Infa 是 C/S 的軟件架構(gòu),包括 Server、Client,我們的開發(fā)工作一般集中在 Client 。在本地安裝好客戶端,就會看到 Infa 的幾個快捷方式,常用的有 Repository Manager、Designer、Workflow Manager、Workflow Monitor,如下圖所示:
1.2 Repository Manager
倉庫管理,負(fù)責(zé)工作夾的創(chuàng)建、刪除、編輯以及環(huán)境數(shù)據(jù)的導(dǎo)入導(dǎo)出,能看到在其他視圖做的工作,包括 Designer 的 Source、Target、Mapping,還包括 Workflow 的 Session、Workflow、Schedule,如下圖所示:
1.3 Designer
映射設(shè)計,負(fù)責(zé)數(shù)據(jù)源、目標(biāo)的映射轉(zhuǎn)換設(shè)計。
如上圖,1 是切換軟件視圖區(qū),可以方便地打開或切換到其他視圖;2 是工作夾導(dǎo)航區(qū);3 是組件區(qū),可以拖拽到設(shè)計區(qū);4 是設(shè)計視圖切換區(qū),可以在 Source、Target、Transformation、Maplet、Mapping 設(shè)計區(qū)切換;5 是狀態(tài)欄。
1.4 Workflow Manger
工作流管理,負(fù)責(zé)工作流設(shè)計、設(shè)置等。
Workflow 視圖和 Designer 類似,需要補(bǔ)充說明的是:設(shè)計區(qū)、菜單、快捷組件等會根據(jù)你開發(fā)內(nèi)容的不同而實(shí)時變化,您可以在 Designer 的 4 區(qū)切換不同的設(shè)計視圖體驗(yàn)一下。
1.5 Workflow Monitor
工作流監(jiān)控,查看運(yùn)行狀態(tài)、運(yùn)行日志等。
如上圖,1是 Workflow 的運(yùn)行日志,雙擊 Workflow 的某一個 Session,下面會有該 Session 的詳細(xì)日志,從 Source 抽取的記錄數(shù),影響 Target 的記錄數(shù),Session 的開始時間、結(jié)束時間等。
二、HelloWorld
接下來我們做一個 Demo,把 Source Table 的數(shù)據(jù)全量 load 到 Target Table,根據(jù) Id 主鍵匹配,Insert/Update 到 Target。為了簡便,我把 Source、Target 放在同一個 DB。
2.1 新建 Folder
我們從零做起,首先打開 Repository Manager 視圖,新建一個 Test 工作夾,如下圖所示:
如果勾選 Allow Shortcut,表示該 Folder 是一個共享工作夾,點(diǎn)擊確定就建好一個 Test 的 Folder,接下來切換到 Designer。
2.2 導(dǎo)入 Source、Target
切到 Designer 會看到 Test Folder,如果 Designer 處于打開狀態(tài),需要斷開連接重新連才能看到這個變更,如下圖所示:
接下來導(dǎo)入 Source、Target 數(shù)據(jù)結(jié)構(gòu),先切換到 Source 視圖(中間紅框的第一個圖標(biāo)),可以看到菜單出現(xiàn) Source 的菜單。點(diǎn)擊它,選擇 "Import from Database"。當(dāng)然,Infa 支持導(dǎo)入很多種數(shù)據(jù)源結(jié)構(gòu),本文以 Database 為例:
我已經(jīng)建好一個 ODBC 的 DSN,也可以點(diǎn)擊后面的 "..." 創(chuàng)建。接下來,選中這個 DSN,輸入 UserName/Password ,點(diǎn)擊帶圖標(biāo)的 "Connect" 按鈕,選中要導(dǎo)入的表,點(diǎn)擊 "OK",Source 就導(dǎo)好了,如下圖所示:
導(dǎo)入 Target 的方法和導(dǎo)入 Source 類似,導(dǎo)入后結(jié)果如下圖所示:
2.3 設(shè)計 Mapping
導(dǎo)入 Source、Target 后,切換到 Mapping Designer 視圖設(shè)計 Mapping(中間第5個小圖標(biāo),也就是最后那個),通過 Mapping -> Create,輸入 Mapping 名稱,創(chuàng)建一個 Mapping,如下圖所示:
將 Source、Target Table 拖拽到設(shè)計區(qū),并將 Source 和 Target 的字段根據(jù)需求連線,我們先簡單地把 Source 的數(shù)據(jù)一一對應(yīng)地 load 到 Target,直連就可以了,如下圖所示:
補(bǔ)充說明:Infa 可以根據(jù) Position/Name 自動連線,右鍵單機(jī)空白處,可以看到 AutoLink 選項(xiàng),您可以試試。
2.4 生成 Workflow
Mapping 設(shè)計完畢后,右鍵點(diǎn)擊空白處,選擇“Generate Workflow”,根據(jù)引導(dǎo)程序完成 Workflow 的創(chuàng)建,可以先按引導(dǎo)程序的默認(rèn)選項(xiàng),后續(xù)在 Workflow 中重新設(shè)置,如下圖所示:
這里可以選擇創(chuàng)建一個可復(fù)用的 Session、可復(fù)用 Session 的 Workflow 或不復(fù)用的 Session 的 Workflow,通常情況下,一個 Workflow 可以運(yùn)行多個 Session,我們選第三個。
2.5 設(shè)置 Workflow
Workflow 運(yùn)行前需要指定 “Connector”,就是 Source、Target 數(shù)據(jù)所在的數(shù)據(jù)庫連接。切換到 Workflow 視圖,通過 Connerctor -> Relational ... 配置連接,如下圖所示:
雙擊 Workflow 中的 Session -> Properties ->Treat source rows as,選擇 “Update”,如下圖所示:
切換到 Mapping tab,設(shè)置 Source、Target 的連接,并選擇 Target “Update else Insert”,我們上面選擇的是 Update 模式,這里選擇這個選項(xiàng)的意思是匹配到則更新,否則插入新的記錄,如下圖所示:
到這里整個開發(fā)就結(jié)束了,下面我們驗(yàn)證下我們的數(shù)據(jù)是否能得到預(yù)期結(jié)果。
2.6 驗(yàn)證結(jié)果
我已經(jīng)在 Source Table 準(zhǔn)備了 4 條記錄,Target Table 無記錄,查詢結(jié)果如下圖所示:
然后運(yùn)行 Workflow,右鍵單擊 Workflow Designer 空白處 -> Start Workflow,會自動轉(zhuǎn)換到 Monitor 視圖,查看日志看到影響了 4 條記錄,再查看下數(shù)據(jù)庫,看到 Target Table 已經(jīng)有了 4 條數(shù)據(jù),如下圖所示:
今天的分享就到這,相信這篇文章已經(jīng)能夠讓你快速上手 Infa 的開發(fā)了。隨著業(yè)務(wù)場景的復(fù)雜程度,Infa 也有更復(fù)雜的設(shè)計策略,敬請期待下次分享!
At 2017.08.13