一、增量加載的分類
- 更新谬墙、插入:Overwrite
- 刪除今布、更新、插入:Delete and Overwrite
二拭抬、刪除情況下的更新策略
- 在數(shù)據(jù)塊中包含需要刪除的數(shù)據(jù)部默。
- 指定刪除條件,獨立處理造虎,需要考慮參數(shù)如何計算傅蹂、存儲。
2.1. 比較符:>= > = < <= in like 等算凿。
2.2 值類型:數(shù)組份蝴、基礎(chǔ)類型。
三氓轰、一些心得和經(jīng)驗
最早的時候婚夫,初步接觸增量加載是通過SSIS接觸的,使用過一個方案署鸡,流程如下:
- 將本次執(zhí)行時間定義為時間戳案糙,從數(shù)據(jù)庫讀入上次時間戳
- 加載上次時間戳到本次時間戳的數(shù)據(jù)限嫌,使用merge into語句來處理insert、update时捌、delete
- 本次時間戳改為上次時間戳怒医,存入數(shù)據(jù)庫
這個方案其實是存在問題的,主要有兩種情況:
- 異常管控比較低級奢讨,出現(xiàn)問題只能自己手動去處理失敗的ETL稚叹,無法保證異常情況下的數(shù)據(jù)一致性,異常發(fā)生下一次執(zhí)行數(shù)據(jù)不出問題才是重要的拿诸。
- ETL對生產(chǎn)的影響王凑。
一個好的增量方案鞍时,應(yīng)該能夠做數(shù)據(jù)處理時保證不影響生產(chǎn)寻咒,且能有異常發(fā)生下較好的數(shù)據(jù)一致性保證策略瞳腌,這才是重要的事情斟薇。
- 盡量使用備表替換的策略抢肛。
- 增量盡量不要使用數(shù)據(jù)庫存儲的時間戳僵闯,而要依靠入庫的數(shù)據(jù)進(jìn)行開始節(jié)點判斷的策略翔横。
- 在前兩者的基礎(chǔ)上對最終進(jìn)行生產(chǎn)替換的異常做詳細(xì)分類缅刽,并做相應(yīng)的處理方案啊掏。
- 所有的目標(biāo)都是數(shù)據(jù)一致性、增量加載方法化衰猛。