前提條件:
1)安裝Oracle ODI
2)安裝Oracle XE資料庫
3)建立資料庫使用者odi/apps, odi_work/apps, odi_ess/apps, odi_obj/apps
4)在odi_ess與odi_obj(來源資料與目標資料存放區位置)建立資料庫表 cux_users/cux_sites
建表指令碼為:
create table cux_users
(user_id NUMBER,
username VARCHAR2(20),
email VARCHAR2(20),
phone VARCHAR2(20));
create table cux_sites
(site_id NUMBER,
user_id NUMBER,
site_use_code VARCHAR2(20),
address1 VARCHAR2(100));
5)在odi_ess下的cux_users/cux_sites中添加資料
1、建立主存放庫(開始菜單–所有程式–Oracle Data Integrator–Oracle Data Integrator–Repository Management–Master Repository Creation,建立主存放庫)
ODI所有模組的資訊都儲存在一個叫做Master Repository的中心知識庫中。Master Repository通過Master Repository Creation Wizard建立,這也是安裝完ODI後應該做的第一個任務。
除了Master Repository,還需要為不同的任務建立Work Repository。Work Repository中的資訊包括模組資訊,項目資訊和運行期資訊。
2、串連主存放庫(開始菜單–所有程式–Oracle Data Integrator–Oracle Data Integrator–Topology Manager)
1)選擇建立
2)登入名稱可以隨意,使用者和密碼必須為:SUPERVISOR/SUNOPSIS,主存放庫選擇第1步中建立的主存放庫
點擊測試測試連接是否成功,如果成功,確定登入進Topology Manager。
3、建立上下文(登入Topology Manager。切換到上下文Tab頁,右鍵建立上下文)
物理模式資訊的修改不影響邏輯模式的引用,但如果物理模式資料庫伺服器的串連資訊改變,就比較麻煩.內容相關的出現就是允許邏輯模式通過上下文串連多個物理模式,避免因為串連資訊改變而重新定義。當然,上下文是匹配所有物理模式的。
輸入名稱、密碼(可選,輸入密碼後以後每一次使用該上下文都將要求輸入密碼,大小寫嚴格匹配)後,直接點擊“確定”
4、建立工作存放庫(登入Topology Manager。切換到存放庫Tab頁,右鍵建立插入工作存放庫)
這裡的使用者選擇odi_work,工作存放庫存在於表odi.snp_rem_rep中,ODI是主存放庫的使用者。
5、建立資料庫伺服器(登入Topology Manager。切換到物理體繫結構Tab頁,在技術中選擇“Oracle”,右鍵“插入資料服務器”)
在“定義”與“JDBC”Tab頁中填寫相應資訊,這裡的odi_ess是來源資料儲存的地方,測試連接正常後直接點“確定
6、建立物理架構(在第5步中建立的資料庫服務,右鍵“插入物料架構”)
在“定義”Tab頁中填寫資訊,直接點擊“確定”
7、建立邏輯架構(登入Topology Manager。切換到邏輯體繫結構Tab頁,在技術中選擇“Oracle”,右鍵“插入邏輯架構”)
為每一個上下文選擇對應的物料架構
註:按照上面的步驟建立新的資料庫服務ODI.ODI_OBJ,物料架構為ODI.ODI_OBJ.ODI.OBJ,邏輯架構為ODI.OBJ_LogicalSchema(此資料庫服務是為目標資料使用者建立的)
8、登入工作存放庫(通過Designer登入工作存放庫)
第一次登入選擇“建立”,登入名稱任意,使用者名稱/密碼必須為SUPERVISOR/SUNOPSIS,主存放庫選擇上面建立的主存放庫
9、建立項目(通過第8步登入Designer,在“項目”Tab中建立新項目)
10、匯入知識模組(在ODI_DEMO/知識模組中匯入需要的知識模組)
ODI的知識模組主要分為幾個大類(RKM,CKM,LKM,IKM,SKM),其中最重要的是LKM(load KM)和IKM(Integration KM)RKM:
RKM完成從源系統和目標系統的資料結構的反向工程來形成資料模型的功能。
CKM:CKM完成資料品質檢查。
LKM:LKM完成從來源資料庫資料載入到暫存資料表。
IKM:IKM完成從暫存資料表的資料載入到目標表。
SKM:SKM完成ODI和WEB服務介面的功能。
SKM(Service KM):Web服務知識模組,可以使用該知識模組來產生Web服務調用
註:這裡將匯入LKM/CKM/IKM中的部分知識模組內容
選擇LKM,右鍵“匯入知識模組”,在檔案路徑中選擇<ODI_HOME>/oracledi/impexp,在匯入檔案中選擇
IKM File to SQL
IKM SQL to SQL
選擇CKM,右鍵“匯入知識模組”,在檔案路徑中選擇<ODI_HOME>/oracledi/impexp,在匯入檔案中選擇
CKM Oracle
選擇IKM,右鍵“匯入知識模組”,在檔案路徑中選擇<ODI_HOME>/oracledi/impexp,在匯入檔案中選擇
IKM Oracle Incremental Update
11、建立模型(在“模型”Tab頁中建立新模型)
選擇“反向”,將odi_ess使用者下以“CUX_”打頭的資料表載入模型中(選中“CUX_USERS”,右鍵“查看資料”,將顯示載入的資料)
註:以同樣的方式將odi_obj使用者下以“CUX_”打頭的資料庫載入ODI.ODI_OBJ模型中
12、添加約束(為CUX_USERS/CUX_SITES添加鍵約束)
在ODI.ODI_ESS/ODI.ODI_OBJ中選中CUX_USERS/CUX_SITES,展開,選擇“約束”,右鍵“插入鍵”
13、建立介面(選擇ODI_DEMO,展開,選中“介面”,右鍵“插入介面”)
註:在快顯視窗“是否自動對應”中選擇“確定”
注意觀察“流”與“控制項”Tab頁中的內容(如果沒有“LKM”與“CKM”選項為空白,請檢查項目知識模組的匯入是否正確)
14、執行“介面”,觀察執行結果
在ToolBar上選擇“Operator”,查看會話執行結果
對於執行出錯的會話,可右鍵查看錯誤原因
15、檢查匯入資料
如上圖“8007”會話,執行成功後返回“Designer”中查看ODI.ODI_OBJ模型下的CUX_USERS,右鍵“查看資料”,將看到資料成功匯入