溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

INFORMATICA 開(kāi)發(fā)規(guī)范有哪些

發(fā)布時(shí)間:2021-06-24 15:09:39 來(lái)源:億速云 閱讀:158 作者:Leah 欄目:關(guān)系型數(shù)據(jù)庫(kù)

INFORMATICA 開(kāi)發(fā)規(guī)范有哪些,相信很多沒(méi)有經(jīng)驗(yàn)的人對(duì)此束手無(wú)策,為此本文總結(jié)了問(wèn)題出現(xiàn)的原因和解決方法,通過(guò)這篇文章希望你能解決這個(gè)問(wèn)題。

  ETL研發(fā)運(yùn)維責(zé)任人界定

   1)資科內(nèi)部業(yè)務(wù)數(shù)據(jù)流轉(zhuǎn),采取使用方研發(fā)原則,即誰(shuí)取用數(shù)據(jù),誰(shuí)負(fù)責(zé)ETL版本研發(fā)。目標(biāo)系統(tǒng)運(yùn)維人員進(jìn)行運(yùn)維。

   2)對(duì)于業(yè)務(wù)用戶(hù)的獨(dú)立管理系統(tǒng),沒(méi)有專(zhuān)門(mén)研發(fā),由取數(shù)源端研發(fā)負(fù)責(zé)informatica 版本研發(fā)推送數(shù)據(jù)。源端系統(tǒng)對(duì)應(yīng)運(yùn)維人員負(fù)責(zé)對(duì)應(yīng)workflow運(yùn)維。

3   ETL 研發(fā)數(shù)據(jù)庫(kù)操作約束條件

1)對(duì)于增量同步表,需要源表和目標(biāo)表存在主鍵。

2)增量字段上,需要有索引

3)增量字段 (如時(shí)間條件,必須嚴(yán)格順序進(jìn)入數(shù)據(jù)庫(kù),或者增量同步完成后,嚴(yán)格保證增量同步的取數(shù)范圍后續(xù)不會(huì)有數(shù)據(jù)進(jìn)入)

同步場(chǎng)景

同步要求

同步類(lèi)型

源表和目標(biāo)表是否存在主鍵或者唯一鍵

增量字段上是否有索引(源表和目標(biāo)表)

update 同步

delte同步

有標(biāo)識(shí)字段增量

存在pk或者索引

需要存在索引

需要存在updatetime字段,并使用update字段PK 進(jìn)行update 更新同步。

需要將刪除數(shù)據(jù)寫(xiě)入臨時(shí)表,etl同時(shí)同步臨時(shí)表后將目標(biāo)庫(kù)對(duì)應(yīng)數(shù)據(jù)刪除,源端也需要進(jìn)行定期清理臨時(shí)表

源表全量讀取同步

不存在約束或者索引

N/A

N/A

N/A

源表全量讀取同步

存在pk或者索引

N/A

N/A

N/A

4   定義

序號(hào)

術(shù)語(yǔ)或縮略語(yǔ)

說(shuō)明性定義

1

ETL

Extraction-Transformation-Loading,數(shù)據(jù)加載

2

Source

3

Target

目標(biāo)

4

Transformation

組件

5

Mapping

數(shù)據(jù)映射

6

Mapplet

數(shù)據(jù)映射集,可復(fù)用的Transformation組合

7

Session

執(zhí)行任務(wù)

8

Worklet

數(shù)據(jù)工作集

9

Workflow

數(shù)據(jù)工作流

10

Schedule

調(diào)度頻率

11

Parameter

參數(shù)




12

ETLUser

用與ETL數(shù)據(jù)同步的數(shù)據(jù)庫(kù)用戶(hù)

13

ProductDatabaseSID

生產(chǎn)系統(tǒng)數(shù)據(jù)庫(kù)SID




5   范圍

本文檔讀者包括:

l  項(xiàng)目經(jīng)理;

l  系統(tǒng)管理員;

l  DBA管理員;

l  開(kāi)發(fā)人員;

l  測(cè)試人員;

l  運(yùn)維人員;

本項(xiàng)目需要使用到的技術(shù):

l  ETL數(shù)據(jù)整合及轉(zhuǎn)換:Informatica;

l  操作系統(tǒng):Linux、Windows

l  數(shù)據(jù)庫(kù):Oracle、Mysql、DB2、MS SQLServer等

6   系統(tǒng)通用屬性


Service Variable

Description

1

$PMRootDir

Infa_share根目錄

<Installation_Directory>\server\infa_shared

2

$PMSessionLogDir

Session 運(yùn)行日志目錄

$PMRootDir/SessLogs.

3

$PMBadFileDir

Reject files拒絕文件目錄

$PMRootDir/BadFiles.

4

$PMCacheDir

Temporary cache files

$PMRootDir/Cache

5

$PMTargetFileDir

Target files 目標(biāo)文件生成目錄

$PMRootDir/TgtFiles

6

$PMSourceFileDir

Source files 平面文件源文件目錄

$PMRootDir/SrcFiles

9

$PMWorkflowLogDir

Workflow logs workflow執(zhí)行日志目錄

$PMRootDir/WorkflowLogs.

10

$PMLookupFileDir

Lookup files lookup生成的cache目錄

$PMRootDir/LkpFiles.

11

$PMTempDir

臨時(shí)文件目錄

$PMRootDir/Temp

12

$PMStorageDir

HA時(shí),記錄workflow的運(yùn)行狀態(tài)

$PMRootDir/Storage.

7   命名規(guī)則

7.1 通用規(guī)則

以下元素,數(shù)據(jù)庫(kù)表,字段名稱(chēng),函數(shù)名稱(chēng),函數(shù)表達(dá)式,SQL語(yǔ)句均采用大寫(xiě)字母。

7.2 Connection 數(shù)據(jù)源連接

7.2.1        Connection 數(shù)據(jù)連接命名

數(shù)據(jù)鏈接分為源數(shù)據(jù)庫(kù)鏈接與目標(biāo)數(shù)據(jù)庫(kù)鏈接,ETL的E(抽?。┡cL(加載)的鏈接。

     數(shù)據(jù)庫(kù)鏈接方式分為Native、ODBC兩種方式:

1)Native是采用相應(yīng)數(shù)據(jù)的客戶(hù)端連接來(lái)抽取、加載數(shù)據(jù),比如oracle、DB2等;

2)ODBC是采用DataDirect ODBC的方式連接數(shù)據(jù)庫(kù),比如mysql、MSSQL。

數(shù)據(jù)連接的命名采用:DataBaseType_ProductDatabaseSID_ETLUSER。

說(shuō)明:DataBaseType為數(shù)據(jù)源類(lèi)型,ProductDatabaseSID生產(chǎn)數(shù)據(jù)庫(kù)的SID,ETLUser為用與ETL數(shù)據(jù)同步的用戶(hù)。

例如: Ora_ASURE_BILETL,連接方式為Native方式,Ora表示數(shù)據(jù)類(lèi)型為Oracle,ASURE為阿修羅生產(chǎn)數(shù)據(jù)庫(kù)SID,BILETL為ETL的操作用戶(hù)。

例如:ODBC_ Mysql_ASURE_BILETL,ODBC表示采用ODBC的方式連接。Mysql為數(shù)據(jù)庫(kù)類(lèi)型,ASURE為阿修羅系統(tǒng),BILETL為ETL操作用戶(hù)。

7.2.2        數(shù)據(jù)庫(kù)類(lèi)型對(duì)應(yīng)縮寫(xiě)

表5-1 數(shù)據(jù)庫(kù)類(lèi)型縮寫(xiě)

序號(hào)

數(shù)據(jù)源類(lèi)型

縮寫(xiě)

1

Oracle

Ora_

2

DB2

DB2_

3

Mysql

Mysql_

4

Microsoft SQL Server

MSSQL_

5

Sybase

Sybase_

6

Greenplum

GP_

7

Teradata

TD_

8

ODBC

ODBC_DataType_




7.2.3        生產(chǎn)數(shù)據(jù)庫(kù)的SID    

表5-2 數(shù)據(jù)庫(kù)信息表

序號(hào)

數(shù)據(jù)庫(kù)中文名

數(shù)據(jù)庫(kù)SID

備注

1

阿修羅系統(tǒng)

ASURE


2

新車(chē)輛管理系統(tǒng)

VMS


3

短信系統(tǒng)

SMSDB


4




7.3 組件命名 

表5-3 常用組件命名前綴

序號(hào)

組件名稱(chēng)

圖標(biāo)

命名規(guī)范

含義

1

Source Qualifier

 INFORMATICA 開(kāi)發(fā)規(guī)范有哪些

 

 

sq_

從數(shù)據(jù)源讀取數(shù)據(jù)

2

Expression

 INFORMATICA 開(kāi)發(fā)規(guī)范有哪些

 

exp_desc

行級(jí)轉(zhuǎn)換

3

Filter

 INFORMATICA 開(kāi)發(fā)規(guī)范有哪些

 

fil_

數(shù)據(jù)過(guò)濾

4

Sorter

 INFORMATICA 開(kāi)發(fā)規(guī)范有哪些

 

sort_

數(shù)據(jù)排序

5

Aggregator

 INFORMATICA 開(kāi)發(fā)規(guī)范有哪些

 

agg_

聚合

6

Joiner

 INFORMATICA 開(kāi)發(fā)規(guī)范有哪些

 

jnr_

異構(gòu)數(shù)據(jù)關(guān)接連接

7

Lookup

 INFORMATICA 開(kāi)發(fā)規(guī)范有哪些

 

lkp_

查詢(xún)連接

8

Update Strategy

 INFORMATICA 開(kāi)發(fā)規(guī)范有哪些

 

ust_

對(duì)目標(biāo)編輯 insert, update, delete, reject

9

Router

 INFORMATICA 開(kāi)發(fā)規(guī)范有哪些

 

rot_

條件分發(fā)

10

Sequence Generator

 INFORMATICA 開(kāi)發(fā)規(guī)范有哪些

 

sqg_

序列號(hào)生成器

11

Normalizer

 INFORMATICA 開(kāi)發(fā)規(guī)范有哪些

 

nrm_

記錄規(guī)范化

12

Rank

 INFORMATICA 開(kāi)發(fā)規(guī)范有哪些

 

rnk_

對(duì)記錄進(jìn)行TOPx

13

Union

 INFORMATICA 開(kāi)發(fā)規(guī)范有哪些

 

uni_

數(shù)據(jù)合并

14

Transaction Control

 INFORMATICA 開(kāi)發(fā)規(guī)范有哪些

 

tc_

對(duì)裝載數(shù)據(jù)按條件進(jìn)行事務(wù)控制

15

Stored Procedure

 INFORMATICA 開(kāi)發(fā)規(guī)范有哪些

 

sp_

存儲(chǔ)過(guò)程組件

16

Custom

 INFORMATICA 開(kāi)發(fā)規(guī)范有哪些

 

cus_

用戶(hù)自定義組件

17

HTTP

 INFORMATICA 開(kāi)發(fā)規(guī)范有哪些

 

http_

WWW組件

18

Java

 INFORMATICA 開(kāi)發(fā)規(guī)范有哪些

 

java_

Java自編程組件

7.4  Folder/mapplet/Mapping/Session/Workflow/Schedule命名

表5-4 Folder/mapplet/Mapping/Session/Workflow命名規(guī)范

情形

名稱(chēng)

例如

FOLDER

公用文件夾

000_Shared


文件夾

ProductDatabaseSID_OWNER

SFOSS_ EXP5(sfoss是生產(chǎn)阿修羅數(shù)據(jù)庫(kù)sid, exp5是我們要操作的表owner)

MAPPLET


MPL_Business Name

MPL_LRNull

MAPPING



單源單目標(biāo)

M_Target Table Name

M_TT_WAYBILL

多源單目標(biāo)

M_Target Table Name

M_TT_WAYBILL

單源多目標(biāo)

M_1ToN_Function description

M_1ToN__Broadcost

多源多目標(biāo)

M_NToN_Function description

M_NToN_Gather

SESSION

可復(fù)用post_S_

post_S_ mapping name

post_S_M_STGOMS_ORDERS

可復(fù)用pre_S_

pre_S_ mapping name

pre_S_M_STGOMS_ORDERS

單mapping單session

S_mapping name

S_M_STGOMS_ORDERS

單mapping多session

S_mapping name_區(qū)域/子系統(tǒng)

S_M_STGOMS_ORDERS_BJ

S_M_STGOMS_ORDERS_GX

(BJ代表北京,GX體表廣西)

WORKFLOW

單mapping單session

WF_mapping name

WF_STGOMS_ORDERS

單mapping多session

WF_mapping name

WF_STGOMS_ORDERS

多mapping多session

WF_function description

WF_UpdateUsersAndGroups

Schedule

SCHDL_運(yùn)行間隔_(運(yùn)行時(shí)間)_(截止時(shí)間)

每5分鐘運(yùn)行一次,2014年5月6號(hào)過(guò)期

SCHDL_5MIN_Stop20140506


每5分鐘運(yùn)行一次,永不過(guò)期

SCHDL_5MIN_FOREVER


每天21:30運(yùn)行,永不過(guò)期

SCHDL_1Day_AT2130_FOREVER


每月4號(hào)21:30運(yùn)行,永不過(guò)期

SCHDL_1MON_4THAT2130__FOREVER





8      創(chuàng)建Connection連接

創(chuàng)建Connection由Informatica管理員完成,但在開(kāi)發(fā)環(huán)境和測(cè)試中開(kāi)發(fā)人員有修改Connection屬性的權(quán)限。

以創(chuàng)建Oracle Connection“Ora_ASURE_SFMAP”為例進(jìn)行說(shuō)明

  1. 登陸到Informatica 服務(wù)器,查看對(duì)應(yīng)的SID“ASURE”是否已經(jīng)添加到tnsname.ora文件中,否則在tnsname.ora中添加

  2. 登陸到Workflow ManageràConnection(連接)àRelationalàSelect Type = “Oracle”àNew…(按鈕)

 INFORMATICA 開(kāi)發(fā)規(guī)范有哪些

8?1 創(chuàng)建Connection

  1. 修改Connection連接的權(quán)限,登陸到Workflow ManageràConnection(連接)àRelationalàObjects:選擇需要修改的Connection連接àPermission…(按鈕)à修改屬主。給Others組執(zhí)行的權(quán)限。

 INFORMATICA 開(kāi)發(fā)規(guī)范有哪些

8?2 修改Connection屬主

9   創(chuàng)建文件夾

在創(chuàng)建文件夾前,需要在目標(biāo)數(shù)據(jù)創(chuàng)建用戶(hù)ETLMGR,腳本在文件夾“ETLMGR”中,請(qǐng)按照順序執(zhí)行

9.1 創(chuàng)建文件夾

  1. 登陸Repository Manager 參考第5章的命名規(guī)則創(chuàng)建文件夾

操作:FolderàCreateà在彈出的對(duì)話(huà)框中輸入文件夾名稱(chēng)

          不關(guān)閉對(duì)話(huà)框進(jìn)入下一步

  1. 選擇新建文件夾的屬主

 INFORMATICA 開(kāi)發(fā)規(guī)范有哪些

9?1 選擇文件夾屬主

9.2 復(fù)制共享對(duì)象

此部分操作由開(kāi)發(fā)從員完成

  1. 登陸Repository Manager將文件夾“000_Shared”下的Mapping“M_GetParam”、 “M_getSessionRunStatus”拖拽到新建的文件夾中,并在彈出的創(chuàng)建快捷鏈接對(duì)話(huà)框選擇“全部確定”。

 INFORMATICA 開(kāi)發(fā)規(guī)范有哪些

9?2 創(chuàng)建共享Mapping快捷鏈接

  1. 登陸Workflow Manager打開(kāi)新建的文件夾,將文件夾“000_Shared”下的Session “pre_S”、“post_S”拖拽到新建的文件夾中,并在彈出的復(fù)制對(duì)話(huà)框選擇“確定”,

 INFORMATICA 開(kāi)發(fā)規(guī)范有哪些

9?3 復(fù)制共享Session

然后處理Mapping沖突,為找不到的Mapping重新選擇對(duì)應(yīng)的快捷方式

 INFORMATICA 開(kāi)發(fā)規(guī)范有哪些

9?4 Mapping沖突處理

沖突處理完接提示選擇下一步并確認(rèn),完成這一步驟的操作

  1. 登陸到Workflow Manager打開(kāi)新建的文件夾,編輯“post_S”、“pre_S”源和目標(biāo)的Connection(連接)

 INFORMATICA 開(kāi)發(fā)規(guī)范有哪些

9?5編輯“post_S”

      INFORMATICA 開(kāi)發(fā)規(guī)范有哪些

9?6 編輯“pre_S”

10  Mapping設(shè)計(jì)

注意1:在進(jìn)行Mapping之前,需要在目標(biāo)表數(shù)據(jù)庫(kù)的ETLMGR.ETL_INCR_PARAM中插入對(duì)應(yīng)目標(biāo)表相關(guān)的信息,具體內(nèi)容可能過(guò)查詢(xún)ETLMGR.ETL_DICT獲得幫助

注意2:ETLMGR.ETL_INCR_PARAM.TIME_BEFORE_NOW(增量結(jié)束時(shí)間與當(dāng)前時(shí)間的時(shí)間差,以秒為單位)的值建議不小于300,以避免一些來(lái)不及commit的數(shù)據(jù)會(huì)丟失。

登陸到Designer,本章所述的所有操作均在Designer客戶(hù)端。

10.1  導(dǎo)入源和目標(biāo)的表結(jié)構(gòu)

導(dǎo)入源表結(jié)構(gòu)

創(chuàng)建源表的ODBC連接

EnableNcharSupport: 默認(rèn)是不打勾的,不打勾的情況下導(dǎo)入char,varchar,varchar2會(huì)變成nchar,nvarchar,nvarchar2

ODBC連接只是作為導(dǎo)入源表和目標(biāo)表的結(jié)構(gòu)的媒介,不會(huì)進(jìn)行實(shí)際數(shù)據(jù)的處理,實(shí)際數(shù)據(jù)的處理由服務(wù)端Connection完成

 INFORMATICA 開(kāi)發(fā)規(guī)范有哪些

從ODBC連接中導(dǎo)入源表的結(jié)構(gòu)

 INFORMATICA 開(kāi)發(fā)規(guī)范有哪些

導(dǎo)入目標(biāo)表結(jié)構(gòu)

導(dǎo)入目標(biāo)表結(jié)構(gòu)與導(dǎo)入源表結(jié)構(gòu)相似,但是要先切換到目標(biāo)表的編輯窗口

 INFORMATICA 開(kāi)發(fā)規(guī)范有哪些

10.2  Mapping設(shè)計(jì)

開(kāi)發(fā)時(shí)注意查看客戶(hù)端左上方的Folder顯示,一定要在正確的Folder里面工作。

INFORMATICA 開(kāi)發(fā)規(guī)范有哪些

  1. 創(chuàng)建Mapping

展開(kāi)文件夾“000_Sample”,找到Mapping“M_for_copy”并將其拖拽到目標(biāo)文件夾,在彈出的對(duì)話(huà)框中選擇“Yes”

  1. 根據(jù)第五章的命名規(guī)范重命名“M_for_copy”并添加注釋

操作:菜單MappingàEdit

Comment(注釋) 內(nèi)容填寫(xiě)如下:

Create date: 日期

Create by:   用戶(hù)名(現(xiàn)實(shí)中文名)

        Desc: decription 例:用戶(hù)信息交換

        [

         Modify Date:

         Modify by: 用戶(hù)

Desc: decription 例:過(guò)期用戶(hù)信息不再交換

]

  1. 所有的Mapping都添加四個(gè)參數(shù)(Parameter),

操作:在復(fù)制Mapping的過(guò)程中已經(jīng)創(chuàng)建

  • $$INCR_START_DT STRING(20)    DEFAULT: 1900-01-01 00:00:00  à增量起始時(shí)間(表示增量區(qū)間的起點(diǎn))

  • $$INCR_END_DT   STRING(20)    DEFAULT: 2900-01-01 00:00:00 à增量截至?xí)r間(表示增量區(qū)間的終點(diǎn))

  • $$INCR_START_ID DECIMAL(19,0) DEFAULT: 0                   à增量起始主鍵值

  • $$INCR_END_ID   DECIMAL(19,0) DEFAULT: 9999999999999999999 à增量截至主鍵值

  1. Mapping具體設(shè)計(jì)參考文檔《Informatica覺(jué)見(jiàn)場(chǎng)景設(shè)計(jì)》

l   在組件中創(chuàng)建變量時(shí),注意選擇數(shù)據(jù)類(lèi)型,選擇長(zhǎng)度,在給變量賦值或?qū)⒆兞抠x值給字段時(shí)要保持?jǐn)?shù)據(jù)類(lèi)型一致,不一致時(shí)要使用顯式類(lèi)型轉(zhuǎn)換。

l   在做字符處理時(shí),注意NULL,空字符串和空格的區(qū)別以及不同的判讀和處理方式

l   不需要輸出的端口不勾選OutputPort。當(dāng)組件中有重名的字段時(shí),輸入的字段在原字段后加'_IN',變量的字段在原字段后加'_V',輸出字段名盡量保持和下一個(gè)組件的輸入字段名名稱(chēng)一致,以便使用按名稱(chēng)自動(dòng)連接

l   數(shù)據(jù)加載方式:全量,增量

  • 全量: Truncate & Insert

  • 基于時(shí)間的增量(具體實(shí)現(xiàn)方案參考Informatica常見(jiàn)場(chǎng)景設(shè)計(jì))

  • 基于主鍵的增量(具體實(shí)現(xiàn)方案參考Informatica常見(jiàn)場(chǎng)景設(shè)計(jì))

  • 對(duì)于所有的Mapping要求盡量使用增量(增量區(qū)間可優(yōu)先按時(shí)間確定,沒(méi)有時(shí)間戳?xí)r按主鍵確定)

  • 對(duì)于數(shù)據(jù)源表確實(shí)無(wú)法提供增量時(shí)間或主鍵的則全量抽取。全量抽取只適用于只適用于數(shù)據(jù)量小的表,如果數(shù)據(jù)表的數(shù)據(jù)量特別大,則需要跟需求方重新確定需求。

10.3  常用組件設(shè)計(jì)說(shuō)明

l   Source Qualifier 組件使用:

  • 對(duì)于源系統(tǒng)使用nvarchar2,導(dǎo)入時(shí)確保在mapping中使用nstring與之匹配,這樣才能確保字符傳遞的正確性,否則會(huì)出現(xiàn)亂碼,字符被截?cái)嗟葐?wèn)題

  • 如果Mapping中存儲(chǔ)存在兩個(gè)及以上的Source表,同時(shí)他們來(lái)自相同的源系統(tǒng),盡量使用Source Qualifier 進(jìn)行關(guān)聯(lián),并在Source Qualifier中添加關(guān)聯(lián)條件,而不是用Joiner控件

  • 在Source Qualifier中添加增量條件: 

時(shí)間戳字段>= TO_DATE($$INCR_START_DT,’YYYYMMDD HH24:MI:SS’) And

時(shí)間戳字段 < TO_DATE($$INCR_END_DT,’YYYYMMDD HH24:MI:SS’) (注意這里是小于,而不是小于等于)  或

主鍵字段> TO_DATE($$INCR_START_ID,’YYYYMMDD HH24:MI:SS’) And

主鍵字段 <= TO_DATE($$INCR_END_ID,’YYYYMMDD HH24:MI:SS’) (注意這里是大于,而不是大于等于)

l   Joiner 組件使用:

  • 對(duì)于大表(大于500000行)的連接查詢(xún)一定要使用Joiner

  • 使用Joiner控件時(shí),要以小表為master表,同時(shí)要對(duì)兩組數(shù)據(jù)進(jìn)行排序,根據(jù)Joiner的字段進(jìn)行排序,排序一定要使用同一個(gè)方式:升序或降序。此時(shí)控件中的Sorted input要打勾

l   Lookup 組件使用:

  • 盡量使用有連接的Lookup,降低性能風(fēng)險(xiǎn)

  • Lookup中如果內(nèi)部有SQL,保證SQL的字段順序和Port的字段順序一致

  • 如果是無(wú)連接的Lookup,對(duì)于組件的命名采用LKP_返回的字段名稱(chēng);如果是有連接的Lookup,如果是返回一個(gè)值,那組件的命名采用LKP_返回的字段名稱(chēng),如果是多個(gè)值,那組件的命名采用LKP_被查詢(xún)表名稱(chēng)

  • 對(duì)于小表(小于500000行)的連接查詢(xún)使用Lookup控件

  • 對(duì)于Lookup維表查找維度ID時(shí),需要在輸出字段添加default value = -1,如下圖:

 INFORMATICA 開(kāi)發(fā)規(guī)范有哪些

  • Lookup控件的使用有三種方式,同時(shí)注意幾點(diǎn)

1: Connect

   對(duì)于mapping中對(duì)某個(gè)表只查詢(xún)一次的盡量使用Connect Lookup,在使用Connect lookup的時(shí)候?qū)τ跊](méi)有用到的Column可以刪除掉,防止浪費(fèi)Cache空間,一定要使用Cache --Lookup Caching Enabled

2: Unconnect

對(duì)于mapping中對(duì)某個(gè)表查詢(xún)多次的盡量使用Unconnect Lookup,對(duì)于沒(méi)有用到的

字段可以進(jìn)行刪除,防止浪費(fèi)Cache空間

3: Lookup函數(shù)

對(duì)于mapping中的Expression中進(jìn)行查詢(xún)的盡量使用Lookup函數(shù)

4:Lookup表最好從Targets中獲取,也可以從Sources中獲取

5:Lookup函數(shù)不能在mapplet中使用

         6:Lookup 使用中的條件允許 Null = Null

l    Update Strategy組件使用:

  • 要求目標(biāo)表有主鍵索引

  • 將SESSION 的屬性設(shè)置為UPDATE ELSE INSERT。會(huì)導(dǎo)致SESSION 的運(yùn)行速度明顯的下降,因?yàn)镮NFORMATICA 對(duì)每行記錄都執(zhí)行兩個(gè)操作:更新(根據(jù)主鍵),如果返回的結(jié)果時(shí)更新了0 條記錄,再執(zhí)行一個(gè)插入操作。

  •  改變這種情況的辦法是,提前知道在MAPPING 中要執(zhí)行的是DD_UPDATE,還是DD_INSERT,然后告訴UPDATE 控件采用什么更新策略

不能使用DD_REJECT,可以在Update Strategy組件前添加filter組件將需要做DD_REJECT的數(shù)據(jù)過(guò)濾掉

l   AGGREGATOR 組件使用:

  • 在使用Aggregator前,最好對(duì)數(shù)據(jù)進(jìn)行排序,這樣會(huì)極大提高系統(tǒng)性能,此時(shí)Sorted Input應(yīng)該打勾

  • 一個(gè)mapping中最好只用一個(gè)Aggregator 控件。要使用多個(gè)Aggregator可以考慮使用臨時(shí)表把mapping拆開(kāi)

  • Aggregator與Lookup控件的一起使用時(shí),每個(gè)控件都需要索引緩沖、數(shù)據(jù)緩沖并且他們共享內(nèi)核里面同樣的HEAP 段,這些內(nèi)存區(qū)域是非常關(guān)鍵的,當(dāng)處理的記錄數(shù)量非常巨大時(shí)會(huì)引起內(nèi)存的不穩(wěn)定

  • 當(dāng)包含它的Mapping速度比較慢時(shí),可以調(diào)整Session中的參數(shù):

 Maximum Memory Allowed For Auto Memory Attributes  512M

 Maximum Percentage of Total Memory Allowed For Auto Memory Attributes 5%

Worklfow運(yùn)行的時(shí)候會(huì)從他們中取小的一個(gè)值

11  Workflow設(shè)計(jì)

開(kāi)發(fā)時(shí)注意查看客戶(hù)端左上方的Folder顯示,一定要在正確的Folder里面工作。

INFORMATICA 開(kāi)發(fā)規(guī)范有哪些

11?1查看工作文件夾

Workflow設(shè)計(jì)概覽:Workflow設(shè)計(jì)完成后的樣子及各部分功能

 INFORMATICA 開(kāi)發(fā)規(guī)范有哪些

11.1  創(chuàng)建Workflow

登陸到Repository Manager,打開(kāi)目標(biāo)文件夾,展開(kāi)(不是打開(kāi))文件夾“000_Shared”,找到Workflow“WF_for_copy”并將其拖拽到目標(biāo)文件夾,此時(shí)將會(huì)彈出一個(gè)“Copy Wizard”對(duì)話(huà)框。在沖突處置中選擇“rename”并按命名規(guī)范重命名。

 INFORMATICA 開(kāi)發(fā)規(guī)范有哪些

11?2按命名規(guī)范重命名

11.2  Workflow屬性設(shè)置

  1. General(通用) ,添加注釋

Create date: 日期

Create by:   用戶(hù)

Source table: Source table1

Source table2

……

Target table: Target table1

Target table2

……

       Desc: decription 例:將廣西用戶(hù)信息同步到集團(tuán)

        [

         Modify Date:

         Modify by: 用戶(hù)名(現(xiàn)實(shí)中文名)

Desc: decription 例:添加北京用戶(hù)信息同步到集團(tuán)

]

  1. Properties(屬性)

  • Enable HA recovery:打勾

  • Automatically recover terminated task:打勾

  • Maximum automatic recovery attemps:5

  1. Schedule

創(chuàng)建可復(fù)用的計(jì)劃

 INFORMATICA 開(kāi)發(fā)規(guī)范有哪些

為Workflow分配計(jì)劃

 INFORMATICA 開(kāi)發(fā)規(guī)范有哪些

11.3   添加可復(fù)用Session “pre_sql”、“post_sql”

如果在文件夾下找不到pre_S”、“post_S”,參考 復(fù)制共享對(duì)象

  1. 將可復(fù)用Session “pre_S”、“post_S”,添加到在Workflow中, 并按命名規(guī)范重命名,如workflow名為“WF_M_CJN001”,則Session的名稱(chēng)分別為“pre_ S_M_CJN001”、“post_ S_M_CJN001”

INFORMATICA 開(kāi)發(fā)規(guī)范有哪些

11?3 可復(fù)用Session添加到Workflow

  1. 修改Session “pre_sql”、“post_sql”的屬性

  • General屬性

Failed Parent if this task failed勾選

Treat the input link as:       And

INFORMATICA 開(kāi)發(fā)規(guī)范有哪些

11?4 修改General屬性

  • Properties屬性

Session Log File NameFolderName_SessionName.log

(如:000_Sample_pre_S_M_CJN001.log、                    000_Sample_post_S_M_CJN001.log)

 INFORMATICA 開(kāi)發(fā)規(guī)范有哪些

11?5 設(shè)置pre_S_*的日志文件

11.4     編輯Assignment

設(shè)置$$TARGET_OWNER,$$TARGER_TABLE的值

$$TARGET_OWNER = 目標(biāo)表的owner

$$TARGET_TABLE = 目標(biāo)表名

 INFORMATICA 開(kāi)發(fā)規(guī)范有哪些

11?6 編輯Assignment

12  Session設(shè)計(jì)

登陸到Workflow Manager,開(kāi)發(fā)時(shí)注意查看客戶(hù)端左上方的Folder顯示,一定要在正確的Folder里面工作。

12.1  創(chuàng)建Session

登陸到Workflow Manager,,打開(kāi)Session放置的Workflow

在工具欄的左上角左擊session創(chuàng)建圖標(biāo)后松開(kāi)鼠標(biāo),然后在工作區(qū)任意位置左擊一下彈出Session創(chuàng)建對(duì)話(huà)框,選擇正確的mapping,并按照5.4規(guī)范命名

 INFORMATICA 開(kāi)發(fā)規(guī)范有哪些

12?1 創(chuàng)建Session

將Assignment、Sessionpre_S_*、新建的Session、post_S_*串聯(lián)

 INFORMATICA 開(kāi)發(fā)規(guī)范有哪些

12?2 串聯(lián)Session

12.2  必要Session屬性設(shè)置

對(duì)于Session的修改和設(shè)置一定去到Session工作區(qū)設(shè)置,盡量不要在Worklet或者Workflow里面做特殊設(shè)置,比如指定表名或者指定用戶(hù)名等。

12.2.1    General屬性

  • Failed Parent if this task failed:勾選

  • Treat the input link as:       And

INFORMATICA 開(kāi)發(fā)規(guī)范有哪些

12?3 General屬性設(shè)置

12.2.2    Property屬性

  • Session Log File Name:FolderName_SessionName.log,(參照樣例,需要手動(dòng)寫(xiě)入)

  • Parameter Filename :

當(dāng) 增量參數(shù)是由pre_S*生成的參數(shù)文件控制時(shí):$PMRootDir/BWParam/$$PARAM_FILE?。ü潭ㄖ担?/p>

當(dāng) 增量參數(shù)不是由參數(shù)文件控制時(shí):留空

  • Treat Source Rows as, 有幾種類(lèi)型:1: Insert 2:Update 3:Data driven

對(duì)于目標(biāo)表只有Insert的,就選擇,Insert,

對(duì)于目標(biāo)表中存在更新,同時(shí)沒(méi)有使用UpdateStrategy控件的使用: Update

對(duì)于Mapping中使用UpdateStrategry控件的使用Data driven

  • Commit Interval:默認(rèn)值10000,當(dāng)單次加載超過(guò)10 0000行時(shí)將值設(shè)置為100000

  • Recovery Strategy:

調(diào)度增量(或者一次全量)超過(guò)500萬(wàn) 并且 在加載數(shù)據(jù)之前沒(méi)有刪除冗余數(shù)據(jù)操作的調(diào)度 選擇:Resume from last checkpoint

其它:Restart task

  • Enable high precision:勾選

INFORMATICA 開(kāi)發(fā)規(guī)范有哪些

12?4 Properties屬性設(shè)置

12.2.3    Config Object屬性

  • Default buffer block size

當(dāng)運(yùn)行速度較慢時(shí)考慮調(diào)整

Informatica用來(lái)存儲(chǔ)數(shù)據(jù)的最小單位,默認(rèn)值12KB。Information初始化Session時(shí),對(duì)每個(gè)Session分配2個(gè)Block作為初始化分配。如果一行數(shù)據(jù)大于Block的大小時(shí)則每一行數(shù)據(jù)均要移動(dòng)多個(gè)Block,影響執(zhí)行效率。建議取一行數(shù)據(jù)最大值的整數(shù)倍作為Block的大小。如一行數(shù)據(jù)的大小是8KB,可以調(diào)整Default buffer block size為24KB或者16KB

  • Maximum Memory Allowed For Auto Memory Attributes

 512M  單次取數(shù)介于500000行到2000000

 1024M  單次取數(shù)介于2000000行到5000000

  • Maximum Percentage of Total Memory Allowed For Auto Memory Attributes: 10%

以上兩個(gè)參數(shù)通常情況下保留缺省值即可,對(duì)于某些占用內(nèi)存較大的Mapping可以考慮增大,最大不能超過(guò)1G,同時(shí)他們之中取小的值作為最終值

  • Save session log for these runs:100,保存最近N次的運(yùn)行日志

Tips:菜單—>TaskàSession ConfigurationàEditàPropertiesà 將Save session log for these runs 設(shè)為100

可修改整個(gè)文件夾所有session的“Save session log for these runs”的值

12.2.4    Mapping屬性

12.2.4.1 Source 屬性

配置源表的連接信息,包括使用的Connection(連接),源表

INFORMATICA 開(kāi)發(fā)規(guī)范有哪些

12?5 設(shè)置源表的連接信息

檢查源表的過(guò)濾條件(可選),默認(rèn)是繼承mapping中Source Qualifier 中的過(guò)濾條件一致,在session里可以進(jìn)行個(gè)性化設(shè)置

 INFORMATICA 開(kāi)發(fā)規(guī)范有哪些

12?6 設(shè)置Source Filter

12.2.4.2 Target屬性

Target load type : Bulk/Normal  對(duì)于目標(biāo)表中存在索引的,Target load type只能選擇l裝載方式。默認(rèn)值是Bulk,本文要求統(tǒng)一設(shè)置成Normal

Tips:可在Workflow Manager中的Tools->Options->Miscellaneous中進(jìn)行初始設(shè)置

Insert: 勾選

Update as Update :勾選,當(dāng)指定的目標(biāo)表中只有Update動(dòng)作時(shí),使用

Update as Insert 不勾選, à當(dāng)指定的目標(biāo)表中只有Insert動(dòng)作時(shí),使用

Update else Insert不勾選 à 可用于維表或其它主數(shù)據(jù)表的數(shù)據(jù)增量操作,如果已經(jīng)有US更 新策略組件則不用。

Delete 不勾選        

Truncate target table option : 通常是全量抽取時(shí),用于目標(biāo)表需要先進(jìn)行清除動(dòng)作時(shí),這個(gè)選項(xiàng)要慎重選擇因?yàn)闀?huì)清空全表的數(shù)據(jù)。默認(rèn)是末被勾選的。

Reject filename: $$REJECT_FILE

  • Pre Sql設(shè)置數(shù)據(jù)的重載機(jī)制,根據(jù)情況添加以下腳本

情況1:按時(shí)間增量基于delete-insert方式時(shí)填寫(xiě)以下語(yǔ)句,否則留空

Delete from $$TARGET_OWNER.$$TARGET_TABLE

Where (increment column)>=to_date(‘$incr_start_dt’, ‘YYYY-MM-DD HH24:MI:SS’)

And  (increment column)<to_date(‘$incr_end_dt’, ‘YYYY-MM-DD HH24:MI:SS’);

Commit;

情況2:按主鍵增量且基于delete-insert方式時(shí)填寫(xiě)以下語(yǔ)句,否則留空

Delete from $$TARGET_OWNER.$$TARGET_TABLE

Where (increment column)> $$incr_start_ID

And  (increment column)<= $$incr_end_ID

Commit;

情況3:全量

留空

Post SQL: 默認(rèn)留空,如果需要在目標(biāo)表加載完成在數(shù)據(jù)庫(kù)執(zhí)行的任務(wù)可自行編寫(xiě)

Target Table Name:  $$TARGET_OWNER.$$TARGET_TABLE

13  從中間庫(kù)取數(shù)據(jù)

    從中間庫(kù)取數(shù)據(jù)時(shí)的設(shè)計(jì)需要在中間庫(kù)數(shù)據(jù)加載不及時(shí)的情況下,從中間庫(kù)的源庫(kù)取數(shù)據(jù)來(lái)避免數(shù)據(jù)漏采,所以在Workflow中要設(shè)計(jì)兩個(gè)Session分別能從中間庫(kù)、中間庫(kù)的源庫(kù)抽取數(shù)據(jù)。可復(fù)用Session‘pre_s_MID’可以生成當(dāng)批次的增量時(shí)間值,并根據(jù)中間庫(kù)取數(shù)據(jù)的及時(shí)情況讓其中一個(gè)Session空跑。

參考:文件夾000_Sample下WF_M_FOR_MID

注意:以下設(shè)計(jì)只能針對(duì)基于時(shí)間的增量。

13.1  復(fù)制共享對(duì)象

參考復(fù)制共享對(duì)象創(chuàng)建‘M_GetParam_Mid’的快捷方式,復(fù)制’ re_S_MID’、’post_S_MID’

13.2   Workflow設(shè)計(jì)

 INFORMATICA 開(kāi)發(fā)規(guī)范有哪些

    向目標(biāo)庫(kù)的 ETLMGR.ETL_INCR_PARAM插入所需的數(shù)據(jù),ETL_INCR_PARAM.SESSON_NAME = S_M_TargetTable

創(chuàng)建Workflow時(shí)從000_Sample 復(fù)制WF_for_copy_mid進(jìn)行重命名。參考 添加可復(fù)用Session 添加‘pre_S’,‘pre_S_MID’,‘post_S_MID’

Assignment:跟直接從源庫(kù)數(shù)據(jù)不同,從中間庫(kù)取數(shù)據(jù)時(shí)需要檢查中間庫(kù)的數(shù)據(jù)是否及時(shí),所以要指定中間庫(kù)的源表。

INFORMATICA 開(kāi)發(fā)規(guī)范有哪些

pre_S_M_ TargetTable:由‘pre_S’重命名而來(lái), 屬性設(shè)置與 添加可復(fù)用Session 一致。

pre_S_ M_ TargetTable_MID:由‘pre_S_MID’重命名而來(lái), 屬性設(shè)置與 添加可復(fù)用Session 一致,但是要指定兩個(gè)源表的Connection分別到中間庫(kù)和目標(biāo)庫(kù).

 INFORMATICA 開(kāi)發(fā)規(guī)范有哪些

post_S_ M_ TargetTable:由‘post_S_MID’ 重命名而來(lái),屬性設(shè)置與 添加可復(fù)用Session 一致.

S_M_TargetTable_MID屬性設(shè)置參考 Session設(shè)計(jì) ,源表的Connection指向中間庫(kù)

S_M_TargetTable屬性設(shè)置參考 Session設(shè)計(jì) ,源表的Connection指向中間庫(kù)的源庫(kù),可能需要向管理員申請(qǐng)對(duì)應(yīng)Connection的執(zhí)行權(quán)限。

特殊設(shè)置:’treat the input link as ’ = ‘or’

 INFORMATICA 開(kāi)發(fā)規(guī)范有哪些

Link1: $pre_S_M_TargetTable_MID.ErrorCode <> 0

Link2: $pre_S_M_TargetTable.ErrorCode =  0

Link3: $pre_S_M_TargetTable.ErrorCode =  0

雙擊連線(xiàn)(link)可以編輯連線(xiàn)的條件

 INFORMATICA 開(kāi)發(fā)規(guī)范有哪些

14  寫(xiě)數(shù)據(jù)到FTP 文件

可參考文件夾000_Sample下WF_M_FOR_FTP的Workflow的設(shè)計(jì)

FTP Connection:在幫助文檔的搜索‘FTP Connection’關(guān)鍵字

寫(xiě)數(shù)據(jù)到FTP文件時(shí),由于目標(biāo)不再是數(shù)據(jù)庫(kù),所以不需要在ETLMGR.ETL_INCR_PARAM設(shè)置增量參數(shù)的值,也不能在將運(yùn)行日志寫(xiě)入日志表中。增量的控制一般采用sysdate(DB參數(shù))來(lái)實(shí)現(xiàn)。建議每FTP文件的命名帶上時(shí)間戳并且在FTP文件順利生成后寫(xiě)一個(gè)標(biāo)志文件來(lái)標(biāo)志FTP文件順利生成。

15  開(kāi)發(fā)建議

1)   習(xí)慣點(diǎn)擊Ctrl+S進(jìn)行Mapping的保存,避免客戶(hù)端崩潰造成的不必要損失

2)   習(xí)慣性的經(jīng)常去Refresh Mapping和Validate Session和Workflow,保持Session和Mapping的一致,保持Session的正確可用性

3)   下班前及在進(jìn)行重大修改前對(duì)相關(guān)內(nèi)容做備份,備份操作參考12章

16  備份及恢復(fù)

16.1  備份

登陸到Repository Manager

  • 備份Workflow

操作:選擇需要備份的Workflow(結(jié)合Shift及Ctrl可多選)à右鍵àExport(導(dǎo)出)à選擇保存路徑并填寫(xiě)文件名稱(chēng)à點(diǎn)擊保存按鈕

上述操作會(huì)備份Workflow及Workflow所有子對(duì)象如:Session、Mapping、Source、Target等

  • 備份Mapping

操作:選擇需要備份的Mapping(結(jié)合Shift及Ctrl可多選)à右鍵àExport(導(dǎo)出)à選擇保存路徑并填寫(xiě)文件名稱(chēng)à點(diǎn)擊保存按鈕

上述操作會(huì)備份Mapping及Mapping的所有子對(duì)象如: Mapping、Mapplet、Source、Target等

  • 備份其它對(duì)象,參考上述兩種備份操作

16.2  恢復(fù)

登陸到Repository Manager

操作:菜單RepositoryàImportant Objectà選擇需要導(dǎo)入的XML文件,打開(kāi)à選擇下一步à選擇需要導(dǎo)入的對(duì)象à選擇并確認(rèn)目標(biāo)文件夾àImportà (有沖突時(shí)會(huì)出現(xiàn))處置沖突的解決方法à下一步

Tips:在處置沖突時(shí)可對(duì)多外對(duì)象應(yīng)用相幾的處置方法

 INFORMATICA 開(kāi)發(fā)規(guī)范有哪些

14?1 導(dǎo)入對(duì)象時(shí)處置沖突

18  常見(jiàn)問(wèn)題解決

 INFORMATICA 開(kāi)發(fā)規(guī)范有哪些

解決方法:檢查Workflow、Session的命名規(guī)范,如'S_M_TCMS_TM_DEPARTMENT'寫(xiě)成

's_M_TCMS_TM_DEPARTMENT'

看完上述內(nèi)容,你們掌握INFORMATICA 開(kāi)發(fā)規(guī)范有哪些的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI