1)FineDataLink 支援連結 Doris ,進行定時任務讀寫、管道任務寫入、作為資料服務資料發佈源、實時任務寫入。
2)配置 Doris 資料連結時,輸入使用者需要有 admin 權限,才能保證 FDL 功能的正常使用。
3)4.2.17.5 之前版本,寫入 Doris 資料庫時,目標表表名、欄位名中不能含中文 。
4)4.2.17.5 及之後版本,寫入 Doris 資料庫時,目標表表名、欄位名中可以包含中文,需同時滿足以下條件:
Doris 2.x以上版本 。
執行 SQL:SET GLOBAL enable_unicode_name_support = true;無需重啟 。
中文表名 / 欄位名必須用反引號`包裹,否則會觸發 SQL 文法錯誤,例如:CREATE TABLE `使用者訂單表`
注:中文識別符號需避免與 SQL 關鍵字重名(如 SELECT、FROM 的中文翻譯),若必須使用需加反引號;所有節點(FE/BE)、使用者端(DBeaver/MySQL Client)需統一字元集為 utf8mb4(執行 SET NAMES utf8mb4;),避免中文亂碼 。
資料來源寫入的時候,空字串要用一對單引號,不能用雙引號。
4.2.7.3 版本及之後,定時任務支援讀取 Doris 資料庫的分割槽表。
1)4.2.7.3 及之後版本,定時任務支援寫入 Doris 資料庫的分割槽表。如下圖所示:
2)目標表若為自動建表,支援選取目標表裏的某些欄位作為分割槽鍵。如下圖所示:
範圍分割槽(RANGE)
列表分割槽(LIST)
自動範圍分割槽(Doris 2.1 及以上版本支援)
自動列表分割槽(Doris 2.1 及以上版本支援)
選擇映射已有欄位作為分割槽欄位。
不同分割槽方式可選的分割槽欄位如下:
範圍分割槽:DATE、DATETIME、TINYINT、SMALLINT、INT、BIGINT、LARGEINT
列表分割槽:BOOLEAN、TINYINT、SMALLINT、INT、BIGINT、LARGEINT、DATE、DATETIME、CHAR、VARCHAR
自動範圍分:DATE、DATETIME
自動列表分割槽:BOOLEAN, TINYINT, SMALLINT, INT, BIGINT, LARGEINT, DATE, DATETIME, CHAR, VARCHAR
進行分割槽配置,支援新增多個分區
Doris 2.0 及以上版本的分割槽欄位為「數值/日期時間/日期」類型時,支援「自動分割槽間隔」
若資料去向選擇了「Doris」資料源,則設定去向端表時,需要選擇表類型,如下表所示:
注:4.1.10.1 及之後版本,Doris 作為目標端&目標表的類型為自動建表時,自動將來源端主鍵標記為自動建表的主鍵。
不支援設定物理主鍵
支援設定 NOT NULL
4.1.11.5 及之後的版本資料來源的配置方式為「選表」時,目標表選擇「自動建表」欄位映射同步來源表的非空資訊。
必須設定物理主鍵
Doris 1.2.0 及以上版本支援使用
若資料去向選擇了「Doris」資料源,則設定去向端表時,需要選擇表類型,後續設定寫入方式時有一定的限制,如下表所示:
1)寫入方式選擇「直接將資料寫入目標表」時,不支援配置主鍵映射和主鍵衝突策略
2)寫入方式不支援「基於標識欄位,追加/更新/刪除資料」
主鍵模型(Unique Key)- 寫時合併
當選擇「直接將資料寫入目標表」時,主鍵衝突策略只能選擇:
主鍵相同,改寫目標表的資料
不支援:
主鍵相同,忽略輸入源的資料
主鍵相同,停止寫入並報錯
主鍵模型(Unique Key)- 讀時合併
1)當選擇"直接將資料寫入目標表"時,不支援:
配置主鍵映射以及主鍵衝突策略
2)不支援選擇"基於標識欄位,追加/更新/刪除資料";
4.2.12.2 及之後版本,目標端為 Doris 時,支援 交易控制 功能 。
注 1:Doris 需要 V3.0 及以上版本 。
注 2:開啟「交易控制」之前,需要在 Doris 資料連結 URL 中新增參數 useLocalSessionState=true,否則運作會報錯 。
例如:jdbc:mysql://192.168.5.199:9099/mysql?useLocalSessionState=true
寫入 Doris 時,FDL 使用預設分隔符分割列欄資料,若待寫入資料中包含預設分隔符,寫入將報錯
範例說明:
待寫入資料:
若 FDL 使用, 作為分隔符,寫入時,A 列的 1,1 將會被,分割拆開寫入,寫入出錯
建議:
使用者可以先檢查源端是否同步了二進制欄位,將二進制欄位取消同步,再使用公式將分隔符進行取代(例如取代為空格)
支援指定列欄分隔符。如下圖所示:
注:列欄分隔符不能相同
欄分隔符說明:
下拉框支援選項:自動處理、推薦分隔符(\x01)、英文逗號、列表符、英文分號、管道符、ASCII字元
優點:
若來源端資料包含 FDL 預設分隔符,會幫使用者做轉義取代(使用轉義符來轉義資料中的行列分隔符),確定資料寫入成功
缺點:
會損失一些寫入效能
大部分場景中,使用者資料中不會包含 \x01,避免寫入出錯的同時,保證效能
若使用者資料中包含 \x01,FDL 不做轉義取代,寫入將報錯
列分隔符說明:支援設定CR+LF、LF、ASCII字元作為行分隔符
4.2.4.3 版本「列分隔符」增加「推薦分隔符」為\x02,同時預設選中,保證取代為行分隔符後低版本 Doris 資料正常。
「列分隔符」其實是\x02 ,取代為換行符後,對於低版本 Doris,在沒有正確處理「欄分隔符」的情況下,會造成資料異常,因此增加該功能。
4.2.8.4 及之後版本,寫入 Doris 時,支援設定資料分批條件,只要滿足其中任何一個條件,就會立即生成一批資料並執行寫入操作。
自動分批:一般情況下使用「自動分批」配置即可;
自訂分批:當大批量資料寫入或高頻次寫入引發資料庫壓力過載問題,可以靈活調整分批寫入配置。
支援自動分批
支援自訂分批:單條批數、單批大小
支援自訂分批:單條批數、單批大小、單批累計時間
注1:若同步類型選擇「存量+增量同步」,單批累計時間設定僅對增量階段的資料生效。
注 2:「存量+增量同步」和「增量同步」的自動分批邏輯不同:
「僅增量同步」:選擇「自動分批」後,資料一旦產生就理解寫入,不需要攢批;
「存量+增量同步」:選擇「自動分批」後,需要攢批,預設邏輯為單批資料條數 500000 條、單批大小 20 M、單批累積時間 5000 ms,達到任一條件自動分批寫入資料。
4.2.8.4 及之後版本,寫入 Doris 時,支援設定寫入間隔,控制資料的寫入頻率。如下圖所示:
寫入到 Doris 時,寫入方式選擇直接「直接將資料寫入目標表」,設定主鍵衝突則改寫,執行操作如下:
1)源表的所有欄位先同步到目標表,比如欄位 a 同步到目標表欄位 a,任務運作後,此時目標表欄位 a 有資料。
2)在欄位映射裏把欄位 a 的映射關係取消,即代表着不同步欄位 a 。
運作任務後將發現,目標表欄位 a 的值都為 NULL(該問題等待產品後續解決)。
1)若資料去向選擇了「Doris」資料源,則設定去向端表時,需要選擇表類型,如下表所示:
僅展示,不可選
Doris 1.2.0 及以上版本支援使用;
2)4.2.7.3 及之後版本,管道任務中目標表若為自動建表,支援選取目標表裏的某些欄位作為分割槽鍵;目標表若為已存在表,支援寫入分割槽表。
詳細說明可參考本文 2.2 節。
4.1.10.1 之前版本,Doris 作為目標端時,不支援 DDL 同步;4.1.10.1 及之後版本,Doris 作為目標端時,支援 DDL 同步。
Doris 作為目標端,源端修改欄類型時,DDL 支援的修改操作如下:
TINYINT/SMALLINT/INT/BIGINT/LARGEINT/FLOAT/DOUBLE 類型向範圍更大的數字體別轉換
TINTINT/SMALLINT/INT/BIGINT/LARGEINT/FLOAT/DOUBLE/DECIMAL 轉換成 VARCHAR
VARCHAR 支援修改最大長度
VARCHAR/CHAR 轉換成 TINTINT/SMALLINT/INT/BIGINT/LARGEINT/FLOAT/DOUBLE
VARCHAR/CHAR 轉換成 DATE (目前支援"%Y-%m-%d", "%y-%m-%d", "%Y%m%d", "%y%m%d", "%Y/%m/%d, "%y/%m/%d"六種格式化格式)
DATETIME 轉換成 DATE(僅保留年-月-日資訊, 例如: 2019-12-09 21:47:05 <--> 2019-12-09)
DATE 轉換成 DATETIME(時分秒自動補零, 例如: 2019-12-09 <--> 2019-12-09 00:00:00)
FLOAT 轉換成 DOUBLE
INT 轉換成 DATE (如果 INT 類型資料不合法則轉換失敗,原始資料不變)
除 DATE 與 DATETIME 以外都可以轉換成 STRING,但是 STRING 不能轉換任何其他類型。
對於支援範圍外的欄位修改操作,資料庫會報錯,會列印 DDL 應用失敗的日誌。
4.1.7.2 之前版本,資料管道實時資料不支援「同步時標記時間戳」功能;FDL 為 4.1.7.2 及之後版本 & Doris 版本為 2.0 之後,支援「同步時標記時間戳」功能。
不支援邏輯主鍵。
4.2.8.4 及之後版本,實時管道任務寫入 SelectDB 時,選擇去向中支援設定資料分批、寫入間隔。詳情參見本文 2.6、2.7 節。
4.2.17.1 及之後版本,定時管道任務支援寫入 Doris 資料庫。
目標表若為已存在表,支援寫入分割槽表。
Doris 資料庫版本需在 3.0 及以上版本;
需要資料庫支援交易,Doris 資料連結 URL 中需要新增參數:useLocalSessionState=true。
注:定時管道寫入 Doris 時,目標表需要與來源表主鍵一致。
注:目標表為自動建表時,不支援設定分割槽鍵。
若為「自動建表」:
1)表類型預設為主鍵模型(Unique Key) - 讀時合併,可修改為主鍵模型(Unique Key) - 寫時合並,不支援選擇另外兩種類型表建表
2)自動建表的目標表主鍵不可手動修改,不可取消映射
若為「已存在表」:
1)已存在表也僅支援選擇主鍵模型(Unique Key) - 讀時合併或主鍵模型(Unique Key) - 寫時合並
2)已存在表的主鍵必須與來源端完全一致,否則不可透過校驗
表類型只能設定為以下兩種表類型:
主鍵模型(Unique Key) - 讀時合併
主鍵模型(Unique Key) - 寫時合併
1)表類型只能選擇以下兩種表類型:
增量子表
全量有主鍵子表
通用說明:
不論目標表類型為「已存在表」還是「自動建表」,目標表增加_fdl_subtable_key欄位,類型為varchar(32),不可取消,該欄位與DM_KEY共同作為聯合主鍵
1)表類型只能設定為以下兩種表類型:
2)目標表主鍵不可手動修改,不可取消映射
2)已存在表的主鍵(不算_fdl_subtable_key)必須與來源端完全一致,否則不可透過校驗
3)已存在表必須有_fdl_subtable_key作為主鍵,否則不可透過校驗,該欄位標紅
已存在表表類型需為:明細模型(Duplicate Key)
表類型只能設定為:明細模型(Duplicate Key)
當 DB 表匯出 選擇 doris 作為資料去向:
表類型無限制
表類型如果為明細模型:
欄位映射處不展示主鍵列,支援無主鍵同步(將插入事件的資料直接插入到目標表),任務重啟時可能有重複資料,發生刪除和更新事件將導致報錯
5.0.0.4 及之後版本,當前任務中存在產生更新流的算子&寫入 Doris 時,不支援無主鍵同步;會產生更新流的算子:CDC輸入、分組匯總、資料聯動(多個實時資料源進行聯動)
寫入方式處,不支援配置主鍵映射,不支援配置邏輯刪除
4.2.1.4 之前版本,表類型只能選擇主鍵模型;4.2.1.4 及之後版本,表類型可以選擇明細模型
欄位映射處,可以選擇表類型為明細模型,當選擇明細模型時:
欄位映射時不展示「主鍵」列,支援無主鍵同步(將插入事件的資料直接插入到目標表),任務重啟時可能有重複資料,發生刪除和更新事件將導致報錯
4.2.8.4 及之後版本,實時管道任務寫入 SelectDB 時,寫入方式支援設定資料分批、寫入間隔。詳情參見本文 2.6、2.7 節。
4.2.7.3 及之後版本,資料服務支援選擇 Doris 資料庫的分割槽表。
滑鼠選中內容,快速回饋問題
滑鼠選中存在疑惑的內容,即可快速回饋問題,我們將會跟進處理。
不再提示
10s後關閉
反馈已提交
网络繁忙