增刪改資料同步至目標表(MD5校驗)

  • 文檔創建者:Roxy
  • 編輯次數:6
  • 最近更新:Nikozhan 于 2025-07-28
  • 1. 概述

    1.1 應用場景

    使用者在定時任務進行資料同步時,如果源資料庫同時有增刪改變化,且沒有時間戳,可以直接使用数据比对,但是如果資料量很大,想要提高同步效率,就可以使用本文的方案進行資料同步。

    1.2 實現思路

    來源表製造比對欄位「md5」,目標表也新增「md5」欄位,並使用資料比對進行增刪改變化標識,最終寫入資料表中。

    • 主鍵相同,MD5不同,則更新;

    • 主鍵不同,來源有但目標無,則新增;

    • 主鍵不同,來源無但目標有,則刪除。

    說明增加 MD5 校驗列,直接作為列儲存比對效率較高。

    demo 範例詳情請參見:https://demo.finedatalink.com/  增刪改資料同步至目標表(MD5校驗)

    2. 操作步驟

    1)建立定時任務後,選擇「資料轉換」節點,進入編輯介面,新增一個 DB輸入算子,取出來源表資料,同時新增一個 MD5 欄位,方便後續作為比對欄位,如下圖所示:

    SELECT 
      *,
      MD5(CONCAT(order_id,order_business_date,order_status,product_name,user_name,order_quantity,order_price)) AS order_md5,
      NOW() AS etl_time
    FROM `demotest`.`F_ORDER_NOTIMESTAMP_MD5_FROM`

    得到如下結果:

    2)新增一個 DB輸入算子,取出目標表資料,目標表需要另外增加一個MD5 欄位,如下圖所示:

    注:如果原先沒有目標表,則需要手動在目標資料庫建立一個,除了業務欄位還需要建立一個MD5 欄位,方便後續作為比對欄位。

    3)使用資料比對算子,比對來源表和目標表,設定邏輯主鍵為 order_id,比對欄位為 order_md5,如下圖所示:

    4)使用DB匯出算子,將比對結果寫入目標表,如下圖所示:

    5)設定寫入方式和邏輯主鍵,如下圖所示:

    運作任務後即可看到目標表同步了來源表的變化。



    附件列表


    主題: 資料同步專題
    已經是第一篇
    已經是最後一篇
    • 有幫助
    • 沒幫助
    • 只是瀏覽
    • 评价文档,奖励 1 ~ 100 随机 F 豆!