Informatica PowerCenter 開發規範
一、 資料庫管理
在資料庫的管理過程中,由於各種原因,需要重起資料庫服務時,需要通知各位相關人員並在重起時同時重 起Informatica服務。
Folder的建立,由管理員根據業務需求建立,並對其進行授權。建立與使用者同名檔案夾,
並設定該檔案夾的Owner為該使用者,且設定其它使用者及組只有讀許可權。( 2)
圖 2
二、設計規範
1、Source匯入
關聯式資料庫:採用ODBC方式讀入中繼資料,且中繼資料置放位置與ODBC命名有關,本地ODBC命名需與伺服器 相同。對於各使用者,ODBC命名採用:使用者名稱_SOURCE(例:MM_SOURCE)。ODBC須採用與伺服器相同的版本。Oracle 用戶端也須與伺服器採用相同版本。
文字檔:採用Flat檔案匯入方式,Flat檔案的規範為,第一行為各欄位名,第二行開始為資料,各資料 間的分隔字元為TAB鍵。一個通常的做法為,在Excel表格中填入所有資料,直接拷貝至文本中,此時分隔字元自動 為TAB鍵。文字檔的伺服器位置,在伺服器上分別建立各模組檔案夾,各文字檔按模組放置於相應的檔案夾 內。文字檔命名為目標表名。
2、Target匯入
Target匯入存在同樣的三種方式:關聯式資料庫、文字檔、XML檔案。
Target的中繼資料管理與Source方式有所不同,其統一放置於Targets下,與本
地ODBC命名無關,需要匯入的目標表名唯一。
3、 Mapping建立
1、Normal Create 方式
命名為:m_表名(例:m_MM_PLAN)
2、Slowly Changing Dimensions方式
緩慢變化維方式是的資料載入模式,可以實現表的全曆史紀錄記錄及源表的資料變化後的主鍵更新方式。開 發中由於實際表需求與資料載入的對接,需要在各種轉換後加一個運算式模組(EXP_TARGET),其欄位內容 同Target 表,在緩慢變化維前加一個運算式模組(EXP_SOURCE),其欄位內容也同Target表,這兩個運算式作為 最終的業務 需求轉換與資料載入的介面。( 3)
在Mapping設計中,使用的各個轉換模組,其命名為模組類型名的前三個字母加操作名,尋找模組為LKP_ 表名。(例:EXP_CAL、LKP_HRM_DEPT)
圖 3
一些各個模組需要注意的設定:
(1)、模組中盡量不要有多餘的欄位,沒有向下流出的欄位盡量刪除。
(2)、只屬於Input型的欄位,應去除其O選項;同樣只屬於Output型的欄位,去除其I選項。
(3)、模組中出現需計算的數值欄位,其輸入預設值設為0(Default Value)。這些欄位類型大
小統一改為Decimal (20 6),由於計算的精度不同會造成數值得高精度誤差,故統一計
算精度大小,可以避免該錯誤發生。
(4)、使用者在模組中手動添加的欄位,Input型的欄位,添加首碼INPUT_,Output型的欄位添加首碼OUTPUT_。
(5)、SEQ模組在作為公用模組時,即Make Reusable時,設定其Number of Cached Values為1。
(6)、匯總模組的資料輸入最好在之前放一個排序模組對資料進行先排序,並選中匯總模組的Sorted Input 選項。
(7)、由於建緩慢變化維產生的Temp表,應在完成後及時刪除。
4、Mapplet建立
命名為:ml_操作(例:ml_CAL_ASS)
5、Session建立
命名為:s_m_mapping名(例:s_m_MM_PLAN)
如果Mapping中存在數值計算,則需要在其Session的屬性頁面選中Enable high precision(允許高精度計 算)。
6、 WorkLet建立
命名為:wl_業務名(例:wl_MM_PLAN)
應盡量把業務相關的幾個Session建為一個Worklet,統一調度。
7、WorkFlow建立
命名為:wf_業務(例:wf_MM_CODE01、wf_MM_OLTP01)
Scheduler命名為Scheduler_模組名_英文(例:Scheduler_MM_WEEK)
WorkFlow中應盡量少的出現直接的Session,把一些相關性的Session統一作為Worklet,在WorkFlow中調用。
三、 環境發布
在進行發布時,匯入的資訊,當設計到覆蓋時,需要注意:
(1)、Mapping改動後,可以直接覆蓋,當需要檢查引用到它的Session是否失效,如果失效,應進行Validate。
(2)、Mapping覆蓋時,注意其中包括的Seq值,不能覆蓋目標。
(3)、公用模組、Source、Target的匯入,將會影響到引用到它們的所有對象(將會造成大部分對象失效),所 以需要特別謹慎,如果確認需要匯入,則在匯入後,需要進入系統,找出所有失效對象,進行Validate。
(4)、一般不需要覆蓋的對象,在匯入時選擇Reuse。
(5)、新發布的Mapping,需要將其Seq的初始值改為1。