ODI利用CDC實現實時同步資料
阿新 • • 發佈:2019-02-01
(內容有借鑑其他文件,親身實踐成功~)
需求:
table_02作為目標表,需要實時的與源資料表table_01同步(即table_01更新或者是插入或者是刪除了一行記錄,table_02能夠實時的同步此操作----此處設定為延時10s同步------已經很了不得了 好伐!!!~~)
工具:
ODI 11g,plsql,ORACLE 11G
正文:
1.前期準備:
新建表table_01,table_02,在表table_01中插入幾行記錄:
在ODI中新建介面實現table_01送數給table_02-----I_table01_to_02
(由於前邊的內容比較簡單,具體過程略)
2.新增CDC(此處用的是SIMPLE模式)
2.1.在反向的模型中啟用日誌記錄,選擇對應的知識模組-----JKM Oracle Simple:
2.2:新增CDC:
找到模型中的table_01,右擊---->"已更改資料捕獲"----->新增CDC;
注:被新增cdc的表一定是含有主鍵的表,否則會報錯
2.3:訂閱訂戶:
找到模型中的table_01,右擊---->"已更改資料捕獲"----->訂戶----->訂閱;
2.4:啟動日誌:
找到模型中的table_01,右擊---->"已更改資料捕獲"----->啟動日誌;
3.新建包完成實時同步:
3.1新建包:
3.2:如下第一步是OdiWaitForLogData
3.3:之前做的介面作為第二步(略):
需要在“僅已進行日記記錄的資料上”打勾:
3.4:OdiSleep:
儲存!!!
執行!!!
接下來,這個包就一直處於"正在執行"狀態,每隔10s就會檢查一次源表table_01是否更新,然後同步到table_02目標表中