1. 程式人生 > >ODI利用CDC實現實時同步資料

ODI利用CDC實現實時同步資料

(內容有借鑑其他文件,親身實踐成功~)

需求

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目標表中