ETL增量抽取方法講解

2021-12-30 05:35:13 字數 2162 閱讀 7162

一、.etl體系結構

資料庫--->抽取---> 轉換--->載入--->目的資料來源

二、etl抽取方案

1).全量抽取

全量抽取類似於資料遷移或資料複製,它將資料來源中的表或檢視的資料原封不動的從資料庫中抽取出來,並轉換成自己的etl工具可以識別的格式,全量抽取比較簡單。全量抽取一般只在系統初始化時使用,全量一次後,就要每天採用增量抽取。

2).增量抽取

增量抽取只抽取自上次抽取以來資料庫中要抽取的表中新增或者修改的資料。在etl使用中,增量抽取使用更加廣泛。

怎樣獲取變化的資料是增量抽取的關鍵。對於捕獲方法的要求一般有:準確性,一致性,完整性,效能。

準確性:能夠將業務系統中的變化資料按一定的規則準確的捕獲到。

一致性:源表和目標表中資料的一致。不能有字段的不一致。

完整性:要求源表中應該放入到目標表中的資料均被放入到目標表中。

效能:因為乙個公司晚上一般有大量的跑批,像我們公司,從凌晨12點開始,n個系統排隊跑批,一般排到早上七八點鐘。所以這就要求效能一定要優。不能對業務系統造成太大的壓力,影響現有業務。

目前增量資料抽取中常用的捕獲變化資料的方法有:

1.時間戳

在源表上增加乙個時間戳字段,當系統中更新修改表資料的時候,同時修改時間戳字段。當進行資料抽取的時候,通過時間戳來抽取增量資料。

優點:效能比較好。etl系統設計清晰,源資料抽取相對清楚簡單,可以實現資料的遞增載入。

缺點:對業務系統要求較高,需要新增時間戳字段。

無法獲取到時間戳以前資料的delete操作和update操作,在資料準確性上受到了一定的限制。

2.觸發器方式(又稱快照式)

在抽取表上建立需要的觸發器,一般需要建立插入、修改、刪除三個觸發器,每當表中的資料發生變化時,就被相應的觸發器將變化寫入乙個臨時表,抽取執行緒從臨時表中抽取資料,臨時表中抽取過的資料被標記或刪除。

優點:資料抽取效能高,etl載入規則簡單,速度快,不需要修改業務系統表結構,可以實現資料的遞增載入。

缺點:要求業務表建立觸發器,對業務系統有一定的影響。

3.全量刪除插入方式

每次先清空目標表資料,然後全量載入資料。

優點:載入規則簡單,速度快。

缺點:出現問題不容易查詢,效能慢

4.全表比對方式

5.日誌表方式

在業務系統中新增系統日誌表,當業務資料發生變化時,更新維護日誌表內容,當作etl載入時,通過讀日誌表資料決定載入哪些資料及如何載入。

優點:不需要修改業務系統表結構,源資料抽取清楚,速度較快。可以實現資料的遞增載入。

缺點:日誌表維護需要由業務系統完成,需要對業務系統業務操作程式作修改,記錄日誌資訊。日誌表維護較為麻煩,對原有系統有較大影響。工作量較大,改動較大,有一定風險。

目前我們用的就是時間戳方式,採取t+1取數方式,即今天凌晨獲取昨天的業務資料,然後將昨天的業務資料的增量抽取過來。

這種方式效能比較好,但是delete和update操作時,不容易獲取,因此出現過幾個錯誤。再就是,對於時效性來說,一定要保證時間戳的抽取正確。

三、目前常用的載入策略有如下幾種:

1) trunctae and insert.直接清空目標表,然後把新的資料載入進去。(日全量規則經常採用此方法)

2) deldte and insert.先根據規則清除當天的記錄,然後把當天的新資料追加進去。(日增量規則經常採用此方法)

3) update and insert.用新資料與目標表中的歷史資料進行比較,有變化的則更新,新記錄則直接插入到目標表中。(暫時沒有用到)

4) keep history change.保持歷史的變化,通常是拉鍊記歷史的方式實現。(暫時沒有用過)

幾種增量抽取方法優劣對比

注意:在我從事的etl工作中,大部分都是採用時間戳方式進行增量抽取,如銀行業務,vt新開戶,使用時間戳方式,可以在固定時間內,組織人員進行資料抽取,進行整合後,載入到目標系統。

觸發器方式,雖然可以自動進行抽取,但是執行頻率過多,影響效率!第三種全量刪除插入方式對於大資料量來說是非常不可取的,尤其是對於一些銀行、電信行業,因為資料全量比較大,所以進行增量校對是比較耗時的,總起來說,個人趨向使用時間戳方式進行增量抽取。

ETL增量抽取方案

一 etl體系結構 資料庫 抽取 轉換 載入 目的資料來源 二 etl抽取方案 1 全量抽取 全量抽取類似於資料遷移或資料複製,它將資料來源中的表或檢視的資料原封不動的從資料庫中抽取出來,並轉換成自己的etl工具可以識別的格式,全量抽取比較簡單。全量抽取一般只在系統初始化時使用,全量一次後,就要每天...

ETL增量抽取方式

增量是以乙個時間段為計量單位,記錄該段時間內較以前增加的資料記錄。增量抽取是將該段時間內增長的記錄查詢出來。增量抽取一般有三種抽取模式,用於捕獲源系統新增的資料到系目標庫中 1 時間戳方式,要求源表中存在乙個或多個字段 時間戳 其值隨著新紀錄的增加而不斷增加,執行資料抽取時,程式通過時間戳對資料進行...

ETL之增量抽取方式

例如,對於源表為oracle型別的資料庫,採用觸發器方式進行增量資料捕獲的過程如下 這樣,對錶t的所有dml操作就記錄在增量日誌表dml log中,注意增量日誌表中並沒有完全記錄增量資料本身,只是記錄了增量資料的 進行增量etl時,只需要根據增量日誌表中的記錄情況,反查源表得到真正的增量資料。sql...