1. 概述
本文以 MySQL 資料同步為例,將 demotest 資料庫中的「訂單資訊」、「庫存資訊」、「成本中心對照表」實時同步至 demo1 資料庫中。
2. 操作步驟
2.1 準備工作
需準備一個獨立部署的 FDL 工程,該工程已註冊 資料管道相關功能點
注:對外 Demo 平台上已準備好環境,可到 對外 Demo 平台 上從本文 2.2 節步驟開始建立管道任務。
步驟 |
---|
步驟一:資料源配置 根據實際情況選擇源端和目標端資料庫,資料管道支援的資料庫請參見:資料管道支援的資料源類型 在資料連結管理中配置源端和目標端的資料連結,便於在管道任務配置程式中,透過選擇資料源名稱來控制同步任務的讀取和寫入資料庫。詳情請參見:建立並管理資料源 |
步驟二:準備資料庫環境 基於需要設定資料管道任務的資料源,授予資料源配置的帳號在資料庫進行相應操作的權限。詳情請參見:数据库环境准备概述 |
步驟三:管道任務環境準備 |
步驟四:分配管道任務權限 若需要使用資料管道的使用者不是超級管理者,則需要為對應使用者分配資料管道的使用權限。詳情請參見:管道任務管理權限 注:管道任務的來源端若為 MySQL、SQLServer、Oracle,若同一個庫中的多張表都需要實時同步,建議在一個管道任務中實現;若同一個庫中的多張表,每張表單獨配置一個管道任務,資料庫將承受較大壓力。 |
2.2 建立管道任務
進入 FDL 工程,點選「資料管道」,建立一個管道任務。如下圖所示:
2.3 配置管道任務
2.3.1 選擇資料來源
資料源選擇 fdl_demotest 資料連結後,點選右側的「資料源權限檢查」按鈕,可以查看資料源是否有日誌讀取權限。
同步類型選擇「存量+增量同步」,先對所有存量資料同步,然後持續同步新增變化。
同步物件選擇 demotest 資料庫中的「訂單資訊」、「庫存資訊」、「成本中心對照表」。如下圖所示:
更多設定項介紹請參見:配置管道任務-選擇資料來源
2.3.2 選擇去向
更多設定項介紹請參見:配置管道任務-選擇資料去向
1)如下圖所示:
步驟 | 含義 |
---|---|
「庫」設定為demo1 | 資料實時同步到 demo1 資料庫中 |
源端刪除資料,選擇「目標端執行邏輯刪除」 | 來源表刪除資料,目標端不實際刪除資料;目標表將新增一個名稱為_fdl_marked_deleted的布林型欄位(欄位預設為false),用於記錄資料刪除狀態。來源資料表刪除了一筆資料,此時同步至目標表,目標表不進行物理刪除,而是將_fdl_marked_deleted欄位更新為 true 。 |
開啟「同步時標記時間戳」按鈕 | 所有目標表將新增一個名稱為_fdl_update_timestamp的長整數型態欄位,以毫秒級時間戳的形式記錄資料在資料庫中實際新增和更新的時間(資料庫所在時間) |
開啟「同步源表結構變化」按鈕 | 資料管道任務支援同步源庫DDL功能,開啟該按鈕後,在源庫發生DDL(刪除表、新增欄位、刪除欄位、修改欄位名稱、修改欄位類型(長度修改 & 相容類型修改))時,管道任務可以自動同步這些來源端變化至目標端,不需人為介入修改目標表結構 |
2)點選「下一步」。
2.3.3 表欄位映射
1)我們發現,目標表中表名稱標紅,這是因為目標表名稱中不能包含中文、特殊字元。
依次為待同步的三張表:修改目標表名稱,為目標表設定邏輯主鍵,如下圖所示:
「成本中心對照表」對應的目標表為cost,「訂單資訊」表對應的目標表為order,「庫存資訊」表對應的目標表為stock_test。
2.3.2 節步驟中,我們開啟了「同步時標記時間戳」按鈕、「目標端執行邏輯刪除」,目標表中新增_fdl_update_timestamp、_fdl_marked_deleted欄位。如下圖所示:
本步驟中,目標表可以選擇已存在表、可批量修改表名、主鍵相關說明等,詳情請參見:配置管道任務-表欄位映射
2)點選「下一步」。
2.3.4 管道控制
如下圖所示:
更多設定項介紹請參見:配置管道任務-管道控制
步驟 | 含義 |
---|---|
髒資料臨界值為 1000 行 | 當某次任務運作期間髒資料達到1000條後,任務會異常中止 注1:限制最多10w行,且重啟任務後,會重置臨界值統計。 注2:若需要對產生的髒資料進行處理,詳情參見:髒資料處理 |
失敗重試:重跑 3 次,每次間隔 2 分鐘 | 管道任務失敗後,重試 3 次,每次間隔 2 分鐘 |
結果通知 | 將源表結構變化、異常或髒資料導致的任務終止資訊以郵件形式通知用戶 |
日誌等級設定 | INFO 為普通資訊,用於記錄運作狀態或重要事件,可列印詳細的日誌,供使用者查看 |
2.4 效果查看
1)可查看讀取行數、寫入行數。如下圖所示:
可看到「庫存資訊」表同步時產生 1 條髒資料,可參考 文檔 對髒資料進行處理。
2)demo1 資料庫中可查看到已同步的 3 張表。
「成本中心對照表」對應的目標表 cost 表資訊如下圖所示:
3)demotest 資料庫中的「成本中心對照表」中:
刪除 collid 為 1.01.02 的資料。
collid 為 1.01.03 的資料,fname 改為產品研發部。
新增 test 欄位。
demo1 資料庫中的 cost 表如下圖所示:
QQ 信箱收到源表結構變化的資訊:
2.5 管道任務維運
點選「任務維運>管道任務>任務管理」,可查看任務運作狀態、資料同步效能、檢查異常情況、以及對異常進行處理等。如下圖所示:
詳情請參見:管道任务运维