最新历史版本 :資料比對典型範例 返回文檔
編輯時間: 內容長度:图片数:目录数: 修改原因:

目錄:

1. 概述编辑

数据比对功能说明 文檔中介紹了「資料比對」算子的功能,本文以一個簡單範例介紹該算子的使用。

2. 範例编辑

範例demo詳情參見:https://demo.finedatalink.com/ 「資料轉換-資料比對-複本」

2.1 場景模擬

範例資料下載:fsale.xlsfsalecopy.xls

需要定期將 fsale 表中的資料同步到 fsalecopy 表中。

fsalecopy 表中的資料如下圖所示:

1678327226218763.png

現在 fsale 表中刪除了「甘蔗」和「凍梨」的資料,增加了「葡萄」的資料,更新了「菠蘿」的資料。希望將最新資料同步到 fsalecopy 表中去。

1678327234860886.png

2.2 設定來源表和目標表

本節取出來源表和目標表的資料,方便後續在「資料比對」算子中透過比對標記出增刪改的資料。

需注意的是,2 個輸入/計算算子誰在位置上方,即為來源表。因此,本文範例中取出 fsale 表資料的算子位置在上方,使用 fsale 表資料比對 fsalecopy 表資料。

2.2.1 建立任務

建立一個定時任務,將一個資料轉換節點拖到設計介面。如下圖所示:

2.2.2 設定來源表

1)點選「資料轉換」節點,將一個DB表輸入算子拖到資料轉換的設計介面,在節點資訊」Tab 下為其重新命名為來源表。如下圖所示:

2)如下圖設定資料來源,SQL 語句取出 fsale 表中所有資料。

2.2.3 設定目標表

重新整理增一個「DB表輸入」算子,重新命名為「目標表」。SQL 語句取出 fsalecopy 表中所有資料。如下圖所示:

2.3 設定資料比對

1)新增一個資料比對算子,並使用線條將它上游的兩個DB表輸入算子相連。如下圖所示:

2)資料比對算子中,設定邏輯主鍵比對欄位即可。如下圖所示:

各設定項介紹如下表所示:

設定項
說明本文範例
比對源
自動生成
-
邏輯主鍵用於在兩張表中識別同一筆資料,即透過「邏輯主鍵」將來源表和目標表的資料對應起來,所以「邏輯主鍵」的值不建議為空或者相同ID
比對欄位

用於對比兩張表中該欄位的差異,基於比較結果會自動生成標記列 fdl_comparison_type ,該列可以在「DB表匯出」算子的「欄位映射」中刪除

若某個欄位被設定為比對欄位:可以識別出該欄位對應資料的新增、更新、刪除

若某個欄位沒有被設定為比對欄位:能識別出該欄位的增加和刪除,但這個欄位若存在更新,將不能被識別

本文範例中,變化的資料欄為 sales 列,所以比對欄位設定為 sales 
標識關係標記列 fdl_comparison_type 的值,用於標記兩張表中同一個欄位的差異。預設值為:Identical(相同)、Changed(更新)、Added(新增)、Removed(刪除),可以自訂標識關係值不做修改,預設即可
比對表傳回欄位1)可選項為比對表的所有欄位,一般情況下預設為空,無需設定

2)當「資料比對」算子連結的比對表算子類型為 簡道雲輸入 時,需要設定比對表傳回欄位的值為_id

使用場景請參見:簡道雲匯出

無需設定

資料預覽Tab 頁如下圖所示:

2.4 設定 DB 表匯出

1)新增「DB表匯出」算子,使用連結線與「資料比對」算子相連。

2)設定「DB表匯出」算子,最新資料存到目標表 fsalecopy 中,欄位映射選擇同名映射,刪除目標表欄位 fdl_comparison_type,如下圖所示:

3)點選「寫入方式」,寫入方式選擇「插入/更新/刪除資料」,寫入方式選擇「物理刪除」,邏輯主鍵選擇 ID ,標識欄位選擇 fdl_comparison_type ,標識值需要與「資料比對」算子的「標識關係」值一一對應。如下圖所示:

4)點選右上角「儲存」按鈕。

2.5 運作任務

點選右上角運作,日誌出現執行成功資訊表示任務成功運作。如下圖所示:

可以看到 fsalecopy 表與 fsale 表資料保持一致。如下圖所示: