cdc

oracle增量抽取解決方案

CDC


CDC是oracle在資料庫級別實現的增量抽取解決方案。在一般的ETL過程中,對於增量抽取,無非是在數據上加時間戳,全記錄比對,關鍵欄位比對,日誌分析抽取等幾種方法,要麼需要修改原表結構,要麼需要大量的演演算法,要麼藉助第三方的工具實現。Oracle從9i開始引入的CDC特性,使得有機會在資料庫層面上直接實現增量抽取功能,在性能方面由於和資料庫引擎的直接集成,比第三方工具應該具有一定的優勢。

兩個模式


同步和非同步。兩種模式的實現機制是截然不同的。同步CDC主要是採用觸發器記錄新增數據,基本能夠做到實時增量抽取。而非同步CDC則是通過分析已經commit的日誌記錄來得到增量數據信息,有一定的時間延遲,並且提供了到Oracle Streams的介面。同步CDC在企業版或者標準版中都可以使用,非同步CDC則只包含在企業版中。注意CDC在9i和10g中有了比較大的改變,非同步CDC主要採用了和Streams相同的技術。

兩個角色


發布者和訂閱者。發布者主要負責捕獲增量數據,訂閱者則將增量數據傳遞給實際應用。這些任務都可以通過oracle提供的PL/SQL包實現。