1. Informatica簡介
① Repository manager 主要用來維護資料庫的目錄,對象,建完對象可以創建demo的folder。
② Administration Console是完全基於web的,管理所有的節點,服務,在里面包括資料庫的一些用戶,權限等信息。
③ Designer主要用來設計mapping。Mapping是informatica的一個映射,也就是說是ETL的一個規范,包括對源,目標,過程的設計。
④ workflow主要用於將mapping實例化,也就是設計一個session,如果session很多的話需要將它們設計成一個串行或者並行的過程,它們組成的session就叫做workflow,即工作流。
⑤ workflow monitor用來監控、執行workflow。
⑥ 控件:Source Qualified Transformation:ETL經常會用到的組件,對數據源,包括文件,也包括數據表進行抽取。無論數據源是表還是平面文件源,都會用到該組件。
2. 新建帶過濾條件的workflow
D:
① 選在source,import source ,odbc data source中選擇oracle的odbc設置,如果沒有,要在管理工具中自行設置,具體如圖。
② 同理,在target中設置目標數據表的連接,然后設置mapping,設置成功之后,轉入w中設置工作流,
W:
① 在edit task->mapping中,source和target分別要設置源和目標的連接驅動。
② 在edit task->properties->parameter filename里面寫入參數所在文件夾的地址(該參數在服務器的目錄下,是事先設定好的文件)。
③ 在左項目條件source 中,edit task->mapping->source filter里面寫入過濾的參數條件。
④ 在左項目條件target中,edit task->mapping->pre SQL里面寫入執行前的更新數據表語句。
注意事項:
目標表的的數據表如果帶有系統目錄前綴,在設置mapping的連接條件時將無法識別前綴,因此沒有辦法傳輸數據。
3. 在Designer中設置過濾參數問題
① 設置參數之后,參數的默認值是字符如圖,M中運行結果錯誤,無法解析參數,數據沒有被導入。
4. 往GP數據庫中導入平面文件源。
① 要將所導入的文件放入服務器的目錄下,先在informatica控制台設置目錄。
② 設置workflow時,在source里設置如下目錄,其中source filetype包含兩種情況,Direct設置如下圖
③ indirect方式是選擇表名列表文件,按文件列表運行。
5. 設置同時將兩個表導入一個數據表中的workflow
6. 兩個並無關聯的mapping一起運行
① 在target load plan里面設置mapping運行的先后順序。
7. 帶expression Transformation組件的workflow
① 導入源表
② 手工創建目標表,可以在target菜單中選擇great創建,也可以復制目標庫中類似的表進行修改。前提是目標庫中存在這樣的表。
③ 手工創建目標表,target菜單下,generate/execute SQL
④ Filtertransformation組件:過濾組件將傳到目標表的數據進行篩選,過濾。過濾不能對原來的表字段進行修改。值改變傳遞值的行數。
⑤ Expression Transformation組件:不改變抽取數據的行數,是被動的函數組件。不能實現匯總級的函數的操作。執行的先后順序,先執行input,后執行valuable,valuable相當於一個局部的變量,按照順序執行,后執行output。
⑥ Reusable Transformation組件:
8. Workflow的調度方式
① 手工執行(現在都是在手工執行)
② Workflow scheduler(調度程序調度)
③ pmcmd startworkflow
④ command task
⑤ worklet
9. informatica語法規則
① 輸入的字符用 單引號 擴起來,連接字符用 || ,基本跟oracle保持一致。
② DECODE(IN_GENDER, 'M', 'MALE', 'N', 'FEMALE', 'UNK')
DECODE(TRUE,
IN_AGE < 20, 'LESS THAN 20',
IN_AGE >= 20 AND IN_AGE <= 29, '20 TO 29',
IN_AGE >= 30 AND IN_AGE <= 39, '30 TO 39',
IN_AGE >= 40 AND IN_AGE <= 49, '40 TO 49',
IN_AGE >= 50 AND IN_AGE <= 60, '50 TO 60',
IN_AGE > 60, 'GREATER THAN 60'
)
DECODE(字段名, '條件1', '返回值1', '條件2', '返回值2', '缺省值')