1. 概述
1.1 版本
| FineDataLink 版本 | 功能變動 |
|---|---|
| 4.0.18 |
|
| 4.1.11.2 | YMatrix 數據庫支持該功能 |
| 4.2.2.1 | SelectDB 數據庫支持該功能 該功能支持集群環境 |
| 4.2.3.3 | InterSystems IRIS 數據庫支持該功能 |
| 4.2.8.5 | KingBaseES(SqlServer模式)、KingBaseES(MySQL模式)支持該功能 |
| 4.2.12.4 | KingBaseES(Oracle模式)、KingBaseES(PostgreSQL模式) 支持該功能 |
| 4.2.13.2 | 1)交互優化:使用 Tab 頁分離「自動建表配置」和「字段映射規則」; 2)自動建表配置優化:
|
1.2 應用場景
場景一:
在進行數據跨庫同步時,由於業務數據的複雜性,導緻來源數據庫大小寫混用、不同來源數據庫默認大小寫規則不一緻,導緻同步到目标庫後出現大小寫不一緻問題,管理和使用混亂。
用戶希望通過 FDL 自動建表同步數據庫至目标庫時,能統一表名和字段名大小寫,形成管理規範。
場景二:
當源表與目标表的編碼格式、排序規則不一緻時,需要手動修正,靈活性不足。
用戶希望在向目标表同步數據的過程中,能自動完成編碼配置的轉換。
1.3 功能說明
「通用配置>自動建表配置」支持兩種配置規則:
大小寫配置:支持自動轉換表名與字段名的大小寫格式;
編碼配置:支持自動轉換目标表的編碼配置。
1.4 約束限制
1)「通用配置」僅超級管理員支持設置,不支持分配其他用戶使用和管理權限。
2)4.2.2.1 之前版本,該功能不支持集群環境;4.2.2.1 及之後版本,該功能支持集群環境
2. 功能說明
「自動建表配置」适配功能範圍:定時任務、實時任務、實時管道、定時管道、數據服務。
點擊「添加規則」,可選擇:大小寫配置、編碼配置。如下圖所示:

2.1 大小寫配置
在自動建表時,支持對目标表表名、字段名自動進行大小寫轉換。

配置項說明如下:
| 配置項 | 說明 |
|---|---|
| 适用數據連接 | 選擇當前大小寫配置适用的數據連接,支持多選 支持選擇的數據源類型有: ClickHouse、GaussDB 200、Greenplum、Greenplum/Greenplum(并行裝載)/FineData、Hive、Hive(HDFS)、HSQL、IBM DB2、Impala、Informix、MongoDB、MySQL、Oracle、PostgreSQL、Presto、SAP HANA、SQL Server、SQLite、達夢、華爲 GaussDB 200、南大通用 Gbase 8A、人大金倉 KingbaseES、YMatrix、SelectDB、InterSystems IRIS、KingBaseES(SqlServer模式)、KingBaseES(MySQL模式)、KingBaseES(Oracle模式)、KingBaseES(PostgreSQL模式) |
| 表名字段名轉換 | 支持:全部轉大寫、全部轉小寫 |
2.2 編碼配置
4.2.13.2 及之後版本,新增「編碼配置」,支持自動轉換目标表的編碼格式和排序規則。

配置項說明如下表所示:
| 配置項 | 說明 | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 适用數據連接 | 選擇當前編碼配置适用的數據連接,支持多選 僅支持 MySQL 數據源 | ||||||||||||
| 編碼格式和排序規則 |
|
2.3 管理配置
在列表中,可查看所有的配置,支持編輯、删除配置。如下圖所示:

3. 示例
3.1 大小寫轉換
1)點擊「管理系統>通用配置」,點擊「自動建表配置>添加規則>大小寫配置」,如下圖所示:

2)選擇指定的數據連接,來批量修改該數據連接對應數據庫中的表名、字段名,如下圖所示:

3)進入資料開發並建立「資料同步」節點,將資料寫入 2.1 節已經設定自動建表表名和欄位名全部轉大寫的「fdl_demotest」資料連結。
此時自動建立目標資料表,輸入表名會自動修改為通用設定中的大寫模式,同時欄位映射中目標表欄位名稱也改為大寫模式,如下圖所示:

定時管道任務同理,此時自動建立目标數據表,輸入表名會自動修改爲通用設置中的大寫模式,同時字段映射中目标表字段名稱也改爲大寫模式,如下圖所示:

3.2 編碼配置
1)點擊「管理系統>通用配置」,點擊「添加規則>編碼配置」,如下圖所示:

2)選擇指定的數據連接,來批量修改目标表的編碼格式和排序規則,如下圖所示:

3)進入定時任務并新建「數據同步」節點,将數據寫入已經進行編碼配置的數據連接。在「手動建表」的編碼語句中可以看到:
CHARACTER SET = utf8mb4,即編碼配置中的編碼格式;
COLLATE = utf8mb4_0900_ai_ci,即編碼配置中的排序規則;
ROW_FORMAT = Dynamic;

3. 相容說明
1)資料管道-選擇已存在表/自動建表時的相容
自動建表:當使用者在配置任務時如果選擇了大小寫轉換和前後綴設定,則應先按照使用者的設定進行大小寫轉換和前後綴設定後,再進行自動建表,如果使用者在進行前後綴前,已經對表名和欄位名進行了操作,則改寫;
2)資料管道目前的同步時間戳和邏輯刪除標記欄位預設為小寫,這兩個欄位與使用者的其他欄位保持統一規則、跟隨使用者的大小寫設定而變化;如使用者如果開啟全部大寫設定,則時間戳和邏輯刪除標記也應為大寫。
3)當任務已存在,再開啟大小寫選項
資料管道:
對於未運作的任務,當資料連結的大小寫設定為全大寫或全小寫時,欄位名和表名按照「通用設定」生效。
對於已經運作的任務,「通用設定」不生效;
定時任務:
完全按照使用者在介面配置的表名和欄位名進行自動建表,「通用配置」不生效;
在使用者選擇新的資料去向後(包括重新選擇),按照選擇的資料連結的大小寫設定進行規範表名和欄位名,欄位映射會被清空、等同於建立節點;
當使用者在欄位映射介面點選重新獲取後,按照選擇的資料連結的大小寫設定進行欄位名規範;
4. 注意事項
問題描述:
自動建表運作後,提示報表不存在。且自動建表運距複製出來無法執行。
原因分析:
部分類型資料庫存在一些特定限制。例如 MySQL 資料庫的 varchar 長度之和不能超過65535。
解決方案:
排查是否違反了對應資料庫的規定,調整欄位類型或長度。
