Doris資料源使用說明

  • 文檔創建者:Roxy
  • 編輯次數:18
  • 最近更新:Nikozhan 于 2025-06-27
  • icon提示:
    本文詳細說明 Doris 資料源在 FDL 中的使用特性,包括使用限制以及在不同功能使用中的特殊情況,幫助使用者更好地理解和應用資料源。

    1. 通用限制

    1)FineDataLink 支援連結 Doris ,進行定時任務讀寫、管道任務寫入、作為資料服務資料發佈源、實時任務寫入。

    2)配置 Doris 資料連結時,輸入使用者需要有 admin 權限,才能保證 FDL 功能的正常使用。

    3)寫入 Doris 資料庫時,目標表表名、欄位名中不能含中文

    2. 資料開發-定時任務

    2.1 資料來源

    資料來源寫入的時候,空字串要用一對單引號,不能用雙引號。

    4.2.7.3 版本及之後,定時任務支援讀取 Doris 資料庫的分割槽表。

    2.2 寫入分割槽表

    1)4.2.7.3 及之後版本,定時任務支援寫入 Doris 資料庫的分割槽表。如下圖所示:

    2)目標表若為自動建表,支援選取目標表裏的某些欄位作為分割槽鍵。如下圖所示:

    3.png

    配置項
    說明
    分割槽方式

    • 範圍分割槽(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 及以上版本的分割槽欄位為「數值/日期時間/日期類型時,支援「自動分割槽間隔」

    2.3 自動建表-表類型

    若資料去向選擇了「Doris」資料源,則設定去向端表時,需要選擇表類型,如下表所示:

    注:4.1.10.1 及之後版本,Doris 作為目標端&目標表的類型為自動建表時,自動將來源端主鍵標記為自動建表的主鍵。

    表類型建表時設定項說明
    明細模型(Duplicate Key)

    不支援設定物理主鍵

    支援設定 NOT NULL

    4.1.11.5 及之後的版本資料來源的配置方式為「選表」時,目標表選擇「自動建表」欄位映射同步來源表的非空資訊。

    主鍵模型(Unique Key)- 讀時合併

    必須設定物理主鍵

    支援設定 NOT NULL

    主鍵模型(Unique Key)- 寫時合併

    必須設定物理主鍵

    支援設定 NOT NULL

    Doris 1.2.0 及以上版本支援使用

    聚合模型(Aggregate Key)此類型不支援自動建表

    2.4 已存在表-表類型

    若資料去向選擇了「Doris」資料源,則設定去向端表時,需要選擇表類型,後續設定寫入方式時有一定的限制,如下表所示:

    表類型寫入限制
    明細模型(Duplicate Key)

    1)寫入方式選擇「直接將資料寫入目標表」時,不支援配置主鍵映射和主鍵衝突策略

    2)寫入方式不支援「基於標識欄位,追加/更新/刪除資料」

    主鍵模型(Unique Key)- 寫時合併

    當選擇直接將資料寫入目標表時,主鍵衝突策略只能選擇:

    主鍵相同,改寫目標表的資料

    不支援:

    • 主鍵相同,忽略輸入源的資料

    • 主鍵相同,停止寫入並報錯

    主鍵模型(Unique Key)- 讀時合併

    聚合模型(Aggregate Key)

    1)當選擇"直接將資料寫入目標表"時,不支援:

    配置主鍵映射以及主鍵衝突策略

    2)不支援選擇"基於標識欄位,追加/更新/刪除資料";

    2.5 分隔符說明

    FDL 版本
    Doris版本說明
    4.1.10.1之前-

    寫入 Doris 時,FDL 使用預設分隔符分割行列資料,若待寫入資料中包含預設分隔符,寫入將報

    範例說明:

    待寫入資料:

    A
    BC
    1,123

    若 FDL 使用, 作為分隔符,寫入時,A 列的 1,1 將會被分割拆開寫入,寫入出錯

    建議:

    使用者可以先檢查源端是否同步了二進制欄位,將二進制欄位取消同步,再使用公式將分隔符進行取代(例如取代為空格)

    4.1.10.1及之後-4.2.3.12.0以下
    2.0及以上若來源端資料包含 FDL 預設分隔符,會幫使用者做轉義取代(使用轉義符來轉義資料中的行列分隔符),使資料寫入成功
    4.2.3.1 及之後
    2.0及以上

    支援指定行列分隔符。如下圖所示

    注:行列分隔符不能相同

    2.png

    列分隔符說明:

    下拉框支援選項:自動處理、推薦分隔符(\x01)、英文逗號、列表符、英文分號、管道符、ASCII字元

    列分隔符說明
    自動處理

    優點:

    若來源端資料包含 FDL 預設分隔符,會幫使用者做轉義取代(使用轉義符來轉義資料中的行列分隔符),確定資料寫入成功

    缺點:

    會損失一些寫入效能

    推薦分隔符(\x01)

    優點

    大部分場景中,使用者資料中不會包含 \x01,避免寫入出錯的同時,保證效能

    缺點:

    若使用者資料中包含 \x01,FDL 不做轉義取代,寫入將報錯

    英文逗號、列表符、英文分號、管道符、ASCII字元若使用推薦分隔符報錯,使用者根據實際資料,指定分隔符

    行分隔符說明:支援設定CR+LF、LF、ASCII字元作為行分隔符

    4.2.4.3 版本「行分隔符」增加「推薦分隔符」為\x02,同時預設選中,保證取代為行分隔符後低版本 Doris 資料正常。

    「行分隔符」其實是\x02 ,取代為換行符後,對於低版本 Doris,在沒有正確處理「列分隔符」的情況下,會造成資料異常,因此增加該功能。

    2.0以下與「2.0及以上版本」不同的是,列分隔符中沒有自動處理選項

    2.6 特殊場景說明

    寫入到 Doris 時,寫入方式選擇直接直接將資料寫入目標表」,設定主鍵衝突則改寫,執行操作如下:

    1)源表的所有欄位先同步到目標表,比如欄位 a 同步到目標表欄位 a,任務運作後,此時目標表欄位 a 有資料。

    2)在欄位映射裏把欄位 a 的映射關係取消,即代表着不同步欄位 a 。

    運作任務後將發現,目標表欄位 a 的值都為 NULL(該問題等待產品後續解決)。

    3. 資料管道

    3.1 目標表為自動建表

    1)若資料去向選擇了「Doris」資料源,則設定去向端表時,需要選擇表類型,如下表所示:

    表類型建表時設定項說明
    明細模型(Duplicate Key)

    僅展示,不可選

    主鍵模型(Unique Key)- 讀時合併

    必須設定物理主鍵

    支援設定 NOT NULL

    主鍵模型(Unique Key)- 寫時合併

    必須設定物理主鍵

    支援設定 NOT NULL

    Doris 1.2.0 及以上版本支援使用;

    聚合模型(Aggregate Key)僅展示,不可選

    2)4.2.7.3 及之後版本,管道任務中目標表若為自動建表,支援選取目標表裏的某些欄位作為分割槽鍵;目標表若為已存在表,支援寫入分割槽表。

    詳細說明可參考本文 2.2 節。

    4.png

    3.2 DDL 同步說明

    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 應用失敗的日誌。

    3.3 同步時標記時間戳說明

    4.1.7.2 之前版本,資料管道實時資料不支援「同步時標記時間戳」功能;FDL 為 4.1.7.2 及之後版本 & Doris 版本為 2.0 之後,支援「同步時標記時間戳」功能。

    3.4 主鍵說明

    不支援邏輯主鍵。

    3.5 分隔符說明

    FDL 版本
    Doris版本說明
    4.1.10.1之前-

    寫入 Doris 時,FDL 使用預設分隔符分割行列資料,若待寫入資料中包含預設分隔符,寫入將報

    範例說明:

    待寫入資料:

    A
    BC
    1,123

    若 FDL 使用, 作為分隔符,寫入時,A 列的 1,1 將會被分割拆開寫入,寫入出錯

    建議:

    使用者可以先檢查源端是否同步了二進制欄位,將二進制欄位取消同步,再使用公式將分隔符進行取代(例如取代為空格)

    4.1.10.1及之後2.0以下
    2.0及以上若來源端資料包含 FDL 預設分隔符,會幫使用者做轉義取代(使用轉義符來轉義資料中的行列分隔符),使資料寫入成功

    4. 資料開發-實時任務

    當 DB表输出 選擇 doris 作為資料去向:

    選擇匯出表類型說明
    已存在表

    表類型無限制

    表類型如果為明細模型:

    • 欄位映射處不展示主鍵列,支援無主鍵同步(將插入事件的資料直接插入到目標表),任務重啟時可能有重複資料,發生刪除和更新事件將導致報錯

    5.0.0.4 及之後版本,當前任務中存在產生更新流的算子&寫入 Doris 時,不支援無主鍵同步;會產生更新流的算子:CDC輸入、分組匯總、資料聯動(多個實時資料源進行聯動)

    • 寫入方式處,不支援配置主鍵映射,不支援配置邏輯刪除

    自動建表

    4.2.1.4 之前版本,表類型只能選擇主鍵模型;4.2.1.4 及之後版本,表類型可以選擇明細模型

    欄位映射處,可以選擇表類型為明細模型,當選擇明細模型時:

    • 欄位映射時不展示「主鍵」列,支援無主鍵同步(將插入事件的資料直接插入到目標表),任務重啟時可能有重複資料,發生刪除和更新事件將導致報錯

    5.0.0.4 及之後版本,當前任務中存在產生更新流的算子&寫入 Doris 時,不支援無主鍵同步;會產生更新流的算子:CDC輸入、分組匯總、資料聯動(多個實時資料源進行聯動)

    • 寫入方式處,不支援配置主鍵映射,不支援配置邏輯刪除

    5. 資料服務

    4.2.7.3 及之後版本,資料服務支援選擇 Doris 資料庫的分割槽表。


    附件列表


    主題: 配置資料源
    • 有幫助
    • 沒幫助
    • 只是瀏覽
    • 评价文档,奖励 1 ~ 100 随机 F 豆!