1. 概述
1.1 版本
FineDataLink版本 | 功能變動 |
---|---|
4.1.5.4 | - |
4.1.8.2 | DB表匯出支援來源欄位結構變化後提示更新欄位映射,詳情參見本文 2.2 節 |
4.1.9.3 |
|
4.1.11.2 | YMatrix 支援部分定時任務DDL同步的功能 |
4.1.14.1 |
|
1.2 應用場景
使用者使用資料開發模組設定定時同步任務,想要感知到定時任務同步時的來源端資料表 DDL 變化,能夠即時通知給使用者,並進行定時任務處理。
1.3 功能簡介
當進行定時任務開發時,能夠提示來源端資料表的 DDL 變化,並且將變化通知給指定使用者;
同時可以直接在任務中對目標表進行欄位處理,更新目標表結構。
2. 功能說明
2.1 源表結構變化監測
勾選後,節點每次執行時,將獲取源端表結構,並與當前節點配置的表結構進行比對,判斷出源表結構變化。使用者可在「任務控制」中設定「結果通知」,即可在變化後自動通知給指定使用者,使用者即可手動進行任務調整。
類目 | 說明 |
---|---|
支援使用的資料源 | 來源資料源:SQLServer、Oracle、PostgreSQL、MySQL 目標資料源:ClickHouse、GaussDB、Greenplum、MySQL、Oracle、PostgreSQL、Seabox、SQLServer、TiDB、RedShift、YMatrix、OceanBase(Oracle模式) |
使用條件 | 需要在資料同步節點,資料來源-配置方式選擇「選表」 |
會感知的源表結構變化:源表新增欄位、源表刪除欄位、源表重新命名欄位、源表修改欄位類型或長度。
2.2 更新欄位映射
當資料同步「資料來源」選擇 SQLServer、Oracle、PostgreSQL、MySQL 時,若來源表結構變化,則會提示使用者更新欄位映射,如下圖所示:
注:DB表匯出同樣支援該功能。
點選「更新欄位映射」即可查看到增刪改欄位的變化情況,同時點選確認即可根據來源表欄位變化更新欄位映射,如下圖所示:
更新欄位映射分如下所示:
來源表欄位變化 | 更新欄位映射表 |
---|---|
刪除欄位 | 分類至「刪除欄位」下 |
新增欄位 | 分類至「新增欄位」下 |
修改欄位名稱 | 原名稱欄位分類至「刪除欄位」下,新名稱欄位分類在「新增欄位」下。 |
修改欄位類型或者長度 | 分類至「修改欄位類型/長度」下 |
2.3 更新目標表
當資料去向選擇「已存在表」時,若來源表欄位相較之前有變化,則可以對目標表進行調整,可以選擇已有目標表欄位、也可以手動輸入新欄位,確認對應映射關係變化後,即可對應生成目標表執行的DDL語句並執行。
支援對目標表建立、刪除欄位、重新命名欄位;
支援修改目標表欄位類型、長度精度;
支援為目標表配置非空、主鍵、註釋;
類目 | 說明 |
---|---|
支援使用的資料源 | 目標資料源:ClickHouse、GaussDB、Greenplum、MySQL、Oracle、PostgreSQL、Seabox、SQLServer、TiDB、RedShift、YMatrix |
使用條件 | 需要在資料同步節點,資料去向與映射-目標表選擇「已存在表」 |
3. 操作步驟
3.1 檢查源表結構
建立資料同步節點,資料來源-配置方式選擇「選表」,選擇來源表並設定資料過濾,如下圖所示:
設定「資料去向與映射」,設定目標資料表並勾選「源表結構變化監測」,並設定寫入方式,確認同步節點可正常運作同步任務,如下圖所示:
3.2 設定結果通知
為了保證 DDL 變化能通知使用者,可在「任務控制>結果通知」下設定通知情況。
當使用者在資料去向與映射中勾選了「源表結構變化監測」,即可對變化進行結果通知,如下圖所示:
在運作任務時,如果來源端發生 DDL 變化,則會在指定渠道通知設定好的指定使用者,例如設定了平台通知,則會在平台中提示,如下圖所示:
當然日誌也會提示使用者源表結構變化,若 DDL 影響實際資料寫入,則任務報錯,否則任務會正常執行。
3.3 更新欄位映射
此時使用者即可進入任務,進入「資料去向與映射」中更新欄位映射,將根據來源表欄位變化情況更新欄位映射,不會影響目標表結構,如下圖所示:
點選確認後可在查看欄位映射情況,如下圖所示:
3.4 更新目標表
當目標表選擇「已存在表」時,使用者可以點選「更新目標表」確認/補足對應映射關係變化。
可選擇目標表已存在的欄位或者手動輸入新欄位,如下圖所示:
點選更新後即可看到寫入目標表中的 SQL DDL 更新語句,如下圖所示:
執行 DDL 語句後,即可在目標表資料庫中查看修改的欄位,如下圖所示:
3.5 繼續執行任務
修改好來源端發生的 DDL 後,即可繼續運作定時任務。