增量加載方案

一、增量加載的分類
  1. 更新、插入:Overwrite
  2. 刪除、更新、插入:Delete and Overwrite
二、刪除情況下的更新策略
  1. 在數(shù)據(jù)塊中包含需要刪除的數(shù)據(jù)。
  2. 指定刪除條件,獨立處理,需要考慮參數(shù)如何計算、存儲。
    2.1. 比較符:>= > = < <= in like 等。
    2.2 值類型:數(shù)組、基礎(chǔ)類型。
三、一些心得和經(jīng)驗

最早的時候,初步接觸增量加載是通過SSIS接觸的,使用過一個方案,流程如下:

  1. 將本次執(zhí)行時間定義為時間戳,從數(shù)據(jù)庫讀入上次時間戳
  2. 加載上次時間戳到本次時間戳的數(shù)據(jù),使用merge into語句來處理insert、update、delete
  3. 本次時間戳改為上次時間戳,存入數(shù)據(jù)庫

這個方案其實是存在問題的,主要有兩種情況:

  1. 異常管控比較低級,出現(xiàn)問題只能自己手動去處理失敗的ETL,無法保證異常情況下的數(shù)據(jù)一致性,異常發(fā)生下一次執(zhí)行數(shù)據(jù)不出問題才是重要的。
  2. ETL對生產(chǎn)的影響。

一個好的增量方案,應(yīng)該能夠做數(shù)據(jù)處理時保證不影響生產(chǎn),且能有異常發(fā)生下較好的數(shù)據(jù)一致性保證策略,這才是重要的事情。

  1. 盡量使用備表替換的策略。
  2. 增量盡量不要使用數(shù)據(jù)庫存儲的時間戳,而要依靠入庫的數(shù)據(jù)進行開始節(jié)點判斷的策略。
  3. 在前兩者的基礎(chǔ)上對最終進行生產(chǎn)替換的異常做詳細分類,并做相應(yīng)的處理方案。
  4. 所有的目標都是數(shù)據(jù)一致性、增量加載方法化。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容