1. 程式人生 > >Informatica PowerCenter使用介紹-轉載

Informatica PowerCenter使用介紹-轉載

轉載自:https://blog.csdn.net/wen_demon/article/details/44155639

1. INFORMATICA CLIENT的使用
1.1 Repository Manager 的使用
1.1.1 建立Repository。
前提:

a. 在ODBC資料來源管理器中新建一個數據源連線至你要建立Repository的資料庫(例:jzjxdev)
b. 要在你要連線的資料庫中新建一個使用者(例:name: ETL password: ETL)
現在你可以建立一個Repository了。選擇Repository – Create Repository,輸入Repository Name(例:JZJX),Database Username(例:etl),Database Password(例:etl),ODBC Data Source(例:jzjxdev),Native Connect String(資料庫所在ip例:141.20.52.108)


1.1.2 新增Repository。
通過這一步你可以新增別人已經建好的Repository。
選擇Repository – Add Repository,輸入Repository Name(例:JZJX),Username(例:etl),點選ok就可以看到名為JZJX的Repository在左邊的瀏覽器中,但是此時還看不到它的內容,要看到它的內容或者對它進行操作必須先連線它。


1.1.3 新增Folder
選擇Folder – Create,輸入資料夾名稱即可。


1.2 Designer 的使用
首先連線Repository,可以看到該Repository在Repository Manager中建立的資料夾。


1.2.1 Sources 
    Sources資料夾下的表是抽取的來源表。
    匯入方法:

    選擇Tools選單下的Source Analyzer,然後選擇Sources選單下的Import from database,連線想要連線的資料庫,連線上後選擇你要抽取的表點選ok你所選擇的表就會出現在Sources資料夾下。
    說明:上面的匯入過程匯入的只是表結構,你也可以自己建立來源表,只要你建立的表的結構跟真實存在的那張表的表結構一致就行。


1.2.2 Targets 
     Targets資料夾下的表是抽取的目標表,也就是抽取結果的存放表.
     匯入方法: 選擇Tools選單下的Warehouse Designer,然後選擇Targets選單下的Import from database,連線想要連線的資料庫,連線上後選擇你要抽取的表點選ok你所選擇的表就會出現在Targets資料夾下。
    說明:上面的匯入過程匯入的只是表結構,你也可以自己建立目標表,只要你建立的表的結構跟真實存在的那張表的表結構一致就行。


1.2.3 Mappings 的設計
        選擇Tools選單下的Mapping Designer才能進行Mapping的設計。
        每個Mapping都由來源表,transformation和目標表組成,描述資料抽取的過程。來源表和目標表可以從Sources和Targets資料夾拖拽到工作區,但是transformation一般來說是需要自己建立的。Mapping的設計關鍵是transformation的使用,它的使用關係到資料抽取的正確性和效率。下面說明各個transformation的作用和用法。
(Active:表示該transformation可以改變通過它的資料的行數;
Passive:表示該transformation不改變通過它的資料的行數;
Connected:表示該transformation要連線到資料流;
Unconnected:表示該transformation可以不連線到資料流)


1.2.3.1 Source Qualifier
作用:根據查詢SQL文從關係表或平坦檔案查出所要記錄
用法:建立好Source Qualifier(下簡稱SQ) 後,將需要的用的欄位從來源表拖拽到SQ ,雙擊SQ,對SQ的屬性進行設定。
Select Distinct 屬性:選中的話表明結果記錄將去除重複值;
Tracing Level屬性: 共有四級,表示log的複雜程度;
Number Of Sorted Ports屬性: 排序的欄位個數,值大於0時Sql Query中的sql 文將出現order by 從句;
Sql Filter屬性: 屬性值將出現在Sql Query屬性值的where表示式中;
User Defined Join屬性: 使用者如果要定義外部連線可在此寫(例: {REG_CUSTOMER LEFT OUTER JOIN PURCHASES on
(REG_CUSTOMER.CUST_ID = PURCHASES.CUST_ID AND PURCHASES.AMOUNT > 100.00) })
Sql Query屬性:值是一條sql 文,session執行時會執行這條sql 文進行查詢。
命名方式:SQ_Name
型別:Active/Connected
注意:SQ的輸入只能來自來源表; User Defined Join屬性值必須用{}括起來;在更改了SQ的屬性值之後一定要點選Sql Query屬性的
generate sql按鈕重新生成sql文。


1.2.3.2 Update Strategy
作用:決定該行進行插入,刪除,更新,忽略中的哪一種操作
用法:建立好Update Strategy(下簡稱US)後,將需要的用的欄位從transformation拖拽到US ,雙擊US,對US的屬性進行設定。US的設
置關鍵是Update Strategy Expression屬性的設定,這個表示式使用IIF 或DECODE 函式對記錄的每一行進行判斷,為每一行賦予
DD_INSERT,DD_UPDATE,DD_DELETE,DD_REJECT(這四個是常量,值分別為0,1,2,3)中任意一個值,表明該行在資料庫中將進行
何種操作。
命名方式:UPD_Name
型別:Active/Connected
注意:mapping中有US時,mapping對應的session的在配置屬性時必須把Treat rows屬性設定為Data Driven,否則US將不起作用。


1.2.3.3 Expression
作用:計算一個值
用法:建立好expression_r(下簡稱EXP)後,將需要的用的欄位從來源表拖拽到EXP,雙擊EXP,
     新增輸出埠,編輯該埠的表示式。
命名方式:EXP_Name
型別:Passive/Connected
注意:要進行列運算一般用這個transformation; 此種transformation可以使用本地變數


1.2.3.4 Stored Procedure
作用:呼叫一個儲存過程
用法:建立Stored Procedure(下簡稱SP)的時候連線資料庫選擇必要的儲存過程。SP有連線和不連線到資料流兩種用法。
連線到資料流方式跟一般的transformation類似,通過拖拽埠來實現資料流。
不連線到資料流分表示式呼叫和Pre-/Post Session兩種方式。表示式呼叫方式中SP被Mapping中另一個transformation 中的表示式
呼叫。Pre-/Post Session方式就是在Session的屬性中配置SP的執行時間,Source Pre-load(Session從源表查詢資料之前),Source
Post-load(Session從源表查詢資料之後),Target Pre-load(Session將資料插入目標表之前),Target Post-load(Session將
資料插入目標表之後)
命名方式:SP_Name
型別:Passive/Connected or Unconnected
注意:


1.2.3.5 Sequence Generator
作用:產生主鍵
用法:建立好Sequence Generator(下簡稱SEQ)後,雙擊SEQ,對SEQ的屬性進行設定。Start Value屬性是開始值,此屬性只在選擇了
Cycle選項才有效;Increment By 屬性值是每次增加的值;End Value屬性值是結束值;Current Value屬性值是當前開始值;Cycle選
項被選擇的話NEXTVAL的值達到End Value值之後會重新從Start Value開始;Reset選項被選擇的話,伺服器會為每個使用了該SEQ的
session的NEXTVAL值都從Current Value開始。
命名方式:SEQ_Name
型別:Passive/Connected
注意:這是一個只有兩個輸出埠沒有輸入埠的transformation.;
      如果該SEQ時可重複使用的話,不能選擇Reset選項。


1.2.3.6 Aggregator
作用:執行分組聚合運算
用法:建立好Aggregator(下簡稱AGG)後,將需要的用的欄位從其他transformation拖拽到AGG ,雙擊AGG,在埠tab中每個埠有
group by 選項。鉤上想要分組的列,新增埠,編寫聚合表示式實現分組聚合運算。
命名方式:AGG_Name
型別:Active/Connected
注意:可使用本地變數


1.2.3.7 Filter
作用:過濾記錄
用法:建立好Filter(下簡稱FIL)後,將需要的用的欄位從transformation拖拽到FIL ,雙擊FIL,對FIL的屬性進行設定。FIL的配置主
要是對Filter Condition的配置,Filter Condition 寫入類似where條件的表示式即可。
命名方式:FIL_Name
型別:Active/Connected
注意:


1.2.3.8 Lookup
作用:查詢值
用法:建立Lookup(下簡稱KP)的時候選擇要查詢的表。和Stored Procedure一樣SP有連線和不連線到資料流兩種用法。
連線到資料流方式將要關聯查詢的欄位從其他的transformation拖拽過來,然後雙擊LKP進行屬性的配置。Lookup Policy On
Multiple Match屬性表明當查詢到多個行時採取取第一行,取第二行,報錯中哪個策略.Lookup Condition 屬性值是查詢的條件。
Lookup Sql Override屬性值是查詢執行的Sql文,我們可以在裡面直接寫Sql。Lookup Caching Enabled屬性表明是否使用快取,此項
一般選擇為好,有利提高效率。Loopup Cache Persistent屬性表明是否使用永久的快取。
命名方式:LKP_Name
型別:Passive/Connected or Unconnected
注意:如果Lookup表的型別是來源表的話,請儘量使用Joiner;
一個已連線的LKP不能再被其他transformation的表示式呼叫;
如果查詢表在session執行過程中不會改變,使用Loopup Cache Persistent屬性可提高效能;
儘量不要在Lookup Sql Override中書寫order by子句,因為cached LKP預設有order by ;


1.2.3.9 Joiner
作用:連線查詢來自不同資料庫的表或平坦檔案
用法:建立好Joiner(下簡稱JNR)後,將需要的用的欄位從transformation拖拽到JNR ,雙擊JNR,對JNR的屬性進行設定。用於連線的
兩個表一個稱為detail表,一個稱為master表。JNR屬性中可配置Join Type(連線型別)為Normal Join,Master Outer Join,Detail
Outer Join 和Full Outer Join中任意一種。Normal Join相當於常規的inner join; Master Outer Join相當於常規的Detail left
outer join Master;Detail Outer Join相當於常規的Detail right outer join Master; Full Outer Join相當於常規的full outer
join。Join Condition屬性值就是常規sql文on 後帶的條件。
命名方式:JNR_Name
型別:Active/Connected
注意:儘量使用Normal Join,Master Outer Join.這兩個的效率比另外兩個更好


1.2.3.10 Normalizer
作用:格式化記錄,這些記錄可以是來自COBOL源
用法:
命名方式:NRM_Name
型別:Active/Connected
注意:


1.2.3.11 Router
作用:根據一組表示式將記錄分類路由到多個transformation
用法:建立好Router(下簡稱RTR)後,將需要的用的欄位從transformation拖拽到RTR,雙擊RTR,對RTR的屬性進行設定。在Group tab
中新增組,為每組編輯該組的過濾條件。
命名方式:RTR_Name
型別:Active/Connected
注意:組過濾條件表示式的計算值必須是真或者假。


1.2.3.12 Rank
作用:排序記錄,只輸出最頂層或最低層的n個記錄
用法:建立好Rank(下簡稱RNK)後,將需要的用的欄位從transformation拖拽到RNK,雙擊RNK,對RNK的屬性進行設定。在Ports tab中
有一個名為‘R’的列,選擇你要排序的列。你還可以選擇你想分組的列。在Properties tab中Top/Bottom屬性,Top表示選擇頂層的
記錄,Bottom表示選擇底層的記錄; Number Of Ranks屬性值是整數,表示要選擇的記錄條數。假設你在‘R’列中選擇了名為’
Price’的列,而且Group By選擇了‘Name’列,Top/Bottom屬性選擇的是‘Top’, Number Of Ranks屬性值是2,那麼將抽取過程是
這樣的:以name分組取出每組中 Price最大的2列記錄。
命名方式:RNK_Name
型別:Active/Connected
注意:可以使用本地變數


1.2.3.13 ERP Source Qualifier
作用:根據查詢SQL文從ERP檔案查出所要記錄
用法:
命名方式:
型別:Active/Connected
注意:


1.2.3.14 XML Source Qualifier
作用:根據查詢SQL文從XML檔案查出所要記錄
用法:
命名方式:XSQ_Name
型別:Passive/Connected
注意:


1.2.4 Mapping Parameters(引數) 和 Variables(變數)的使用
如果你在一個mapping中多次用到同一個值,又或者mapping中要用到一個在session執行才能決定的值,這時候可以使用mapping
parameters或variable。新增引數或變數的方法是:選擇Mappings-Parameters and Variables,在視窗新增變數或者引數,並對它的
資料型別,資料大小,初始值進行設定。新增的引數和變數在本mapping的transformation的表示式中就可以使用了。這些引數和變
量的值還可以設定在.txt檔案中,建session或者batch的時候把這個檔案的路徑設定在Parameter輸入框中就行了。
Mapping引數變數的命名方式:$$NAME
存放參數變數的.txt檔案的格式:folder_name可寫可不寫
[folder_name.session_name]   
parameter_name=value
variable_name=value
mapplet_name.parameter_name=value
[folder_name.session2_name]
parameter_name=value
variable_name=value
mapplet_name.variable_name=value
[folder2_name.session_name]
parameter_name=value
variable_name=value
mapplet_name.parameter_name=value


1.2.5 Mapping 的除錯
選擇Mappings–Debugger–Start Debugger,在點選‘下一步’的過程中選擇除錯過程執行在哪臺伺服器然後為來源表選擇資料庫,
最後到完成。等除錯初始化好之後點選Mappings–Debugger–Continue(或按F5),即可開始除錯,選擇某個目標表即可看該表的結果
資料。如果還想看中間某個transformation的資料,在開始除錯前為該transformation增加一個斷點。


1.3 Server Manager 的使用
1.3.1  Register Server(註冊伺服器)
任何session都必須執行在某個伺服器上,所以如果Server Manager裡沒有伺服器的話必須註冊一個,當然你也可註冊多個伺服器。
伺服器的註冊過程如下:
選擇Server Configuration – Register Server,Server輸入 的是要註冊的伺服器的名稱;Host Name 輸入的是運行了informatica
server的機器名或iprotocol選擇TCP/IPort Number輸入4001。最下面的是伺服器的變數設定,設定的是session或batch執行時一些
檔案的存放位置,比如說log檔案bad 檔案 cache檔案,一般不用更改。這樣一個伺服器就註冊到repository了,不過後面你可以雙
擊它重新編輯。


1.3.2 Add DataBase Connection(新增資料庫連線)
選擇Server Configuration – DataBase Connection,點選Add,然後選擇資料庫的型別。不同型別的資料庫配置起來不一定一樣,下面說明Oracle 和SQL Server兩種資料庫連線的配置。
Oracle型別資料庫連線配置:Data Source 輸入資料來源名稱;User Name輸入資料庫連線的使用者名稱;Password輸入資料庫連線的密碼;Connect String 輸入Oracle TNS 服務名。
SQL Server 型別資料庫連線配置: Data Source 輸入資料來源名稱;User Name輸入資料庫連線的使用者名稱;Password輸入資料庫連線的密碼;Database Name輸入資料庫名稱;Server Name輸入資料庫的ip地址;Domain Name輸入資料庫的域名。


1.3.3 Add Session(新增抽取任務)
Mapping 只是資料抽取過程的設計,要使這個過程執行必須為該Mapping建立對應的session,然後執行該session。選擇Operations-Add Session,在視窗中選擇一個Mapping點選ok會出現編輯該session的視窗。
Session輸入框輸入該session的名稱;
server選擇該session將執行在的伺服器;
Treat rows有Insert,Delete,Update,Data Driven四個選項,表明抽取出來的資料在目標表中作何種操作,只有在session對應的mapping中有Update Stategy時才能選擇Data Driven而且也必須選擇Data Driven;
Source 框選擇來源表所在的資料庫;
Target Options 中的Insert,Update(as Update),Update(as Insert),Update(else Insert),Delete,Truncate table 選項的意思分別是:將insert作insert操作,將Update 作insert操作,將Update先做Update操作不成功再作insert操作,將delete作delete操作,在對目標表操作前刪除目標表所有資料。這些選項如果與Update Stategy衝突server將以這裡的設定為準,也就是說這裡的設定可以覆蓋Update Stategy的設定;Parameter輸入框中輸入session要用到的引數或變數的所在檔案的路徑;其他設定比較簡單或者保持原來的值即可,這裡就不再詳細說明了。除了在新增 session的過程中可編輯session之外,雙擊已新增的session也對session重新設定。
注:如果mapping 中有Joiner的話,session的編輯視窗的Source Type就變成heterogeneous(不同類),這樣就無法通過設定Source
來設定來源表的位置,只能在Source Location tab中為每個來源表設定位置。


1.3.4 Add Batch(新增批操作任務)
新增Batch可以將一系列的session串起來,這樣就可以讓必須按順序執行的session有序的執行。新增方法:選擇Operations-Add Batch,在視窗中對batch進行編輯。Batch輸入框中輸入batch 的名稱;
Parameter輸入框中輸入batch中的session要用到的引數或變數的所在檔案的路徑,由於每個session都可以設定自己的parameter,所以batch中可以不設定,即使batch的parameter進行了設定也會被各個session自己的parameter設定所覆蓋,但如果session用到了parameter在同一個檔案中的話,把parameter檔案的位置設定在batch的parameter輸入框就顯得更方便;Enabled選項表明是否讓該batch有效;Concurrent選項表明是否讓batch中的所有session並行地執行;Schedule中可設定batch的執行時間和執行頻率。


1.3.5 Session和Batch 的執行
右鍵單擊要執行的session或者batch,選擇start即可讓該session或者batch立刻執行。如果你的session或者batch的Schedule設定不是選擇的‘Run only on demand’,那麼該session或者batch就會在設定完後就處在Scheduled狀態,時間一到就會自動執行。(可以右擊伺服器選擇monitor來監視執行在該伺服器下的session或者batch當前狀態)。