1. 概述
1.1 版本
FineDataLink 版本 | 功能變動 |
---|---|
4.0.5 | - |
4.1.11.2 | 管道任務自動建表支援指定分割槽(YMatrix )和分佈(YMatrix)邏輯,詳情參見:讀取、建立、寫入分割槽表 |
4.1.11.5 | 自動建表時從源表獲取到表描述後自動填充到目標端,詳情參見本文 2.7 節 |
4.1.12.3 | 「表欄位映射」步驟中,若去向選擇「自動建表」,管道任務運作成功後,仍為「自動建表」 |
1.2 更多歷史版本
FineDataLink 版本 | 功能變動 |
---|---|
4.0.16 |
|
4.0.18 |
|
4.0.23 | 對於無法設定物理主鍵的資料表,資料管道支援設定邏輯主鍵 |
4.0.29 | 在選擇目標端為「已存在表」或者首次進行全量同步時,會對資料進行清空表內容重寫,此時
|
4.0.30 | 當「選擇來源」選擇「僅增量同步」時,去向表預設選擇「已存在表」,會自動執行一次同名匹配,且使用者仍可以手動切換為「自動建表」 |
4.1.1 | 支援對要同步的來源端資料進行管理,篩選無主鍵或者表配置異常的表,詳情參見本文 2.4 節 |
4.1.3 | 1)Doris、StarRocks 資料源作為寫入端,支援自動建表,詳情參見本文 2.1節 2)透過「手動建表」功能,可自訂建表的SQL語句,例如修改欄位名、欄位類型、定義各種表的特性等 3)欄位映射表格交互優化 |
4.1.5.2 | 1)「表欄位映射」步驟中,若去向選擇「自動建表」,管道任務運作成功後,將自動變為「已存在表」 2)支援篩選表建立方式:已存在表、自動建表 3)支援批量修改表建立方式 4)當「選擇來源」選擇「僅增量同步」時,去向表預設選擇「自動建表」 |
4.1.5.4 | 1)來源表的欄位映射中支援讀取來源表的欄位備注、表描述 2)目標表選擇自動建表時,可自訂欄位備注、表描述 3)目標表選擇已存在表時,顯示表備注、欄位備注 |
4.1.6.1 | 自動建表時,表名支援包含中文 |
4.1.8.1 | 配置管道任務-選擇資料來源 步驟中,若生成了分組表,「表欄位映射」步驟中,將顯示分組表的欄位映射 |
4.1.9.3 | 管道任務自動建表支援指定分割槽(PostgreSQL、Greenplum、Gauss200 )和分佈(Greenplum、Gauss200)邏輯,詳情參見:讀取、建立、寫入分割槽表 |
1.3 功能簡介
在「表欄位映射」步驟中,建立「來源端-目標端」的欄位對應關係。如下圖所示:
2. 操作步驟
2.1 目標表建立方式
目標表名稱中不能包含中文、特殊字元。使用者可建立表/選擇已存在表作為目標表。
2.1.1 自動建表
1)使用「自動建表」,在目標資料庫建立管道任務目標表。
注:建立表不支援和資料庫已存在表重名;其中 4.1.6.1 之前版本表名支援包含英文、數字、底線,4.1.6.1 及之後版本,表名支援包含英文、中文、數字、底線
2)「手動建表」按鈕說明:
場景一:若使用者想要使用語句在目標資料庫中建立表,可以複製「手動建表」中的語句並在資料庫執行。
場景二:點選「手動建表」按鈕後,使用者可修改欄位名、欄位類型,以及去定義各種表的特性。具體請參見:手動建表
3)不同資料庫對功能的支援說明:
若資料去向選擇了「Doris」資料源,則設定去向端表時,需要選擇表類型,詳情參見:Doris数据源使用说明、StarRocks数据源使用说明
若資料去向選擇了「StarRocks」資料源,則設定去向端表時,需要選擇表類型,詳情參見:Doris数据源使用说明、StarRocks数据源使用说明
2.1.2 選擇已存在表
選擇「已存在表」,可將管道任務資料實時同步至已有資料表。如下圖所示:
需注意:
1)配置管道任務-選擇資料去向 步驟中,開啟了「目標端執行邏輯刪除」和「同步時標記時間戳」,若目標表不存在新增欄位_fdl_update_timestamp、_fdl_marked_deleted,系統將自動在運作任務時幫使用者建立該欄位。
2)4.0.30 -4.1.5.2 版本,當「数据来源」選擇「僅增量同步」時,去向表預設選擇「已存在表」,會自動執行一次同名匹配,且使用者仍可以手動切換為「自動建表」;4.1.5.2 及之後版本,當「数据来源」選擇「僅增量同步」時,去向表預設選擇「自動建表」。
2.2 設定主鍵
1)4.0.23 之前的版本目標資料庫資料表物理主鍵不能為空,以此保證寫入資料的唯一性,同時這樣能使目標端擁有索引、提升效能。
2)但是對於部分列儲存的資料庫,對設定物理主鍵有限制,導致無法設定物理主鍵,比如:當GP使用列儲存時、GaussDB(基於GP)使用列儲存等,對於無法建立物理主鍵的這些資料庫,在 4.0.23及之後 版本支援使用邏輯主鍵替代物理主鍵來實現資料實時同步。
注:在同步時,優先使用目標端已存在的物理主鍵,當目標表不存在物理主鍵時、再使用配置表內的邏輯主鍵;
當配置任務時,任務中配置了邏輯主鍵,而使用者在某個時間點將目標端新增了物理主鍵,則在使用者查看映射配置時展示目標端的物理主鍵、而非先前配置的邏輯主鍵。
目標端表類型 | 判斷目標表主鍵狀態 | 來源端表 | 目標端表 | ||
---|---|---|---|---|---|
自動建表 | 目標端資料庫支援設定物理主鍵 | 來源端有物理主鍵 | 來源端物理主鍵配置至目標端物理主鍵 | ||
來源端沒有物理主鍵 | 使用者可自行設定物理主鍵 | 使用者配置了物理主鍵 | 1)自動建表時,將使用者指定的欄位設為目標表物理主鍵 2)同步時,使用目標表物理主鍵作為更新和刪除時的比對欄位 | ||
使用者沒有配置物理主鍵(勾選了無主鍵同步) | 1)自動建表時,不會設物理主鍵 2)資料同步時,使用目標表所有可用欄位作為邏輯主鍵並配置到任務中,使用邏輯主鍵作為更新和刪除時的比對欄位 | ||||
目標端資料庫不支援設定物理主鍵,僅能設定邏輯主鍵 | 來源端有物理主鍵 | 來源端物理主鍵自動配置至目標端邏輯主鍵 | 使用者配置了邏輯主鍵 對於不支援物理主鍵的資料源,勾選邏輯主鍵的時候,同時勾選NotNULL,但是使用者可以手動取消勾選。 | 自動建表時,不會設物理主鍵 同步時,使用配置的邏輯主鍵作為更新和刪除時的比對欄位 | |
來源端沒有物理主鍵 | 使用者可自行設定邏輯主鍵 | 使用者沒有配置邏輯主鍵(勾選了無主鍵同步) | 自動建表時,不會設物理主鍵 同步時,使用目標表所有可用欄位作為邏輯主鍵並配置到任務中,使用邏輯主鍵作為更新和刪除時的比對欄位 | ||
已存在表 | 目標端資料庫已經存在物理主鍵 不允許調整物理主鍵配置 | - | 預設使用已存在物理主鍵,不能修改 同步時,使用目標表物理主鍵作為更新和刪除時的比對欄位 | ||
目標端資料庫不存在物理主鍵 不允許目標端邏輯主鍵為空 | 來源端有物理主鍵 | 來源端物理主鍵自動配置至目標端邏輯主鍵 | |||
來源端沒有物理主鍵 | 使用者可自行設定邏輯主鍵 | 使用者配置了基於邏輯主鍵同步 | 同步時,使用配置的邏輯主鍵作為更新和刪除時的比對欄位 | ||
使用者沒有配置主鍵(勾選了無主鍵同步) | 同步時,使用目標表所有可用欄位作為邏輯主鍵並配置到任務中,使用邏輯主鍵作為更新和刪除時的比對欄位 |
1)選擇「自動建表」時,可自動識別來源端資料表已有的物理主鍵。如下圖所示:
2)選擇「已存在表」時,可自動識別已存在表的主鍵。如下圖所示:
3)支援手動設定目標表的主鍵。如下圖所示:
2.3 設定分割槽鍵
管道任務自動建表支援指定分割槽(PostgreSQL、Greenplum、Gauss200、YMatrix)和分佈(Greenplum、Gauss200、YMatrix)邏輯,詳情參見:读取、创建、写入分区表
2.4 設定欄位映射
可以調整欄位映射方式、目標資料庫資料表的欄位類型、欄位名稱、欄位順序;還可以取消映射、篩選已映射、未映射欄位。如下圖所示:
2.5 批量修改表名、表建立方式
1)若需要給同步的資料表批量增加前綴或者後綴,可以點選右上角的「批量修改」,選中需要修改的表,然後增加前後綴即可,如下圖所示:
被修改的表名增加了 ods_ 前綴,如下圖所示:
2)可批量修改表建立方式。如下圖所示:
注:僅支援對未同步過的表進行批量修改。
2.6 篩選按鈕介紹
1)點選資料庫展示側的篩選標籤,即可對設定需要進行同步的來源資料表進行篩選,篩選條件為:目標表配置是否有異常、目標表是否有主鍵、表建立方式。
如果使用者沒有選擇主鍵,且在「選擇去向」處配置了無主鍵同步,則任務運作時,系統將自動將這些表的所有可用欄位配置為邏輯主鍵。
2)點選欄位映射上方的篩選標籤,可篩選出是否已映射的欄位、是否有異常的欄位。如下圖所示:
有異常欄位範例:例如目標表欄位名稱為空、類型為空等。
2.7 表描述、欄位註釋
可將來源表的表備註、欄位備註同步到目標表中;若目標表為自動建表,可自訂表描述、欄位註釋。
1)來源表的欄位映射中支援讀取來源表的欄位註釋、表描述。如下圖所示:
2)目標表選擇自動建表時,可自訂欄位註釋、表描述。如下圖所示:
自動建表時從源表獲取到表描述後自動填充到目標端,如下圖所示:
3)目標表選擇已存在表時,顯示錶描述、欄位註釋。如下圖所示:
需注意:
1)不支援表描述的資料庫:ClickHouse、Hive、Impala、TRANSWARP INCEPTOR、Informix、MaxCompute、SQLite、StarRocks。
2)不支援欄位備註的資料庫:Hive、Impala、TRANSWARP INCEPTOR、Informix、MaxCompute、SQLite、StarRocks。
3)表描述、欄位註釋後續變化:
若未開啟DDL:
只在第一次同步時,同步欄位的註釋,之後源表欄位註釋的變化不會同步到目標表。
若開啟DDL:
源表欄位註釋的變化(增刪改)會同步到目標表中;新增欄位的註釋也會同步過去。
不論是否開啟DDL,只在第一次同步時,同步表描述,後續源表的表描述發生變化,不會同步到目標表。
2.8 分組表和普通表不同
本文的 2.1-2.7 節內容同樣適用於分組表,本節介紹分組表和普通表的不同之處。
1)分組表中,如果多張來源表的欄位類型不一樣,向上取能相容所有來源欄位的類型作為分組表中該欄位的類型。
2)分組表的目標表中,將自動新增「_fdl_src_schema_table」欄位,標識來源的資料表,採用「schema.table_name」的形式記錄源表模式名和表名。
3)分組表的「物理主鍵」和「Not Null」配置說明:僅在所有分組內的子表都有 NOTNULL 配置或主鍵配置時,分組表採用相同配置,否則不配置。
3. 注意事項
1)ClickHouse 作為寫入端時欄位映射說明
當向目標表寫入資料時,按照 CollapsingMergeTree 表引擎進行寫入,詳情參見:ClickHouse資料源使用說明
2)FineDataLink 管道任務對於 Oracle 資料源,欄位類型限制詳情參見:Oracle数据源使用说明