Informatica_(6)性能調優

6、實戰彙總
31.powercenter 字符集
瞭解源或者目標數據庫的字符集,並在Powercenter服務器上設置相關的環境變量或者完成相關的設置,不一樣的數據庫有不一樣的設置方法;
多數字符集的問題,須要源讀和目標寫分開來考慮,而不是混爲一談。
31.1 oracle字符集
獲取Oracle數據庫字符集,
以sys用戶登陸,select value$ from props$ where name='NLS_CHARACTERSET';
返回數據庫自己的字符集 --ZHS16GBK
設置Oracle環境變量,
Windows平臺須要在註冊表或者環境變量中設置;
Linux平臺須要修改Profile文件。
使用NLS_LANG=AMERICAN_AMERICA.ZHS16GBK設置
數據庫字符集與NLS_LANG不一致時,
以寫入字符集NLS_LANG爲準,即設置Powercenter服務器環境變量爲NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
數據源有兩個Oracle數據庫,但字符集不一致時,
建立兩個集成服務,在集成服務分別設置與對應數據庫相同的字符集。
數據源和目標都是Oracle數據庫,但字符集不一致時,
源使採用Native驅動,使用NLS_LANG;
目標採用ODBC驅動,在odbc.ini文件中設置對應的字符集信息。
31.2 db2字符集
獲取db2數據庫字符集,
執行db2set-all命令查看服務器的字符集。
設置db2客戶端字符集,
命令:db2set DB2CODEPAGE=819
DB2CODEPAGE=1386 中文
DB2CODEPAGE=1208 UTF-8
DB2CODEPAGE=819 ISO8859-1
DB2CODEPAGE=1200 16位Unicode
31.3 AS/400字符集
使用PowerExchange for AS/400針對字段定義對應的字符集。
31.4 ODBC字符集
對於UNIX/Linux系統在odbc.ini文件中IANAAppCodePage參數來控制字符集,
IANAAppCodePage=113 GBK
IANAAppCodePage=2026 Big5
IANAAppCodePage=4 ISO 8859-1
31.5 文本文件字符集
文本文件可能使用不一樣編碼方式(GBK、UTF-8).
在PowerCenter中對文本文件源和目標定義字符集有兩處:
在D客戶端中的源和目標定義階段,雙擊任意一個文件源或目標,選擇"Advanced",設置Code Page屬性。
在W客戶端中Session的源和目標屬性中,雙擊Session--》映射頁籤--》Set File Properties連接,設置Code Page屬性。
31.6 Repository service字符集
存儲庫字符集應該是任意數據字符集的超集。
存儲庫字符集只有兩種:「UTF-8 encoding of Unicode」、「Microsoft Windows Simplified Chinese,superset of GB 2312-80,EUC encoding」
存儲庫字符集一旦建立就不能修改。
在控制檯--》存儲庫--》數據庫屬性 中查看。
31.7 Integration service字符集
集成服務字符集只有兩種:「UTF-8 encoding of Unicode」、「Microsoft Windows Simplified Chinese,superset of GB 2312-80,EUC encoding」
在控制檯--》集成服務--》進程頁籤--》Codepage屬性 能夠查看和修改集成服務字符集。
PowerCenter提供的控制字符集的環境變量是INFA_CODEPAGENAME,
NFA_CODEPAGENAME=MS936 「Microsoft Windows Simplified Chinese,superset of GB 2312-80,EUC encoding」
NFA_CODEPAGENAME=UTF-8 「UTF-8 encoding of Unicode」
NFA_CODEPAGENAME=HKSCS
NFA_CODEPAGENAME=MS950
在UNIX/Linux上設置環境變量:export NFA_CODEPAGENAME=UTF-8
在Windows上設置環境變量:此電腦--》屬性--》高級系統設置--》高級--》環境變量
31.8 Data Movement Mode
在定義集成服務時須要設置Data Movement Mode,有兩個選項:ASCII、Unicode。
ASCII Data Movement Mode:當源和目標都是7bit ASCII或者EBCDIC時使用,以單字節的方式存儲、傳輸數據,在傳輸過程當中不作字符集轉換。
Unicode Data Movement Mode:當源和目標是多字節數據時使用,從源讀到數據後,先將其轉換爲UCS-2再進行處理;向目標寫以前再從UCS-2轉換位目標字符集。html

32.unix ODBC配置
32.1 ODBC常規配置
配置步驟:
安裝ODBC驅動(PowerCenter提供的驅動不須要再次安裝;PowerCenter未提供的驅動須要單獨安裝,如Sybase IQ、Mysql社區版)。
編輯/建立odbc.ini文件,設置ODBCINI環境變量(不要編輯多個odbc.ini文件,正確設置環境變量)。
export ODBCHOME=<Informatica server home>/ODBC7.1
export ODBCINI=$ODBCHOME/odbc.ini
設置Library Path環境變量,保證ODBC驅動程序路徑設置到Library Path中。
測試相關配置是否有效,測試工具包括:
使用ldd命令查看UNIX/Linux Library的調用順序,檢查Library Path的設置或者變動的影響,
使用方法:ldd /opt/informatica/datadirect/lib/XOmsss22.so
使用ODBC測試工具進行測試,如數據庫的ODBC客戶端工具,PowerCenter的ssgodbc工具。
32.2 Mysql社區版ODBC配置
數據庫提供的ODBC驅動不必定是DataDirect支持的ODBC,因此會遇到ODBC報錯的問題(如Mysql社區版)。
解決方法:
在Oracle官網下載相應版本的Mysql的ODBC驅動RPM包,並安裝到PowerCenter服務器上;
將安裝後的Mysql Library路徑添加到LD_LIBRARY_PATH中,並寫在DataDirect驅動管理器前面;
修改odbc.ini文件,添加Mysql ODBC驅動信息。
原理:
PowerCenter聲明支持ODBC Type2和Type3,並在安裝過程當中集成了DataDirect ODBC驅動;
DataDirect所帶的ODBC驅動僅支持Mysql商業版,因此就遇到PowerCenter不支持Mysql社區版的問題。
解決方案是下載、安裝Mysql社區版驅動程序,設置Library Path,利用PowerCenter支持ODBC Type二、Type3來支持Mysql社區版。node

33.使用mapping動態分發文件
以Dept爲例,按照LOC列將對應的數據寫入不一樣的文件中。
源--》SQ--》Sorter--》f(x)--》TX--》目標
目標中增長FileName列;
Sorter中對LOC列進行排序;
f(x)中定義本地變量:
LAST_VALUE 上次取值 表達式賦值爲CURRENT_VALUE
CURRENT_VALUE 本次取值 表達式賦值爲LOC
f(x)中定義輸出端口:
var_control 是不是同一個部門標識 表達式賦值爲IIF(LAST_VALUE=CURRENT_VALUE,1,0)
FileName 文件名 表達式賦值爲LOC.dat
TX中使用事務控制表達式:IIF(var_control=1,TC_CONTINUE_TRANSCATION,TC_COMMIT_BEFORE)算法

34.超越EDW,商品自動價格跟蹤
1.獲取數據:按條件抓取網頁數據(如京東、淘寶等),輸出html文件。可使用Informatica Data Transformation或者本身用其餘語言實現。
2.獲取企業關係的數據:將獲取的html文件轉成xml文件。可使用Informatica Data Transformation解析非結構化數據,將有價值的數據從非結構化數據中分離。
3.解析DT XML,輸出二維結構,在PowerCenter中使用UDO和XML Parser兩個轉換組件實現。
4.分詞、語義識別與專家知識集成,輸出格式化數據。
分詞:將全部業務的詞語用空格分隔;
語義識別:維護字典。sql

35.pmcmd命令
pmcmd命令用於和集成服務交互,能夠啓動、中止、監控工做流、會話。
pmcmd命令的子命令包括:
starttask、startworkflow ---啓動任務、工做流
stoptask、stopworkflow ---關閉任務、工做流
waittask、waitworkflow ---等待任務、工做流
aborttask、abortworkflow --- 終止任務、終止工做流
gettaskdetails、getworkflowdetails ---獲取任務、工做流的詳細信息
connect、disconnect、 ---鏈接、斷開鏈接
exit、help、version ---退出、幫助、版本
pingtservice
getrunningSessiondetails、getservicedetails、 ---獲取會話、服務的詳細信息
getserviceproperties、
getSessionstatistics、
recoverworkflow --恢復工做流
setfolder、unsetfolder --設置、不設置 文件夾
setwait、 setnowait、 --設置等待、不等待
showsettings --顯示設置
scheduleworkflow、unscheduleworkflow --計劃、不計劃工做流
pmcmd命令的模式包括:交互模式、腳本模式。
pmcmd命令啓動workflow的示例:
pmcmd startworkflow -sv MyIntService -d MyDomain -u seller3 -p jackson -f SalesEast wf_SalesAvgshell

36.pmrep命令
pmrep命令用於和存儲庫服務交互,能夠導入、導出相關對象,執行版本控制、註冊新的插件、建立或更新數據庫鏈接。
pmrep命令的子命令包括:
createdeploymentgroup、deletedeploymentgroup、addtodeploymentgroup、cleardeploymentgroup、deploydeploymentgroup --建立、刪除、增長、清空部署組
applylable --應用標籤
assignpermission
backup 備份
changeowner 更改全部者
checkin、findcheckout 簽入、簽出
cleanup
create、delete、run 建立、刪除、運行
createconnect、updateconnect、deleteconnect、showconnectioninfo、switchconnection 建立、更新、刪除鏈接、顯示鏈接信息、交換鏈接
connect、getconnectdetails、listconnections、listuserconnections、killuserconnection 鏈接、獲取鏈接詳細信息、列出全部鏈接、列出全部用戶鏈接、殺掉用戶鏈接
createfolder、modifyfolder、deletefolder、deployfolder 建立、修改、刪除文件夾
createlable、deletelable 建立、刪除標籤
objectimport、objectexport、deleteobject、listobjects、listobjectdependencies 導入、導出對象, 刪除對象、列出對象、列出對象依賴
executequery 執行查詢
exit、help、notify 退出、幫助
installabapprogram、uninstallabapprogram、generateabapprogramtofile 安裝、卸載abapprogram、生成abapprogram到文件
listtablesbysess
massupdate
purgeversion
register、unregister、registerplugin、unregisterplugin 註冊、未註冊、註冊插件、未註冊插件
restore 轉儲
rollbackdeployment
truncatelog 截斷日誌
undocheckout
updateemailaddr 更新郵箱地址
updateseqgenvals 更新序列生成值
updatesrcprefix、updatetargprefix、 更新源預處理文件
updatestatistics 更新統計值
upgrade 升級
validate 校驗
version 版本
pmrep命令的模式包括:交互模式、腳本模式。
pmrep命令備份存儲庫的示例:
--鏈接存儲庫
pmrep connect -r Production -n Administrator -x Adminpwd -d MyDomain -h Machine -o 8080
--備份存儲庫
pmrep backup -o c:\backup\Production_backup.rep數據庫

37.infasetup命令
infasetup命令用於管理域和節點,如節點IP變動、域數據的數據庫變動等。
infaservice.sh shutdown 關閉域
infasetup.sh updateGatewayNode -cs 更新域
infaservice.sh startup 啓動域apache

38.Mapping architect for viso
大量表對錶的無轉換抽取,可使用Mapping architect for viso工具批量處理。
步驟:
建立Mapping模板,並導出爲XML文件;
將模板導入Mapping architect for viso,並參數化;
打開Mapping architect for viso客戶端,
首先單擊Create Tempplate from Mapping XML按鈕,選擇上一步導出的XML文件做爲模板,對其中全部的對象進行參數化:
1.打開Source EMP,將 「Transformation Name」和「Source Table」修改成$SRC$;
2.打開SQ,將 「Transformation Name」修改成SQ_$SRC$;
3.打開Target,將 「Transformation Name」和「Target Table」修改成$SRC$;
4.若是還有其餘組件,都須要作相似修改;
5.雙擊Source EMP到SQ的連線Rule1,刪除全部的默認端口,使用All Ports;
6.雙擊SQ到Target的連線Rule2,刪除全部的默認端口,使用All Ports;
7.右鍵空白處,選擇Properties,在彈出框中修改「Mapping Name「爲「m_$SRC$」,將Mapping名參數化。
8.單擊Validate Mapping Template按鈕檢查修改是否有效。若是修改有效,單擊Publish Template按鈕進行發佈。
9.在目錄下生成了兩個文件是m_EMP.xml和m_EMP_param.xml,m_EMP_param.xml文件中每組<MAPPING>、</MAPPING>對錶示一個Mapping。
10.能夠複製多個<MAPPING>、</MAPPING>對,並修改「MAPPING NAME=m_表名」、「DESCRIPTION=m_表名」便可。
準備源和目標;
在D客戶端,源/目標目錄下,選中要導出的對象,右鍵--》Export Objects,
將導出文件命名爲Source.xml/Target.xml,並存放在..\MappingTemplate\tabledefs下。
批量生成Mapping/Session/Workflow。
在D客戶端菜單Mapping--》Import Mapping Template,選擇Mapping模板文件(m_EMP.xml),
點「Use Existing」,加載m_EMP_param.xml文件,修改參數$SRC$爲真實的表名,點「Next」,Mapping批量建立成功。
能夠選擇是否繼續建立Session/Workflow。瀏覽器

39.MX view語句
存儲庫存放在數據庫的一個模式或用戶下,由一組表和數據組成。
想要了解存儲庫的機制能夠對該用戶下的表進行查看:
在存儲庫用戶手冊中有關於Using Metadata Exchange(MX) views的說明;
也能夠發郵件到PowerCenterbook@gmail.com,獲取做者的經驗;
還能夠經過v$sql視圖自行測試研究。緩存

40.Powercenter與其餘工具集成
Powercenter與外部系統集成的方式有:命令行接口(pmcmd命令及其子命令)、Web Service接口、API集成。
1.命令行接口(pmcmd命令及其子命令)
外部調度程序能夠經過pmcmd命令及其子命令啓動Workflow、中斷Workflow、獲取運行日誌。
2.Web Service接口
Web Service Hub、Metadata Web Service接口提供了與pmcmd幾乎相同的功能,能夠幫助用戶快速構建調度和監控系統。
3.Informatica Development Platform(IDP)
IDP是PowerCenter的二次開發平臺,提供了大量API幫助用戶進行二次開發。
IDP接口類型包括Java接口和C接口。
IDP接口種類有:
PowerExchange API:爲PowerCenter增長新的數據接口支持,Java/C++接口。
Transformation API:爲PowerCenter增長新的轉換組件或新的功能,Java/C接口。
Design API:爲PowerCenter增長新的客戶端,Java接口。
Operation API:提供了外部程序與集成服務的交互能力,適合與第三方調度、監控系統集成,Java/C接口。
Operation API主要功能有:
鏈接、訪問集成服務;
運行、管理工做流和Session;
監控或者報告運行情況;
查看日誌;
錯誤處理等。
Operation API和pmcmd、Web Service接口在功能上有所重合,功能更增強大和靈活。tomcat

7、性能調優
性能調優可能涉及源、目標、操做系統、存儲、網絡等。
41.性能優化過程
性能調優是一個迭代過程,包括:創建性能基線、發現瓶頸、解決瓶頸、運行session並與基線比較,
反覆循環,直到知足性能要求。
1.創建基線:包括記錄性能基線和保留基線Mapping/Session。
2.發現瓶頸:
按照目標--》源--》Mapping--》Session/Workflow--》系統的順序分析性能瓶頸。
官方建議順序:目標--》源--》Mapping。
做者建議順序:目標--》Mapping--》源。
3.解決瓶頸:
目標寫瓶頸須要對目標調優;
源讀瓶頸須要對源調優。
症狀不等於緣由,症狀可能有多個因素。
目標數據庫寫入慢,可能的緣由有:
數據庫自身慢;
數據寫入多;
提交間隔過小;
沒有使用正確的寫入方法;
網絡問題等。
42.發現瓶頸
在Session Log中有關於性能的Thread Statistics信息(Busy Percentage)。
一個Mapping由3個線程執行,分別是Thread[Reader_*],Thread[Transf_*],Thread[Writer_*]。
Total Run time:工做時間,單位秒。
Total Idle time:空閒時間,單位秒。
Busy Percentage:忙時百分比 ,用於表示進程的繁忙程度。=(Total Run time - Total Idle time)/Total Run time*100
最繁忙的進程就是瓶頸點。
注意:Session Log能夠在M客戶端點「獲取會話日誌」打開,並能夠另存爲文本文件。
42.1 定位目標寫瓶頸及調優
隔離目標寫瓶頸的3中方法:
複製一個徹底相同的Session;
將數據庫寫修改成文件寫,用分隔符分隔文件,並將文件寫在本地磁盤或者高速存儲上;
在Target前增長一個Filter組件,將Filter條件設爲false。
修改後,若是性能明顯提高,那麼就能夠基本定位性能瓶頸在目標寫。
1.關係型數據庫目標寫
定位後優化方法包括:
使用Bulk Load,對SQL Server或Sybase ASE有效,對Oracle和DB2無效;
使用外部Loader,要求DB有Loader接口(Oracle、Sysbase IQ);
在Session的Pre-SQL屬性設置刪除或Dsiable索引、約束,在Post-SQL重建或Rebuild\enable索引、約束;
提高Checkpoint、Commit間隔,須要增長回滾區和Redo空間;
使用PowerCenter Partition提供並行寫能力;
優化目標數據庫。
2.文本文件目標寫
定位後優化方法包括:
儘可能減小寫的數據量;
使用PowerCenter Partition的並行寫能力,並儘可能不合並記錄,Merge選項選擇File List。
42.2 定位源讀瓶頸及調優
隔離源讀瓶頸的3中方法:
複製一個徹底相同的Session;
在SQ組件後增長一個Filter組件,將Filter條件設爲false,用於保證後續轉換和寫目標不會執行,只進行讀操做。
修改後,若是性能沒有明顯提高,那麼就能夠定位性能瓶頸在源讀。
1.關係型數據源讀優化方式
定位後優化方法包括:
優化查詢sql語句,查看sql執行計劃,使用索引來替代對大表的全表掃描;
使用PowerCenter Partition,來讀取數據庫(Oracle、DB2)的分區表;
使用IPC協議,若是是Oracle數據庫,且PowerCenter和數據庫在一臺服務器上,可使用IPC協議進行讀取;
使用專門的讀接口,如Terdata數據庫,使用Fastexport時性能優於ODBC。
2.文本數據源優化方式
定位後優化方法包括:
使用PowerCenter Partition並行讀;
調整Line Sequential Buffer,保證Line Sequential Buffer可以容納4~8行的數據。
在Session的屬性頁籤,Collect Performance data屬性,勾選後PowerCenter會自動收集詳細的性能數據(Performance Counter)。
在M客戶端日誌欄能夠看到Performance Counter(性能計數器),
並生成一個與Session Log同名,擴展名爲".perf"的性能統計文件,而且能夠由記事本打開,
內容爲:轉換名稱,計數器名稱,計數器值。
常見的計數器名稱包括:
Lookup_rowsinlookupcache:值比較高時,Lookup組件有性能問題;
<Transformation>_errorrows:值非零時,修改Transformation的計算錯誤;
BufferInput_efficiency和BufferOutput_efficiency:值比Sources、Targets高時,提升DTM buffer pool size;
<Transformation>_readfromdisk和<Transformation>_writetodisk:值非零時,提高Data Cache和Index Cache,
對應的Transformation可能爲Aggregator、Rank、Joiner組件之一。

42.3 定位Mapping/Session瓶頸
消除源讀和目標寫瓶頸後,須要定位Mapping/Session瓶頸。
複製Session,在每一個目標表前增長一個Filter組件,將Filter條件設爲false;
若是性能沒有明顯的提高,則能夠定位瓶頸在Mapping/Session。

42.4 定位系統瓶頸
I/O瓶頸:磁盤/存儲性能。
內存瓶頸:I/O Cache,數據庫內存分配,交換區Swap設置。
網絡瓶頸:網絡帶寬,分佈式存儲,分佈式計算。

43.Mapping調優
43.1 Transformation優化
1.優化Lookup組件
勾選「Lookup caching enabled」屬性(啓用緩存);
設置足夠大的cache(避免產生I/O交換);
輸出列儘量少(佔用內存少);
使用非鏈接的lookup(查詢次數少);
多個鏈接條件時優先使用等值比較;
使用lookup替換joiner;
共享lookup cache;
同一個mapping中多個相同的lookup,自動共享lookup cache;
多個session中使用了相同的mapping,勾選「Lookup cache persistent」屬性(啓用持久緩存);
多個mapping中使用了相同的lookup,勾選「Lookup cache persistent」屬性,併爲「Cache File Name Prefix」賦值。
定製Lookup Sql Override,減小被讀入的lookup中的數據。
2.優化Filter和Router組件
儘可能將Filter前置(減小後續組件處理的數據量);
在條件中不要使用複雜表達式;
若是數據不必傳遞到目標,可使用Filter和Router組件將其過濾掉;
使用Router能夠同時替換多個Filter。
3.優化Aggregator組件
使用簡單列做爲Group By 列;
使用Sorted Input選項(輸入的數據是有序的);
使用表達式組件和更新策略組件替代彙總組件(不經常使用,Mapping難懂);
使用「Incremental Aggregation(增量聚合)」屬性(W客戶端--》Session屬性--》Performance欄)。
4.優化Joiner組件
使用數據庫的Join語句完成表的鏈接;
Master要選擇小表;
勾選Sorted Input;
儘可能使用Normal Join類型。
5.優化Sequence Generator組件
修改「Number of Cached Values」的屬性值爲1000或更大。
默認爲0,即每行數據到達時查詢存儲庫生成一個Next值;
設置爲1000,即第1行數據到達時查詢存儲庫批量生成1000個Next值,後續行就不須要再查詢存儲庫了。
6.避免調用External Procedure組件
儘可能避免每行數據都去調用一次存儲過程,
儘可能將其作成一個批處理一次性執行,
或者儘可能減小調用次數。
43.2 列級別優化
1.析出通用邏輯
找出mapping中的通用邏輯,儘可能減小其計算的次數。
2.最小次數的函數調用
減小函數調用次數;
使用操做符||來替換函數Concat。
3.數值類型與字符串
數值類型的計算性能要優於字符串,
在作Joiner或Lookup關聯時,將關聯字段從字符串轉爲數值類型再關聯要優於直接使用字符串關聯。
4.Char和Varchar類型的數據比較
Char類型保留末尾空格;
Varchar類型不保留末尾空格;
Varchar類型優於Char類型。
5.減小Mapping中的轉換組件
每一個組件都會耗費資源,減小或合併組件有利於性能提高。
43.3 其餘方面的優化
1.單源讀Mapping/Session
若是多個Mapping使用相同的數據源,將以將這多個Mapping合併爲一個Mapping。
2.SQL Override優化
在SQ、Lookup、Target組件中可使用SQL Override,即用調優後的SQL覆蓋自動生成的SQL。
3.避免沒必要要的數據類型轉換
保持同一個端口在各組件內類型一致,避免沒必要要的數據類型轉換。
4.消除Transformation Error
保證流入的數據不會產生組件報錯,報錯信息將被寫入Session Log。

44.Session調優
調優順序:目標寫--》源讀--》Mapping--》Session
44.1 內存調優
設置DTM Buffer相關值;
設置轉換組件Cache值。
44.2 PowerCenter高級特性支持高性能
1.PownerCenter Partition(並行)
提供的Session級別的並行處理能力。
2.Pushdown優化
將Mapping功能部分或所有轉化數據庫、數據倉庫可運行的SQL,從而轉移ETL服務器負載到數據庫、數據倉庫服務器。
類型包括:Source Side Pushdown、Target Side Pushdown、Full Pushdown。
3.使用PownerCenter grid
提供了ETL服務器得平行擴展能力,即ETL集羣。
類型包括:Workflow on Grid、Session on Grid。
4.並行執行Workflow和Session
44.3 其餘手段
1.提高Traget Commit Interval
提升提交間隔(默認10000),即減小提交次數(提交操做比較耗費性能),
同時單個事務的數據量增長,須要增長數據庫的回滾段大小。
在W客戶端--》Session屬性--》General欄--》commit Interval(默認10000)設置。
2.Disable高精度
在W客戶端--》Session屬性--》Performance欄--》Enable high precesion不勾選。
3.下降Session的錯誤跟蹤級別(Error Tracking)
在W客戶端--》Session配置對象--》Error handling欄--》Override tracing(默認None)。
設置爲verbose initialization、verbose data性能將降低。

45.SQL Override調優
在SQ、Lookup、Target、轉換組件中均可以在SQL Override欄使用SQL語句,
SQL語句將被直接交給數據庫執行,SQL語句的性能對PowerCenter影響很大。

8、PowerCenter Troubleshooting
PowerCenter Troubleshooting即解決PowerCenter問題、錯誤的能力。
提高Troubleshooting能力的4種方法:
掌握PowerCenter原理;
知道日誌在哪兒,並查找日誌;
查詢Information Knowledge Base;
聯繫Informatica GCS(Global Customer Service)全球客戶服務中心。
51.安裝、啓動過程的錯誤
1.安裝過程:執行install.sh(Windows是install.exe)時,若是安裝過程當中失敗,
須要在安裝目錄下查看兩個日誌:Informatica_9.6.1_Services_InstallLog.log、Informatica_9.6.1_Services.log。
客戶端安裝日誌:Informatica_9.6.1_Client_InstallLog.log、Informatica_9.6.1_Client.log。
在日誌中找到相關錯誤提示,典型的問題包括:端口被佔用、數據庫沒法鏈接、錯誤的Java環境變量、JVM版本太低等。
2.啓動過程:啓動Informatica服務,須要運行Infaservice.sh startup命令(Windows是右鍵啓動服務),若是啓動過程發生錯誤,
須要查看$INFA_HOME/tomcat/logs下的日誌catalina.out、exceptions.log、node.log。
控制檯是基於Tomcat的一個應用。
3.存儲庫服務和集成服務啓動過程:存儲庫服務和集成服務啓動失敗,須要在控制檯上選擇Log頁籤,檢查相關的日誌。
存儲庫服務和集成服務是基於C語言的應用,錯誤可能和環境變量、數據庫版本等相關;
常見的錯誤有pmora*.dll或libpmora*.so沒法調用成功,可能的緣由以下:
PowerCenter安裝不成功,因此文件不全;
數據庫客戶端安裝不成功或者沒有安裝;
環境變量PATH(Windows平臺)或LD_LIBRARY_PATH/LIBPATH(Unix平臺)設置不正確;
PowerCenter是64位的,而安裝的數據庫客戶端是32位的等版本兼容問題;
命令ldd。
若是存儲庫服務啓動時遇到ORA-xxxxx的錯誤提示,請檢查數據庫(Oracle);
若是集成服務啓動時遇到「Code Page Mismatch. Service Process is running in code page[UTF-8...322874」錯誤,設置環境變量INFA_CODEPAGENAME來解決。

52.開發過程的錯誤
在Mapping、Workflow開發過程當中遇到的錯誤。
在D客戶端中:能夠查看Output窗口的日誌。
保存Mapping時,若是提示對象有效,能夠繼續後續工做;
若是提示對象無效,向上檢查詳細的錯誤提示,根據提示定位並解決問題。
在W客戶端中:能夠查看Output窗口的日誌。
處理Workflow中的相關錯誤有兩個常規操做:選中Session右鍵,刷新映射、驗證。

53.Session運行錯誤
session運行時發生錯誤,Log有3個位置:Session Log、Workflow Log、Integration Service Log。
1.Session Log:在M客戶端,選中運行的Session右鍵,點「獲取會話日誌」。
2.Workflow Log:在M客戶端,選中運行的Workflow右鍵,點「獲取工做流日誌」。
3.Integration Service Log:登錄工做臺(Admin Console),選擇Logs菜單,查看集成服務相關日誌。
若是根據提示仍沒法解決,可登陸網站(mysupport.informatica.com),查詢Informatica Knowledge Base知識庫來解決。
仍沒法解決時,及時聯繫Informatica GCS(Global Customer Service)。
Session經過pmdtm進程運行,該進程用C語言編寫。

54.源讀或目標寫的錯誤
源讀或目標寫的錯誤與PowerCenter和數據庫有關,錯誤信息通常會在Session Log中。
若是在Session Log看到ORA-xxxxx或DB2-xxxxx的錯誤信息,請檢查數據庫的鏈接、表和字段的定義、表中數據;
若是使用的是Loader接口,請在查看Session Log的同時檢查Loader自身的日誌;
若是是數據庫鎖引發的錯誤,須要檢查數據庫鎖,並解除鎖定;
若是使用ODBC做爲數據接口,須要檢查ODBC trace文件。

9、PowerCenter擴展能力
61.PowerExchange CDC(變化數據捕捉)
CDC(Change Data Capture)變化數據捕捉。
CDC的執行原理:經過讀取數據庫日誌從而得到數據庫表的增量數據。
PowerExchange CDC支持從各類數據庫和操做系統獲取數據增量,主要包括:Oracle、SQL Server、DB二、AS/400等。
61.1 PowerExchange CDC的3種模式
1.CDC Real-Time
定義:
CDC Real-Time經過CDC技術讀取數據庫日誌,從而得到數據庫的增量數據,
並對這些數據進行實時的計算或直接將這些數據寫到目標數據庫中。
特色:
可以獲取數據庫增量數據;
很是及時、甚至是準實時的數據同步,延時是秒級別的。
應用場景:
風險實時監控、數據實時分析、複製生產庫做爲查詢庫。
缺點:
由於是實時的,佔用數據庫資源比較多;
爲知足實時計算,在設計時從實時Session考慮(沒有從全庫或整個Schema考慮),
所以一個實時Session將產生一個讀取日誌的進程,
有多個實時Session時,就可能出現多個進程對日誌讀的搶奪,反而下降性能。
2.CDC Batch
在執行CDC前須要先進行註冊,註冊的對象是表,即告訴PowerExchange CDC從日誌中獲取哪些表的增量數據。
定義:
CDC Batch的讀日誌進程根據註冊的表不斷的讀取數據庫日誌中的增量數據,
但沒有實時的將數據向下遊傳送,而是保存在了臨時文件Condense File中,
當下遊系統須要數據時,PowerCenter會按照定時或按需索取的方式,
從Condense File中查看是否有新的增量數據產生。
特色:
限制讀取生產數據庫日誌的進程數量,下降對源系統的資源消耗。
應用場景:
對增量數據時效性要求不高的系統。
缺點:
時效性太差
3.CDC Continous
CDC Batch保證只有一個進程訪問數據庫日誌,下降了對數據庫資源的使用;
CDC Batch時效差的主要緣由是,只有當關閉Condense File時,才向下遊傳送數據,關閉文件須要知足時間、文件大小的限制;
CDC Continous對CDC Batch進行改進,在Condense File不關閉時也能夠向下遊傳送數據。

61.2 開放數據庫CDC基本原理
1.Oracle
針對Oracle數據庫的CDC實現採用的是Logminer API和Driect Read兩種方式。
Logminer API是Oracle提供的日誌管理接口,不須要在源數據庫上安裝任何插件,速度較慢;
Driect Read是直接讀取Oracle日誌的方式,加快了日誌讀取和解析的效率,須要在源數據庫安裝PowerExchange CDC。
2.UDB(db2)
針對DB2數據庫的CDC實現採用的是db2readlog API。

61.3 CDC常見的一些討論
1.佔用資源問題(3%,5%,10%)
資源充足時沒必要關注CDC佔用資源問題;
業務優先,CDC佔用資源問題次之。
2.斷點問題
PowerExchange CDC在PowerCenter端存放了Token文件,能夠做爲數據的斷點。
每條數據跟隨一個斷點信息。
3.字符集問題
首先關注數據庫字符集;
再關注操做系統字符集;
PowerExchange能夠進行強制字符集轉換(Datamap、dbmover.cfg)。

61.4 CDC Real-Time for Oracle安裝配置
在數據庫服務器上安裝CDC Server,在ETL服務器和ETL客戶端上安裝CDC客戶端。
PowerExchange CDC的安裝包不區分服務器和客戶端,但區分操做系統;
ETL客戶端只有32位Windows版,因此在ETL客戶端機器上只能安裝PowerExchange CDC 32位Windows版。
安裝前須要拿到PowerExchange CDC key,安裝過程當中一路點擊「Next」便可。
服務器端的配置過程分爲:Oracle數據庫配置、PowerExchange CDC配置。
1.Oracle數據庫配置
在Express模式下,數據庫配置腳本存放在$PWX_HOME/ora_orad.sql文件中。
內容包括(操做應由DBA執行):
啓動歸檔模式;
建立Oracle用戶併爲用戶受權;
添加Supplemental Log。
2.PowerExchange CDC配置
PowerExchange CDC配置分爲服務端配置和客戶端配置。
PowerExchange CDC服務端配置:
1)配置dbmover.cfg文件
參數ORACLE_CAPTURE_TYPE用於選擇Logminer模式(L),仍是Express模式(D);
參數CAPI_CONNECTION用於鏈接,Logminer模式(ORCL),Express模式(ORAD);
參數LOGPATH用於指定PowerExchange的日誌文件Detail.log的存放目錄;
參數ORACLEID用於指定Oracle數據庫的鏈接串;
2)配置參數文件pwxorad.cfg
3個段落後各有一個分號;
EPWD是加密密碼,經過dtlcrypx命令產生;
READER MODE=ACTIVE時能夠讀取redo log的內容,
READER MODE=ARCHIVEONLY時僅僅讀取Archive log中的內容。
3)配置環境變量
須要配置3個環境變量:PWX_HOME、PATH、LD_LIBRARY_PATH;
Oracle的相關環境變量也要添加到Profile中,以保證安裝PowerExchange的用戶可使用Oracle的Library和可執行文件,並能讀取Oracle中的數據。
4)啓動PowerExchange和驗證是否啓動成功
啓動PowerExchange使用命令dltlst node1;
驗證是否啓動成功使用命令dtlrexe prog=ping loc=node1;
PowerExchange CDC客戶端配置:
1)配置dbmover.cfg文件
修改參數NODE=(服務器在本地的別名,TCPIP,服務器IP地址,服務器端口號2480)
檢查是否能與服務器連通,使用命令dtlrexe prog=ping loc=node1

61.5 CDC定義註冊組和添加捕獲註冊
1.在Windows開始菜單--》PowerExchange Navigator客戶端--》選中「註冊組」,右鍵--》添加註冊組;
2.彈出「添加註冊組」窗口,名稱(輸入數據庫名)、位置(選擇節點)、類型(選擇數據庫類型)、用戶ID(輸入system數據庫用戶)、
密碼(輸入system用戶的密碼)、集合標識符(輸入dbmover.cfg文件ORACLEID參數的第一個屬性COLLNAM1),點下一步;
3.進入「添加捕獲註冊-名稱和表刷選」窗口,名稱(輸入表名)、架構(輸入數據庫用戶名或Schema名)、表(輸入表名),點下一步;
4.進入「添加捕獲註冊-表和列」窗口,選擇要跟蹤的列(選擇全部列),點下一步;
5.進入添加捕獲註冊-類型」窗口,類型(選擇同步)、狀態(選擇活動)、壓縮(選擇部分)、附件日誌組名稱(輸入scott_dept)、勾選「當即執行DLL」,點完成;
PowerExchange將在正在註冊的表上增長SUPPLEMENTAL LOG,
會自動執行相似語句"alter table scott.dept add SUPPLEMENTAL LOG group scott_dept(deptno,dname,loc) always;"
6.在PowerExchange Navigator的「資源瀏覽器」器中,看到新的註冊組、提取組、應用組都叫Orcl;
7.雙擊「提取組」的Orcl,進行CDC測試,在「數據庫行測試」窗口,數據庫類型(選擇CAPXRT)、位置(選擇node1)、用戶ID(system)、密碼(system的密碼)、提取(數據),點「執行」;
能夠檢查安裝、配置是否正確,有SQL語句輸出,則證實註冊成功。

61.6 CDC Mapping開發及運行
1.導入數據源
「源--》Import from PowerExchange」,填寫用戶名(oracapt1)、密碼,Source Type(選擇ORACLE)、勾選CDC Datamaps,點「Connect」按鈕,選擇表,點「OK」。
導入後的源表增長DTL_開頭的列。
2.建立目標表、Mapping與以前的用法相同
3.定義CDC數據源
W客戶端--》鏈接--》Application--》New--》PWX_Oracle_CDC_Real_Time,
Location輸入PowerCenter服務器端的dbmover.cfg文件中配置的節點名,
字符集選擇UTF-8 encoding of Unicode,
Image Type選擇有兩個選項AI和BA,指的是DML語句的操做結果,通常選擇AI。
AI(After Image):PowerCenter會返回Insert、Delete、Update執行結果的那條數據;
BA(Before and After Image):Insert、Delete與選擇AI時沒有區別,Update會返回更新前和更新後兩條數據。
4.Session
爲Session指定源和目標後便可執行。區別在於須要手工中止,不然一直運行,實時監控數據庫端數據的變化及進行更新。

62.PowerCenter與SAP
Informatica開發了針對SAP的接口R/三、BW。
62.1 R/三、mySAP、ECC
R/3接口可使PowerCenter經過ABAP、BCI、RFC/BAPI、IDOC和WebService與SAP雙向交換數據。
PowerCenter訪問SAP時,並不是直接訪問數據庫層,而是訪問SAP的應用層。
62.2 PowerCenter與BW
PowerCenter可使用Open Hub Destination或者Open Hub Service抽取SPA BW的數據。
能夠抽取的對象包括InfoCubes、DataStore Objects、InfoObjects和InfoSets。
Open Hub Service從各類BW數據對象中獲取數據,並將數據放入一張SAP透明表中,PowerCenter再從透明表中直接獲取數據。
SAP BW Service是建立在PowerCenter的控制檯上的一個服務,經過SAP External System實現與PowerCenter的通訊。
當PowerCenter抽取BW數據時,從外部觸發SAP的Process Chain,再由Open Hub Service抽取SAP內部數據到透明表,
SAP通知SAP BW Service已完成SAP內部處理任務,PowerCenter能夠從透明表抽取數據了。

63.PowerCenter與MPP數據庫
MPP(Massively Parallel Processing)主要用於數據倉庫中,數據分佈存儲在各個節點上,運算時將任務並行分散到多個服務器和節點上,
在每一個節點上計算完成後,將各自部分彙總在一塊兒獲得最終的結果。
MPP數據庫表明產品包括Greenplum、Teredata、Netezza等。
MPP分佈式數據庫讀取和加載速度快,
PowerCenter支持Teredata的全部接口,包括:
FastLoad:快速向Teredata表加載數據,但要求表必須是空表;
FastExport:快速從Teredata數據庫中讀取數據的批量接口;
TPump:支持流式數據處理,但性能略慢;
MultiLoad:支持對Teredata數據進行Insert、Update、Delete、Upsert等批量操做。
Teredata Parallel Transporter:是Teredata爲了簡化Load接口提供的一種新的接口方式。
Pushdown for MPP功能:能夠將mapping轉化爲MPP數據庫的SQL語句,充分利用MPP數據庫的分佈式計算能力,減小數據移動。

64.PowerCenter與Hadoop
Hadoop是一個由Apache基金會開發的分佈式系統基礎架構,能夠用來開發分佈式程序,利用集羣來運算和存儲。
Hadoop實現了一個分佈式文件系統(Hadoop Distributed File System)HDFS。
HDFS支持高容錯性,能夠在低廉的硬件上部署,高吞吐量來訪問數據,支持超大數據集應用程序。
Hadoop框架的核心是HDFS和MapReduce。
HDFS爲海量的數據提供了存儲能力;MapReduce爲海量的數據提供了計算能力。
PowerCenter對Hadoop提供了接口能力和PowerCenter on Hadoop。
64.1 接口能力
接口能力指PowerCenter訪問Hadoop及其生態的能力,主要支持HDFS、HIVE、HBase和Prvotal HD HAWQ。
1.建立以文本爲目標的mapping
2.在Workflow中建立Hadoop鏈接
「鏈接--》Application」,輸入鏈接名「Hadoop_HDFS_Connection」,類型選擇"Hadoop HDFS Connection",屬性包括:
HDFS Connection URI:通常爲hdfs://Namenode:Port
Hive Driver Name:Hive驅動名稱org.apache.hive.jdbc.HiveDriver
Hive URL: jdbc:hive2://Namenode:Port/<Database Name>
Hadoop Distribution:選擇Hadoop的發行版本
3.設置Session訪問Hadoop
Session--》映射--》目標文件--》"Writers=HDFS Flat FIle Writer","Connections=Hadoop_HDFS_Connection",
在屬性欄須要關注下列屬性:
Output File Path:HDFS文件路徑;
Reject File Path:PowerCenter服務器文件路徑;
Generate And Load Hive Table:生成Hive Table的必選項;
Overwrite Hive Table:Hive table已存在時能夠覆蓋;
Hive Table Name:Hive table名字。
Hive是HDFS的一種shell,即爲訪問HDFS提供了一種相似SQL的Shell腳本。
PowerCenter生成Hive Table的過程是:
首先將文件傳送到HDFS上,即將數據寫入指定的HDFS目錄中;
而後再將上一步目錄中的數據轉移到hive/warehouse/...目錄下;
最後爲此文件創建Hive Catalog。這時一個Hive table就建立完成了。
須要注意權限問題。
64.2 PowerCenter on Hadoop
PowerCenter on Hadoop是將mapping轉化爲MapReduce,而後經過Hadoop引擎執行MapReduce的過程。
即利用Hadoop集羣的計算能力,又簡化了MapReduce的開發,用以支持Hadoop平臺的ETL程序開發。
PowerCenter將Mapping先轉化爲HQL(Hive SQL),再由Hive將HQL轉化爲MapReduce,最後由Hadoop引擎執行MapReduce。

65.元數據管理與業務術語管理
元數據定義:用於描述數據、內容、業務流程、服務、業務規則及組織信息系統的支持政策或爲其提供上下文的信息。
元數據是關於數據的數據。
元數據分類:技術元數據、業務元數據、操做元數據。
技術元數據:提供有關數據的技術信息;
業務元數據:提供數據的業務背景;
操做元數據:提供關於數據使用方面的信息。
元數據的內涵是比較明確的,可是元數據的外延是無限擴展的。
使用Informatica元數據管理,須要在控制檯中建立Metadata Manager Service。
Informatica元數據管理功能包括:元數據的血緣分析、元數據影響分析、業務數據管理等。
65.1 元數據的血緣分析
Metadata Manager提供了元數據的血緣分析功能,提供數據流過數據集成環境時的直觀視圖。
Metadata Manager從企業應用程序、數據庫、平面文件、PowerCenter、數據建模工具及BI工具中採集元數據,並將採集到的元數據進行關係,以直觀的方式進行展示。
血緣分析的經常使用功能包括:支持全局數據視圖、解決數據質量問題、審計與合規性。
65.2 元數據影響分析
在變動字段類型、修改指標算法前對相關影響進行分析的工具。
65.3 業務數據管理
Business Glossary爲定義和管理業務術語、溝通參考數據、連接、臨時記錄及備註的生命週期提供了集中管理點。

66.B2B data transformation B2B data transformation支持結構化、非結構化和半結構化數據類型的轉化,同時支持多個行業的數據標準。 非結構化:無適合的元數據對其進行全面描述,如PDF文件、Word文檔等。 半結構化:可利用部分元數據對其進行描述,如EDI、COBAL衍生數據等。 結構化:可利用元數據明肯定義,如XML標準、數據庫表等。 B2B data transformation支持對非結構化和半結構化的文檔進行轉換、清洗,並整理爲XML,交由PowerCenter讀取XML併入庫爲結構化數據。 B2B data transformation內置大量的行業標準,包括: 跨行業:UN/EDIFACT、XBRL、RosettaNet、COBAL 醫療行業:HL七、HIPAA、NCPDP 金融行業:BAI、SWIFT、UNIFI、NACHA、SEPA、FIX、FIXML、FpML、Telekurs VDF、TWIST、ACORD、DTCC、OAGIS XML

相關文章
相關標籤/搜索