etl 增量對比解決方案 etl-engine 如何實現增量對比

hw2499發表於2023-03-15

什麼是增量對比

  • 增量是相對於全量來說的,它們都是處於“同步資料”這個場景中。
    全量同步實現的邏輯是不管原表與目標表資料是否發生過變數,都要定期將原表資料全部覆蓋到目標表,以保證目標表資料的完整性。

  • 增量對比實現的邏輯是將原表與目標表的資料透過演算法進行對比,然後只將差異資料(增加、刪除、修改)同步到目標表,在最小化操作目標表的同時還保證了目標表資料的完整性。

增量對比的必要性

模擬一個使用場景,業務系統A表中的資料要同步到資料倉儲B表中(最簡單的樣例是A表與B表結構完全一樣),

  • 全量同步實現方式:

把A表資料全部同步到B表中,目的是讓兩表資料始終保持一致,這種方式一般都是採用簡單粗暴的方式來實現,實現起來就是先刪除B表資料,然後再將A表資料全部插入到B表,

  • 優點是操作簡單,缺點就是資料量大時(假設A表有1億條記錄,其中只有一條記錄發生變化),也要先刪除B表中的1億條記錄,然後再將A表中的1億條記錄插入到B表中 ,很顯然全量同步方式已經不適合了。

    增量對比實現方式:

1、選擇出A表與B表中業務屬性相同的欄位作為對比的主鍵;
2、根據主鍵進行兩表的對比,如果主鍵不同,證明A表中有資料刪除或新增;
3、如果主鍵相同,再對比其它欄位,如果其它欄位都相同證明資料未發生變化,否則A表中有資料做了修改。
4、將差異資料同步到B表中。
優點是隻將差異化資料同步到B表中,缺點是要事先按條件進行篩選對比的記錄集(事先做好充分的業務分析),否則要對比的資料量過大會佔用大量記憶體進行運算,並且等待對比結果的時間也很長(對比時間的長短取決於對比資料量的大小)。


etl-engine增量對比節點

etl-engine 提供的增量對比節點實現了上述增量演算法,只需要按配置要求進行相關配置,很容易實現增量對比效果並直接將差異資料入庫到目標表(或轉存差異資料),提高了開發人員及實施人員的工作效率。

增量對比場景1

增量對比場景2

參考資料

  [免費下載]()
  [etl-engine使用手冊]()
  [etl-crontab使用手冊](/wiki/etl-crontab%E8%B0%83%E5%BA%A6)
  [嵌入指令碼開發](/wiki/%E5%B5%8C%E5%85%A5%E8%84%9A%E6%9C%AC%E5%BC%80%E5%8F%91)
  [etl-engine配置樣例](/wiki/etl-engine%E4%BD%BF%E7%94%A8%E6%A0%B7%E4%BE%8B)

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70024931/viewspace-2939836/,如需轉載,請註明出處,否則將追究法律責任。

相關文章