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 |
|
| 4.2.7.2 | GaussDB 100/GaussDB T 資料源作為目標端時,支援 DDL 同步 |
| 4.2.11.3 | 1)DDL 功能優化,當資料來源為「選表」時,來源表結構變化新增對「主鍵/Not Null/註釋」的變化感知 2)更新目標表優化:
|
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表匯出同樣支援該功能。

點選「更新欄位映射」即可查看到增刪改欄位的變化情況,同時點選確認即可根據來源表欄位變化更新欄位映射,如下圖所示:

「更新映射」表格配置如下:
| 資料來源 | 表格內容 |
|---|---|
| 配置方式為「SQL」/「儲存程式」 | 只展示「欄位」、「類型」
|
| 配置方式為「選表」 | 4.2.11.3 及之後版本,當資料來源為「選表」時,來源表結構變化新增對「主鍵/Not Null/註釋」的變化感知:
|
更新欄位映射分如下所示:
| 來源表欄位變化 | 更新欄位映射表 |
|---|---|
| 刪除欄位 | 分類至「刪除欄位」下 |
| 新增欄位 | 分類至「新增欄位」下 |
| 修改欄位名稱 | 原名稱欄位分類至「刪除欄位」下,新名稱欄位分類在「新增欄位」下。 |
| 修改欄位類型或者長度 | 分類至「修改欄位類型/長度」下 |
2.3 更新目標表
當資料去向選擇「已存在表」時,若來源表欄位相較之前有變化,則可以對目標表進行調整,可以選擇已有目標表欄位、也可以手動輸入新欄位,確認對應映射關係變化後,即可對應生成目標表執行的 DDL 語句並執行。
支援對目標表建立、刪除欄位、重新命名欄位;
支援修改目標表欄位類型、長度精度;
支援為目標表配置非空、主鍵、註釋;
支援展示更改記錄、還原修改;
| 說明 | |
|---|---|
| 支援使用的資料源 | 目標資料源:ClickHouse、GaussDB、Greenplum、MySQL、Oracle、PostgreSQL、Seabox、SQLServer、TiDB、RedShift、YMatrix |
| 使用條件 | 需要在資料同步節點,資料去向與映射-目標表選擇「已存在表」 |
1)點選「更新目標表」,彈窗中展示目標表實際內容和順序,可對欄位結構進行調整。如下圖所示:

2)4.2.11.3 及之後版本,新增「一鍵帶入」功能。以「欄位名」為唯一標識(同名映射邏輯),比對來源表和目標表結構;只要來源表與目標表結構不一致,就支援將來源表結構一鍵帶入目標表。
更改記錄內容如下:
| 更改記錄 | 說明 |
|---|---|
| 新增 | 來源表有,目標表沒有的欄位 |
| 修改 | 目標表有同名欄位,但「類型」/「描述」/「主鍵」/「Not Null」與來源表不一致 注:「描述」、「主鍵」、「Not Null」能否被帶入目標表,取決於來源表能否獲取到;若獲取不到,不會影響到目標表現有內容 |
| 刪除 | 來源表沒有,目標表有的欄位 |
注:點選「一鍵帶入」後,在此介面上更改內容導致來源表與目標表結構不一致,將不會出現「一鍵帶入」提示。

3)4.2.11.3 及之後版本,「預覽更新語句」更名為「生成更新語句」。並在右側新增「重新獲取」、「格式美化」按鈕。如下圖所示:

3. 操作步驟
3.1 檢查源表結構
建立資料同步節點,資料來源-配置方式選擇「選表」,選擇來源表並設定資料過濾,如下圖所示:

設定「資料去向與映射」,設定目標資料表並勾選「源表結構變化監測」,並設定寫入方式,確認同步節點可正常運作同步任務,如下圖所示:

3.2 設定結果通知
為了保證 DDL 變化能通知使用者,可在「任務控制>結果通知」下設定通知情況。
當使用者在資料去向與映射中勾選了「源表結構變化監測」,即可對變化進行結果通知,如下圖所示:

在運作任務時,如果來源端發生 DDL 變化,則會在指定渠道通知設定好的指定使用者,例如設定了平台通知,則會在平台中提示,如下圖所示:

當然日誌也會提示使用者源表結構變化,若 DDL 影響實際資料寫入,則任務報錯,否則任務會正常執行。
3.3 更新欄位映射
此時使用者即可進入任務,進入「資料去向與映射」中更新欄位映射,將根據來源表欄位變化情況更新欄位映射,不會影響目標表結構,如下圖所示:

點選確認後可在查看欄位映射情況,如下圖所示:

3.4 更新目標表
當目標表選擇「已存在表」時,使用者可以點選「更新目標表」確認/補足對應映射關係變化。
可選擇目標表已存在的欄位或者手動輸入新欄位,如下圖所示:

點選更新後即可看到寫入目標表中的 SQL DDL 更新語句,如下圖所示:

執行 DDL 語句後,即可在目標表資料庫中查看修改的欄位,如下圖所示:

3.5 繼續執行任務
修改好來源端發生的 DDL 後,即可繼續運作定時任務。
