ETL全量與增量總結

2022-12-13 05:48:05 字數 3718 閱讀 9295

informatica powercenter 8.6

ζ太陽團隊ξ

文件變更記錄

etl全量與增量

在\oracle\product\10.2.0\db_1\network\admin路徑下,雙擊檔案,對oracle連線進行配置。

例如:ods = (description=

(failover = yes)

(address = (protocol = tcp)(host =10.100.20.11)(port = 1521))

(address = (protocol = tcp)(host =10.100.20.13)(port = 1521))

(connect_data =(server = dedicated)

(service_name = cedb)

))這個是ods的連線位址。

點選mapping,選擇,在點選。

etl全量

etl全量,即將源庫里的資料全部導進目標庫,其重要注意的是,可能要新增'etl_date'這個字段。

(1)單擊mapping,點選create…

這個是給mapping起名字,起名規則:m_目標表表明。例如:m_ ods_ce_borrow_contract

(2)單擊mapping,點選edit…

可以修改mapping名,修改完成之後點選ok

(source analyzer)點選這個按鈕

在工具欄點選sources這個按鈕

點選import from datebase…

點選…(如果已有odbc data source,則直點選進行選擇)

點選新增,選擇oracle in ….(如果要是mysql的源就選擇上面的mysql odbc …)

完成後點選ok。

輸入使用者、密碼點選connect 即可(注:我的odbc data source:ods(oradb10g_home2)是我自己配置的,一般的是ods(oradb10g_home1))

當其顯示re-connect時,表示連線上了源資料庫。

展開這兩個節點,單擊所需要的源表,點選ok即可。

(target designer)點選這個按鈕

其他的步驟與匯入源一直,可參考上邊的文件。

4 組建mapping

(mapping designer)點選這個按鈕

選擇這個節點並開啟。

選擇你的源表,點選右鍵,選擇open.這樣源表就會在右邊的designer介面顯示了。

點選f(x)元件,在右側designer介面在單擊一下。

將源中的字段全選,拖入表示式元件中。

有的目標表可能比源表多了乙個'etl_date',這時候需要我們在mapping過程的『expression transformation』這個元件,新增一列,命名為'etl_date',字段型別為'date/time'且只輸出(o),在後面條件框裡邊輸入'to_date($$today,'yyyy-mm-dd hh24:mi:ss')'

注:$$today 是在mapping中自己定義的時間變數!

有的源表與目標表的字段型別不一樣,這時候需要我們在mapping過程的『expression transformation』這個元件中轉換一下字段型別。

例如:源表中的ahead_time的字段型別是nstring型,而目標中欄位型別為'date/time',這時我們需要轉換。

雙擊表示式元件,選擇ports頁,點選選中ahead_time行,單擊複製

在點選貼上

單擊按鈕,在彈出來的對話方塊內寫入to_date(ahead_time,'yyyy-mm-dd hh24:mi:ss')

輸入完成後點選validate,顯示…successfully後即轉換成功,點選確定->ok->確定即設定成功。

開啟targets節點,選擇目標表。右鍵->open,這時右邊的designer介面就會顯示目標表。

這裡'truncate清除表中資料'是指清除目標表中的資料,這樣從源表過來的資料就不會有重複。雙擊目標表,選擇properties頁,在pre sql中新增.truncate table +目標表表名。

首先單擊表示式元件

在選單欄選擇layout

在單擊,此時會彈出乙個介面。

選中目標表,選擇name,點選ok,這樣表示式元件就與目標表連線起來了。

etl增量

etl增量,即將源庫里的資料更新到目標庫中,用update實現,更新掉原有的舊資料,新增原來沒有的新資料。

匯入源、目標表、表示式元件與全量的過程是一樣的,在這裡就不詳細講解了。

新增乙個lookup transformation,選擇目標表,刪除除 %id%以外的列,並且新增乙個列%id1%,並且只為輸入(i).

在condition中新增乙個條件 %id%=%id1%.

時間戳的定義,即在做更新時,利用creat_time和lastupdate或者operate_time作為條件(三者選其一或者其二都可以),來篩選資料。在sq中properties的source filterz中新增條件,具體如下:

雙擊(to_date(create_date,'yyyy-mm-dd hh24:mi:ss') >=to_date('$$start_date','yyyy-mm-dd hh24:

mi:ss')

and to_date(create_date,'yyyy-mm-dd hh24:mi:ss') <=to_date('$$end_date','yyyy-mm-dd hh24:

mi:ss'))

or(to_date(oper_date,'yyyy-mm-dd hh24:mi:ss') >=to_date('$$start_date','yyyy-mm-dd hh24:

mi:ss')

and to_date(oper_date,'yyyy-mm-dd hh24:mi:ss') <=to_date('$$end_date','yyyy-mm-dd hh24:

mi:ss'))

注:這裡邊$$today,$$start_date,$$end_date 是在mapping裡邊自己定義的。

建立乙個epression transformation元件,將sq裡的列全部拖到epr裡邊,在新增乙個%id1%欄位,新增條件' '且只為輸出(o).

新增update strategy transformation元件,將epr中的字段全部拖進來,在properties的 update strategy epression中新增條件,條件如下:iif(isnull (%id1%),dd_insert,dd_update),這個是鏈結之前的lookup transformation的條件。

雙擊1.點選,進入workflow manager。

2.再右側裡邊選擇建立mapping的資料夾。

3.建立乙個session, 點選tools

4.選擇workflow designer

5.點選

6.點選create…

7.會彈出來這個對話方塊,這個名字可以自己隨便起乙個,但是字首要是wf_,然後點選ok 。

8.在工具欄點選這個元件,在下邊的workflow designer介面,點選左鍵。

9. 選擇自己的mapping,點選ok。

10. 點選這個按鈕

將他倆連上。

11.配置session

雙擊,,選擇mapping頁

這三個是都要設定的(在全量mapping中沒有lkptrans)。

將選擇成自己資料庫所對應的連線。

選擇完成之後點選確定。

11.新增資料進行測試

與量有關的離子方程式總結

1 向alcl3溶液中滴入naoh溶液至過量,其離子反應分步寫 1 al3 3oh al oh 3 2 al oh 3 oh alo2 2h2o 2 若向naoh溶液中滴入alcl3溶液至過量,其離子反應分步寫 1 al3 4oh alo2 2h2o 2 3alo2 al3 6h2o 4al oh ...

全高考文科數學知識內容歸納與複習總結

高中數學文科知識點全歸納複習總結 必修1知識點 第一章集合與函式概念 1.1.1 集合的含義與表示 1 集合的概念 集合中的元素具有確定性 互異性和無序性.2 常用數集及其記法 表示自然數集,或表示正整數集,表示整數集,表示有理數集,表示實數集.3 集合與元素間的關係 物件與集合的關係是,或者,兩者...

光現象與光折射知識點總結 超全

2.1光的傳播 1 光源 能發光的物體叫做光源。光源可分為天然光源 水母 太陽 人造光源 燈泡 火把 月亮 鑽石 鏡子 影幕不是光源。2 光在同種均勻介質中沿直線傳播 光的直線傳播的應用 1 小孔成像 像的形狀與小孔的形狀無關,像是倒立的實像 樹陰下的光斑是太陽的像 小孔成像的條件 孔的大小必須遠遠...