历史版本13 :資料同步-寫入方式 返回文檔
編輯時間: 內容長度:图片数:目录数: 修改原因:

目錄:

1. 概述编辑

1.1 版本

FineDataLink版本
功能說明
--
4.0.181)移除了「比對欄位」和「更新策略」

2)寫入方式「直接將資料寫入目標表」,更新為「追加寫入資料」

4.0.28
  • 調整「寫入方式」和「欄位映射」的順序

  • 寫入方式優化,分為三種:直接將資料寫入目標表清空目標表,再寫入資料基於標識欄位,追加/更新/刪除資料

4.0.29
  • 主鍵衝突策略中主鍵相同,停止寫入並報錯修改為主鍵相同,記錄為髒數

  • 寫入方式為「清空目標表,再寫入資料」時邏輯優化

4.1.9.1「追加/更新/寫入資料」文案與「資料比對」統一,修改為「基於標識欄位,新增/修改/刪除欄位」

1.2 功能簡介

本文介紹「資料同步」設定寫入方式或者使用「資料轉換-DB表匯出」設定寫入方式時配置項說明。

「寫入方式」介面如下圖所示:

寫入方式有三種:

注1:不同資料庫支援的寫入方式有部分限制,具體請參見:定時任務資料源功能限制說明

注2:4.1.3 及之後版本,目標表為 Hive、星環 TRANSWARP INCEPTOR 時,支援分割槽寫入。詳情請參見:讀取、建立、寫入分割槽表

寫入方式
說明
直接將資料寫入目標表目標表無物理主鍵且未配置邏輯主鍵映射:直接將資料寫入目標表

目標表有物理主鍵或已配置邏輯主鍵映射:基於主鍵比對資料行的差異:主鍵相同、主鍵不同

1)主鍵不同的資料行:追加寫入

2)主鍵相同的資料行,提供三種寫入策略:

  • 主鍵相同,改寫目標表的資料

  • 主鍵相同,忽略輸入源的資料

  • 主鍵相同,記錄為髒資料

清空目標表,再寫入資料直接先把目標表清空掉,然後再寫入資料;有無主鍵均可以選擇
基於標識欄位,新增/修改/刪除資料

1)目標表無物理主鍵:寫入方式中勾選了「更新」或「刪除」時,「主鍵映射」處不允許為空,需設定邏輯主鍵

2)目標表有物理主鍵或已配置邏輯主鍵映射,識別資料行的標識:相同、新增、修改、刪除:

  • 相同的資料行:忽略

  • 新增的資料行:新增

  • 修改的資料行:更新

  • 刪除的資料行:刪除

2. 直接將資料寫入目標表编辑

2.1 主鍵映射

建立「來源端-目標端」的資料行對應關係,設定步驟如下圖所示:

1)目標表中若存在物理主鍵/自動建表配置了主鍵,將直接根據目標表物理主鍵,自動生成主鍵映射行以確定資料唯一性。

2)目標表中若無物理主鍵:

  • 目標表是自動建表生成的:自動建表時,在「欄位映射」處可以手動設定單個或多個欄位為物理主鍵。

  • 目標表是已存在表:「主鍵映射」處,選擇欄位作為邏輯主鍵映射以確定資料唯一性,若為空則直接追加寫入資料

2.2 主鍵衝突策略

注:目標端為 Hive 時,不支援「主鍵衝突策略」。

滿足以下任一條件,需要選擇「主鍵衝突策略」:

  • 目標表存在物理主鍵。

  • 目標表不存在物理主鍵,但配置了邏輯主鍵。

主鍵衝突策略有三種:

  • 主鍵相同,改寫目標表的資料。

  • 主鍵相同,忽略輸入源的資料。

  • 主鍵相同,記錄為髒資料。

3. 清空目標表,再寫入資料编辑

直接先把目標表清空掉,然後再寫入資料;有無主鍵均可以選擇。

目標端為簡道雲時,不支援該寫入方式。

4.0.29 以及之後的版本:

1)當來源表沒有主鍵時,目標表存在主鍵,進行清表重寫時,先清空目標表,再對目標表進行寫入;

2)如果此時來源表存在兩條主鍵相同的資料,後一條會改寫前一條的記錄;

4. 基於標識欄位,新增/修改/刪除資料编辑

4.1 功能說明

注1:目標端為 Hive 時,不支援該寫入方式。

注2:新增/更新/刪除可勾選任意一個或多個。

寫入方式:

寫入方式勾選「刪除」時,可選擇物理刪除/邏輯刪除:

  • 邏輯刪除:不實際刪除資料,標記刪除資料。

  • 物理刪除:實際刪除資料。

兩種刪除方式的具體效果可參見:物理删除和逻辑删除的区别

標識欄位/標識值:

1)透過標識欄位和標識值篩選出需要新增/更新/刪除的資料。

2)若使用了「数据比对」算子,則自動讀取 fdl_comparison_type 作為標識欄位,且自動讀取標識欄位的值作為標識值。

3)表匯出只選擇新增/更新/刪除其中一個時,「標識欄位」可不填,不填則對讀取的所有資料進行新增或更新或刪除。

主鍵映射:

詳情請參考本文 2.1 節說明。

1)出現條件:寫入方式中勾選了「更新」或「刪除」。

2)寫入方式中勾選了「更新」或「刪除」時,「主鍵映射」處不允許為空。

4.2 最佳實踐

1)通常数据比对+DB 表匯出結合使用,詳情參見:資料比對典型範例

2)單個資料同步節點使用場景:

  • 使用者希望將篩選出的資料,只做新增/更新/刪除操作。

  • 使用者資料已經有了標識欄位和標識值,需要對資料進行新增/更新/刪除操作。

詳情請參見:資料同步-基於標識欄位,新增/更新/刪除資料

5. 注意事項编辑

比如來源表和目標表都有 D 列的部分資料為 NULL:

設定「寫入方式」為追加寫入且 A、B、C、D 都是邏輯主鍵,如下圖所示:

此時運作結果為若 D 列不為 NULL,則改寫目標表資料,若有一欄,此處為 D 列為 NULL,則不會遵循改寫邏輯,會追加寫入。