informatica同構與異構


1.同構需求

1.1 將emp表和dept表進行內連接

要實現的結果:
在這裏插入圖片描述
1.導入源表:emp表和dept表。
2.定義目標表:將emp表重命名,加入2個dept的字段,生成sql語句,在edw用戶下創建表。
在這裏插入圖片描述
在這裏插入圖片描述
3.創建映射:
刪除原本連着各自源表的源限定符,新建一個源限定符同時選擇兩張源表。
在這裏插入圖片描述
設置屬性爲兩張表的deptno相等。
在這裏插入圖片描述
在端口我們只保留emp的deptno字段,刪除dept的deptno字段,保存映射。
在這裏插入圖片描述
4.創建任務和工作流,保存,執行,查看結果。
在這裏插入圖片描述
在這裏插入圖片描述

1.2 將emp表和dept表進行右連接

要實現的效果:
在這裏插入圖片描述
我們可以在映射中的源限定符的屬性中定義sql語句。
在這裏插入圖片描述
端口的字段順序要和定義的sql語句的查詢字段的順序一致。
在這裏插入圖片描述
保存映射,重新執行工作流。
但是最終只返回14條數據,我們希望的是右連接返回所有20條數據,查看錯誤說無法將null寫入到empno字段。
在這裏插入圖片描述
原因是我們的源表emp和dept設置了empno爲主鍵,所以需要先刪除主鍵標誌。
在這裏插入圖片描述
目標表查看deptno在非空上也打勾了,需要去掉這個勾,然後重新執行sql語句,在edw用戶下重新創建表格。
在這裏插入圖片描述
重新刷新映射,創新創建任務和工作流,執行後,發現沒有問題了。
在這裏插入圖片描述
查看edw用戶的數據導入情況也正常了。
在這裏插入圖片描述

2.異構需求

2.1 使用oracle的emp表和mysql的dept表進行連接

1.從mysql中導入dept表
重新定義odbc驅動,去連接mysql。選擇系統DSN,如果彈出警告說非管理權限,就使用管理員模式重新打開D客戶端。
在這裏插入圖片描述
點擊確定後,設置連接mysql,以及dept表所在的數據庫
在這裏插入圖片描述
ODBC源選擇剛剛創建的mysql,用戶名是連接mysql的用戶名和密碼。
然後導入mysql的dept表。
在這裏插入圖片描述
在這裏插入圖片描述
2.定義目標表:edw_emp_join_dept_yigou
3.創建映射:
使用連接器轉換組件joiner來關聯兩個不同數據庫的源表。
在這裏插入圖片描述
數據類型不一致,需要轉換數據類型。將mysql的deptno的數據類型轉換成和oracle的deptno一致,使用表達式組件
在這裏插入圖片描述
重新使用連接器轉換組件joiner來關聯兩個不同數據庫的源表,設置oracle的deptno和mysql的deptno相等。
在這裏插入圖片描述
連接目標表,保存映射。
在這裏插入圖片描述
4.創建任務和工作流:
創建任務,新建mysql的dept表的源表對象。
在這裏插入圖片描述
雙擊任務,分別編輯源表和目標表所屬的表對象。
在這裏插入圖片描述
創建工作流,保存,執行後,在edw用戶下就能看到異構數據庫連接的數據。
在這裏插入圖片描述
在這裏插入圖片描述

3.同構與異構總結

同構是兩個源表連接一個源限定符。
異構是兩個源表分別連接源限定符,再通過連接器轉換組件將兩者連接。
在這裏插入圖片描述
表的連接方式
在這裏插入圖片描述
主從表可以在轉換器組件中自定義更換
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章