增量資料抽取

2021-08-31 05:21:35 字數 826 閱讀 8318

a.觸發器:在要抽取的表上建立需要的觸發器,一般要建立插入、修改、刪除三個觸發器,每當源表中的資料發生變化,就被相應的觸發器將變化的資料寫入乙個臨時表,抽取執行緒從臨時表中抽取資料,臨時表中抽取過的資料被標記或刪除。觸發器方式的優點是資料抽取的效能較高,缺點是要求業務表建立觸發器,對業務系統有一定的影響。

b.時間戳:它是一種基於快照比較的變化資料捕獲方式,在源表上增加乙個時間戳字段,系統中更新修改表資料的時候,同時修改時間戳字段的值。當進行資料抽取時,通過比較系統時間與時間戳字段的值來決定抽取哪些資料。有的資料庫的時間戳支援自動更新,即表的其它欄位的資料發生改變時,自動更新時間戳字段的值。有的資料庫不支援時間戳的自動更新,這就要求業務系統在更新業務資料時,手工更新時間戳字段。同觸發器方式一樣,時間戳方式的效能也比較好,資料抽取相對清楚簡單,但對業務系統也有很大的傾入性(加入額外的時間戳字段),特別是對不支援時間戳的自動更新的資料庫,還要求業務系統進行額外的更新時間戳操作。另外,無法捕獲對時間戳以前資料的delete和update操作,在資料準確性上受到了一定的限制。

c.全表比對:典型的全表比對的方式是採用md5校驗碼。etl工具事先為要抽取的表建立乙個結構類似的md5臨時表,該臨時表記錄源表主鍵以及根據所有欄位的資料計算出來的md5校驗碼。每次進行資料抽取時,對源表和md5臨時表進行md5校驗碼的比對,從而決定源表中的資料是新增、修改還是刪除,同時更新md5校驗碼。md5方式的優點是對源系統的傾入性較小(僅需要建立乙個md5臨時表),但缺點也是顯而易見的,與觸發器和時間戳方式中的主動通知不同,md5方式是被動的進行全表資料的比對,效能較差。當表中沒有主鍵或唯一列且含有重覆記錄時,md5方式的準確性較差。

d.日誌對比:通過分析資料庫自身的日誌來判斷變化的資料。

Kettle資料抽取 增量抽取

使用 kettle 實現資料的增量抽取的方法大致如下 從目標表中讀取最大的時間戳或者增量字段 id,作為條件,然後把源表中所有大於這個增量欄位的資料讀出來,插入到目標表當中去 1.開啟 kettle 工具,開啟新建的全量抽取流 2.選擇 input,再拖出來乙個 表輸入 控制項 開啟表輸入 2,配置...

抽取增量資料演算法說明

以下例子以sql server資料庫系統為準。為了實現對資料庫能夠實現增量匯出,要求被匯出的 建立時間戳 建立日期 修改日期 是否有效四個字段 其中,建立日期和修改日期要精確到毫秒 當 進行insert操作時,其中時間戳會自動更新,建立日期和修改日期初始化為當前伺服器時間,是否有效初始化為0。這時,...

sqlserver cdc實現資料增量抽取

建立測試庫 create database test 建立配置表 create table test.time config tb varchar 20 primary key,enddate binary 10 建立業務表 create table test.tb s id int primary...