1. 概述
1.1 版本
| FineDataLink 版本 | 功能變動 |
|---|---|
| 4.0.17 | 支援Mysql 設定同步源表結構變化 |
| 4.2.8.5 | KingBaseES(MySQL模式)作為目標端時,支援 DDL KingBaseES(SqlServer模式)作為目標端時,支援 DDL |
| 4.2.11.3 | 「同步源表結構變化」按鈕位置改變 |
1.2 歷史版本更新
| FineDataLink 版本 | 功能變動 |
|---|---|
| 4.0.20.1 | 支援SQL Server、Oracle 、GaussDB 200、PostgreSQL、Greenplum、Greenplum(並行裝載)作為目標端設定同步源表結構變化 |
| 4.0.21 | Oracle資料源作為來源端,適配同步源表結構變化 |
| 4.0.27 | 交互體驗優化 |
| 4.0.28 | 支援TiDB、Amazon Redshift、SeaboxMPP 作為目標端的DDL |
| 4.0.29 | 支援 PostgreSQL 作為來源端的 DDL |
| 4.1.1 | 支援 SQL Server 作為來源端的 DDL,DDL 邏輯詳情參見本文3.3 節表格,且目前 DDL 同步不支援自動同步源端新增欄位,若需要使用 DDL 進行新增欄位的處理,請參見資料管道中SQL Server DDL操作說明 |
| 4.1.5.4 | 若開啟 DDL,源表欄位注釋的變化(增刪改)會同步到目標表中。但新增欄位的注釋不會同步過去 |
| 4.1.8.2 | 資料管道支援寫入神通資料庫,該資料庫支援DDL |
| 4.1.9.3 |
詳情參見:通用配置-欄位映射規則 |
| 4.1.10.1 | StarRocks、Doris作為目標端時,支援 DDL |
| 4.1.11.2 | YMatrix 作為目標端時,支援 DDL |
| 4.1.11.3 | PolarDB PostgreSQL 作為目標端時,支援 DDL |
| 4.2.6.1 | AnalyticDB for MySQL 作為目標端時,支援 DDL |
| 4.2.7.2 | GaussDB 100/GaussDB T 作為目標端時,支援 DDL |
| 4.2.8.2 | KingBaseES(MySQL模式)作為來源端時,支援 DDL KingBaseES(SqlServer模式)作為來源端時,支援 DDL |
1.3 應用場景
在使用管道任務進行資料實時同步程式中,來源端結構可能因業務調整等原因發生變動,如增刪表、增刪欄位、修改欄位名稱、修改欄位類型等,此時,使用者希望目標端可以自動同步這些來源端的調整,不需要人為地進行資料表的調整。
1.4 功能說明
資料管道任務支援同步源庫DDL功能,開啟相關選項後,在源庫發生DDL(刪除表、新增欄位、刪除欄位、修改欄位名稱、修改欄位類型(長度修改 & 相容類型修改))時,管道任務可以自動同步這些來源端變化至目標端,不需人為介入修改目標表結構。

2. 支援範圍
管道任務的來源端和目標端,在下表中都為支援,才能正常使用 DDL 功能。
例如:管道任務來源端為 MySQL,目標端為 SQL Server ,支援使用 DDL 功能;來源端為 MySQL,目標端為 DB2 ,不支援使用 DDL 功能。
| 資料源 | 作為來源端 | 作為目標端 | 備註 |
|---|---|---|---|
| MySQL | 支援 | 支援 | |
| Oracle | 支援 | 支援 | |
| SQL Server | 支持 | 支援 | 由於 SQL Server 資料庫本身特性,目前 DDL 同步不支援自動同步源端新增欄位,若需要使用 DDL 進行新增欄位的處理,請參見本文第四章 |
| GaussDB 200 | 不支援 | 支援 | |
| PostgreSQL | 支援 | 支援 | |
| Greenplum 包括並行裝載 | 不支援 | 支援 | |
| kafka | 不支援 | 不支援(目標端暫不支援kafka) | |
| TiDB | 不支援(來源端暫不支援TiDB) | 支援 | |
| Amazon Redshift | 不支援(來源端暫不支援Amazon Redshift) | 支援 | |
| DB2 | 支援 | 不支援 | |
| SeaboxMPP | 不支援(來源端暫不支援SeaboxMPP) | 支援 | |
| SAP HANA | 不支援 | 不支援 | |
| 神通資料庫 | 不支援 | 支援 | |
| StarRocks | 不支援 | 支援 | 源端修改列類型,StarRocks 和 Doris 存在限制,詳情請參見:StarRocks資料源使用說明、Doris資料源使用說明 |
| Doris | 不支援 | 支援 | |
| YMatrix | 不支援 | 支援 | |
| PolarDB PostgreSQL | 不支援 | 支援 | |
| AnalyticDB MySQL | 不支援 | 支援 |
3. 功能說明
注:SQL Server 資料源作為管道任務來源端時,目前 DDL 同步功能不支援自動同步源端新增欄位,若需要使用 DDL 進行新增欄位的處理,請參見 定時任務維運-運作監視
注:DDL 的效果請參見:管道任務範例
開啟「同步源表結構變化」後,資料結構變化實時同步說明:
| 刪除表 | 繼續同步其他表。 | 標記被刪除的同步表。 該表對應源表已被刪除,該表將不會繼續同步。 | 無變化。 | 被刪除表在後續同步中將沒有新資料寫入。 |
重新命名表 | 繼續同步其他表。 注:PostgreSQL 作為來源端,不支援重新命名表。 | 標記原名稱表為刪除。 該表對應源表已被刪除,該表將不會繼續同步。 | 無變化。 | 原名稱表在後續同步中將沒有新資料寫入。 |
| 刪除欄位 | 繼續同步其他欄位。 | 標記被刪除的欄位。 對應源欄位已被刪除,該欄位在後續同步中將傳NULL值。 | 無變化。 | 被刪除欄位在後續同步中傳NULL值。 對於 SQLServer 資料源作為來源端,在檢查到欄位刪除的時刻(每次查詢都會比對表結構檢查),FDL 就會當做欄位已經刪除。 此時 CDC 表中可能還存在一部分資料帶有這個欄位,此時該欄位的值將不會同步到目標表中。 |
| 新增欄位 | 自動同步新增欄位。 同步失敗時,記錄日誌且傳送通知,任務正常運作。 對於 SQLServer 資料源作為來源端,目前DDL同步不支援自動同步源端新增欄位,若需要進行新增欄位 DDL ,需要對資料庫進行操作,詳情參見 定時任務維運-運作監視 | 自動在來源端和目標端新增新的映射關系。 | 同步新增欄位。 新增的這個欄位不標記物理主鍵或邏輯主鍵 | 同步新增欄位的後續新增資料。 |
| 修改欄位名稱 | 原名稱欄位刪除,新名稱欄位新增。 對於 SQLServer 、DB2資料源作為來源端,不支援修改欄位名稱。 | 標記原名稱欄位刪除。 自動在來源端和目標端新增新名稱欄位的映射關系。 | 同步新增新名稱欄位。 | 原名稱欄位在後續同步中傳NULL值。 同步新名稱欄位的後續新增資料。 |
| 修改欄位類型或者長度 | 自動同步修改欄位類型,修改不成功時,記錄日誌,任務繼續運作。修改時的欄位映射邏輯和自動建表時一緻。 | 來源表與目標表欄位配置自動修改欄位類型。 | 同步修改欄位類型。 | 曆史資料與後續新增資料變化為對應類型資料。 |
| 源表欄位注釋的變化(增刪改) | 同步到目標表中 新增欄位的注釋不會同步過去 | - | - | - |
開啟「同步源表結構變化」按鈕後,「運作日誌」介面會出現 DDL 的更改日誌。如下圖所示:

