国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > Oracle > 正文

informatical lookup的使用詳解

2020-07-26 14:26:13
字體:
來源:轉載
供稿:網友

Lookup在ETL中是一種常見的操作,比如產品鍵到代理鍵的轉換,ID到name的轉換等,都可以通過lookup來實現。Informatica中的lookup transformation組件除了能實現這種普通的轉換,還可以用來更新緩慢變化維等,功能可謂強大。本文根據Informatcia8.1的聯機文檔,簡單介紹一下informatica的lookup transformation。
中英文名詞對應:
•transformation:轉換
•connected:連接的
•unconnected:未連接的
•cache:緩存

一、lookup的功能
•獲得相關值:例如根據ID查找name
•執行計算:例如得到計算公式得到一個結果
•更新緩慢變化維:根據lookup的條件決定是插入還是更新記錄等

二、rational lookups vs flat file lookups
lookup的源可以是關系數據庫中的表,也可以是平文件。對于關系表,可以從source或者target中選擇,也可以和平文件一樣,通過import向導完成。

三、connected lookups vs unconnected lookups
informatica的轉換可以分為連接的和非連接的兩種。
所謂連接的轉換,就是該轉換是處于整個ETL的數據流中的,其輸入ort是直接從另外一個轉換,而非連接的,則獨立于主數據流之外,通過其他轉換中的表達式得到輸入數據。
連接的lookup轉換將處理數據流中的每一條數據,對于不符合lookup條件的,則輸出預先指定的默認值,并且可以更新動態緩存。輸出值是所有的output/lookup port??梢允褂渺o態或者動態的緩存。
未連接的lookup轉換只處理符合lookup條件的數據,并且只返回一個值。對于不符合條件的,輸出NULL。未連接的lookup轉換可以被多次調用。輸出值在唯一的return port。只能使用靜態緩存。

四、cache
informatica對于lookup使用了cache機制。服務器對于cache的處理流程大致如下:
開始處理第一條數據的時候,服務器會在內存中建立緩存,緩存的大小有lookup轉換的一些屬性決定。對于lookup條件,建立一個index cache,而對于輸出值,則放在data cache中。
如果內存緩存大小不夠,則會將溢出的緩存放到文件中。會話結束后,緩存會被清除,除非lookup緩存被設置為永久性的。
對于靜態的cache,是不允許lookup轉換對其進行更新的。而動態的cache,在lookup中如果發現不符合條件的值,可以對cache進行插入或者更新處理。
當然也可以選擇不使用任何cache。

五、lookup transmation組件
lookup共有5個組件,也就是在lookup轉換上點右鍵,選編輯后看到的5個標簽頁。實際上,基本上informatica所有的transformation都差不多是5個組件。
其中第一個transformation頁簽,第二個ports頁簽和第五個metadata extensions頁簽基本都差不多。只是lookup的port除了通常的I(input),O(output)外,還有L(lookup),R(return)。其中return port只能有一個,并且不能和其他轉換直接連接,只能通過LKP:表達式獲得。
第四個condition頁簽指定lookup的條件,實際上就是設置兩個表的關聯條件。
第三個properties是最重要的,可以在這里重寫SQL來自定義lookup,設置符合條件返回多條記錄時的處理方式,設置是否使用動態cache,以及cache的大小等等。

六、lookup tips
•在lookup條件列上創建index
•盡量使用=條件。如果有多個條件,盡量將=條件放到最前面
•對于小表,盡量使用cache,并且設置cache大小,使得整個table可以cache到內存中
•如果lookup的表和源表在同一個數據庫中,并且cache不夠大,那么盡量使用join而不是lookup
•對于靜態的lookup,盡量使用永久cache(persistent cache),這樣多個session可以重用。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 咸阳市| 缙云县| 广灵县| 赤峰市| 冷水江市| 出国| 商河县| 胶南市| 灯塔市| 葫芦岛市| 托里县| 巫山县| 青海省| 莱芜市| 朝阳县| 辉县市| 铁岭县| 胶州市| 灌阳县| 迭部县| 奉化市| 英德市| 临安市| 日照市| 海盐县| 金华市| 石柱| 隆林| 齐河县| 突泉县| 广平县| 尼木县| 瓦房店市| 陕西省| 锡林浩特市| 金坛市| 江油市| 长宁县| 许昌市| 新余市| 洪泽县|