淺談Kettle應用中比較實用的CDC模式

 CDC[Change Data Capture] 也就是變化數據捕捉 是ETL設計中最重要的一個環節。不同的廠商開發出來的工具都有自己的特定組件來實現CDC的模式,但其實這些實現都有些泛化。原因很簡單,CDC要基於不同的表結構和設計來實現的,基於時間變化的就需要源表有時間類型字段,甚至更敏感一些的還需要Trigger來實現CRUD操作留下的痕跡以便實現CDC。

還有就是數據流的模式 是多對一還是一對多的ETL也很重要,尤其是一對多,標記每一個目標段是否成功的標記模式就顯得很重要了,哪些點成功Import到數據了 哪些沒有 都需要一個很直觀很方便的表示方法供我們查詢。

我現在使用的CDC模式比較通用一點 不基於任何工具的任何組件,其目的是爲了使用通用性,假設有一天你現在使用的ETL工具沒有廠商和社團爲其Support的話 你怎麼辦?所有轉換和JOB大改?以便適應新的工作? 得了吧。。。


Kettle CDC


簡單得來看 就是一句配合着十進制和二進制轉換的SQL

SELECT SUBSTRING(LPAD(CONV(255 ,10,2),10,'0'),1,1) ,

SUBSTRING(LPAD(CONV(255 ,10,2),10,'0'),2,1) ,

SUBSTRING(LPAD(CONV(255 ,10,2),10,'0'),3,1) ,

LPAD(CONV(255 ,10,2),10,'0');

這樣看是否會淺顯一點?中間的255就是一個十進制數字 在一對多模式下 默認就是一個0 意義是該數據還處於初始化狀態,具體是一對多少,就看自己的需求了。

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