1.1 版本
| FineDataLink 版本 | 功能變動 |
|---|---|
| 3.3 | 「資料轉換」節點新增算子「比對刪除」,可將來源表中刪除資料的操作同步到目標表 |
| 4.0.18 | 「資料轉換」節點移除「比對刪除」算子,新增「資料比對」算子 |
| 4.0.20 | 新增「比對表傳回欄位」選項,可選項為比對表的所有欄位。一般在當「資料比對」算子連結的比對表算子類型為「簡道雲輸入」算子時,才會設定該選項 |
| 4.0.28 |
|
| 4.1.5.3 |
|
1.2 功能簡介
「資料比對」算子透過對比來源表資料和目標表資料,可對資料的增刪改進行標記。
同步資料時,來源表資料會新增、修改、刪除,此時如果需要目標表資料也做這些操作,可透過「資料比對+DB表匯出」或者「資料比對+簡道雲匯出」的組合方式,完成增量插入、刪除、更新的操作。
注:若資料量較大,建議使用 實時管道 功能,實現資料的實時同步。
注:「資料比對」算子後,不一定接資料匯出算子,使用者可接入「資料過濾」算子,使用標記欄位篩選出新增/修改/刪除的資料,再接匯出算子將新增/修改/刪除資料單獨寫入到另外一張表中。

2. 使用須知
1)資料存在新增/修改/刪除時,根據使用者的資料結構和更新需求,我們推薦不同的方案。詳情請參見:資料更新專題概述
若需要使用「資料比對」算子實現資料的增刪改:
當來源表和目標表至少有一個為簡道雲資料時,使用「資料比對+簡道雲匯出」的組合方式實現。
當來源表和目標表都為資料庫資料時,使用「資料比對+DB表匯出」的組合方式實現。
2)4.0.28 及之後版本,若使用者為以下場景時(來源表和目標表都不是簡道雲資料):
沒有標識欄位,希望將篩選出的資料,做追加或者更新或者刪除操作(無標識欄位時僅允許選擇一種操作類型)。
資料已經有了標識欄位和標識值,需要對資料進行追加/更新/刪除操作。
可透過「資料同步」節點實現,詳情請參見:資料同步-基於標識欄位,新增/修改/刪除資料
3)未升級到 4.0.18 及之後版本的使用者,請參見文檔:比對刪除
4)「資料比對+DB表匯出/簡道雲匯出」實現資料的增刪改時,刪除資料可選擇邏輯刪除和物理刪除兩種方式:
邏輯刪除:不實際刪除資料,標記刪除資料。
物理刪除:實際刪除資料。
兩種刪除方式的具體效果可參見:物理刪除和邏輯刪除的差別
3. 使用流程
3.1 獲取來源表和目標表資料
設定 2 個輸入算子,獲取來源表和目標表的資料。需注意,只能設定 2 個輸入算子,兩個輸入算子均需要配置,不能為同一張資料表。
在上方的輸入算子,在「資料比對」算子中,自動作為左表(即來源表);在下方的輸入算子,在「資料比對」算子中,自動作為右表(即目標表)。4.1.5.3 及之後的版本,使用者可一鍵互換左右表位置。
「資料比對」算子使用來源表中的資料對比目標表中的資料,標記出增刪改的資料。如下圖所示:

注:來源表和目標表中,必須要有標記資料唯一性的欄位(若沒有物理主鍵,可在該算子中設定邏輯主鍵),保證資料是唯一的。
3.2 標記增刪改資料
使用「資料比對」算子,篩選出增刪改資料。
設定「資料比對」算子,一般只需要設定三項:主鍵映射、比對欄位、標識關係。

3.2.1 比對源
自動生成,使用者可自行調換左右表。
3.2.2 主鍵映射
需要在「主鍵映射」處選擇欄位作為主鍵,便於確定資料唯一性。
設定介面如下圖所示:

若右表無物理主鍵,點選「主鍵映射」右側的「編輯」按鈕,需要在左表和右表中選擇欄位作為邏輯主鍵。「邏輯主鍵」的值不建議為空或者相同。
若目標表存在物理主鍵,點選「主鍵映射」右側的「編輯」按鈕,右表預設填充物理主鍵,只需選擇左表欄位。
可直接在主鍵映射欄刪除欄位。

3.2.3 比對欄位
支援多選比對欄位。設定介面如下圖所示:
用於對比兩張表中該欄位的差異,基於比較結果會自動生成標記列 fdl_comparison_type ,該列可以在後續「DB表匯出」算子的「欄位映射」中刪除。

1)右表欄位不能被重複選擇多次。
2)若某個欄位被設定為比對欄位:可以識別出該欄位對應資料的新增、更新、刪除;
若某個欄位沒有被設定為比對欄位:能識別出該欄位的增加和刪除,但這個欄位若存在更新,將不能被識別。
3.2.4 標識關係
標記列 fdl_comparison_type 的值,用於標記兩張表中同一個欄位的差異。
預設值為:Identical(相同)、Changed(更新)、Added(新增)、Removed(刪除),可以自訂標識關係值。
3.2.5 比對結果表欄位
1)當「資料比對」算子連結的比對表算子類型為 簡道雲輸入 時,比對表傳回欄位值預設選擇_id。如下圖所示:

2)遇到同名欄位時,比對表傳回欄位下拉時對重名欄位名後綴自動加1,格式為:column1、column2、column3。
3)使用場景請參見:簡道雲匯出
3.2.6 資料預覽
「資料預覽」處,可查看標記的資料。對比兩張表中該欄位的差異,基於比較結果會自動生成標記列 fdl_comparison_type ,如下圖所示:
若勾選了比對結果表欄位,則右表欄位會顯示綠色。

| 標識欄 | 顏色標識 |
|---|---|
| Changed(更新) | 黃色 |
| Added(新增) | 紫色 |
| Removed(刪除) | 紅色 |
4.1.5.3 版本新增查看比對詳情,點選「比對詳情」即可看到「邏輯主鍵」和「比對欄位」的比對詳情,如下圖所示:

注:「資料預覽」Tab 中,預覽時只會取前 5000 行資料。如果來源表前 5000 行資料中的某些資料,在目標表的 5000 行資料之後存在,在「資料預覽」Tab 中,標記列對應的值將會是 Added,但實際上應該是 Identical。但「資料比對」算子運作時,是比對所有資料的,使用者無需擔心,「資料預覽」Tab 未全量讀取資料的問題,產品未來考慮優化。
3.3 資料匯出
3.3.1 資料去向與映射
「DB表匯出」算子的「資料去向與映射」中:
1)如果寫入方式中,選擇物理刪除,可刪除標記列 fdl_comparison_type。

2)如果寫入方式中,選擇邏輯刪除,目標表中需要新增一個欄位作為標記列,或者指定一個已經存在的列作為標記列;來源表欄位 fdl_comparison_type 映射到目標表中的標記列欄位。

3.3.2 寫入方式
「DB表匯出」算子中,寫入方式選擇「基於標識欄位,追加/更新/刪除資料」,可選擇邏輯刪除還是物理刪除。「標識值」需要與「資料比對」算子中的「標識關係」值一一對應。「主鍵映射」與「資料比對」算子的相同即可。
注:「DB表匯出」算子詳細介紹請參見:DB表匯出

4. 使用範例
| 說明 | 文檔 |
|---|---|
| 以一個簡單範例介紹「資料比對」算子的使用 | 資料比對典型範例 |
某公司大量使用簡道雲表單進行業務填報,每天產生大量資料。為了與其他系統資料聯合使用,這些資料需要定期同步至指定資料庫中 根據簡道雲錄入表單資料的增刪改情況,有以下幾種情況:
| 簡道雲資料增刪改同步至資料庫 |
| 使用者有些日程資訊是透過 FR 填報到資料庫或者儲存到簡道雲中,原始資訊可能會被其他部門進行增刪改操作,因此使用者希望將日程資料在企業微信中記錄,方便在活動開始前對相關的同學做到自動提醒 | 活動日程資訊更新至企業微信日程 |
| A、B兩表不一樣的欄位,寫入到C表中 | A、B兩表使用「資料比對」算子對比後,可後接一個「資料過濾」算子,過濾出變更的資料,寫入到C表 |
