反馈已提交

网络繁忙

Doris数据源特性说明

  • 文档创建者:Roxy
  • 历史版本:59
  • 最近更新:Wendy123456 于 2026-04-30
  • icon提示:
    本文详细说明 Doris 数据源在 FDL 中的使用特性,包括使用限制以及在不同功能使用中的特殊情况,帮助用户更好地理解和应用数据源。

    1. 通用限制

    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;),避免中文乱码。

    2. 定时任务

    2.1 数据来源

    数据来源写入的时候,空字符串要用一对单引号,不能用双引号。

    4.2.7.3 版本及之后,定时任务支持读取 Doris 数据库的分区表。

    2.2 写入分区表

    1)4.2.7.3 及之后版本,定时任务支持写入 Doris 数据库的分区表。如下图所示:

    1.png

    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 事务控制

    4.2.12.2 及之后版本,目标端为 Doris 时,支持 事务控制 功能。

    注 1:Doris 需要 V3.0 及以上版本。

    注 2:开启「事务控制」之前,需要在 Doris 数据连接 URL 中添加参数 useLocalSessionState=true,否则运行会报错。

    例如:jdbc:mysql://192.168.5.199:9099/mysql?useLocalSessionState=true

    9.png

    2.6 分隔符说明

    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.7 数据分批

    4.2.8.4 及之后版本,写入 Doris 时,支持设置数据分批条件,只要满足其中任何一个条件,就会立即生成一批数据并执行写入操作。

    • 自动分批:一般情况下使用「自动分批」配置即可;

    • 自定义分批:当大批量数据写入或高频次写入引发数据库压力过载问题,可以灵活调整分批写入配置。

    任务类型
    支持的功能限制说明
    定时任务

    支持自动分批

    支持自定义分批:单条批数、单批大小

    13.png

    单条批数限制范围:0~9999999
    单批大小限制范围:0~999
    单批累积时间限制范围:100~1000000
    实时任务

    支持自动分批

    支持自定义分批:单条批数、单批大小、单批累计时间

    1.png

    实时管道任务

    支持自动分批

    支持自定义分批:单条批数、单批大小、单批累计时间

    1.png

    注1:若同步类型选择「存量+增量同步」,单批累计时间设置仅对增量阶段的数据生效。

    注 2:「存量+增量同步」和「增量同步」的自动分批逻辑不同:

    • 「仅增量同步」:选择「自动分批」后,数据一旦产生就理解写入,不需要攒批;

    • 「存量+增量同步」:选择「自动分批」后,需要攒批,默认逻辑为单批数据条数 500000 条、单批大小 20 M、单批累积时间 5000 ms,达到任一条件自动分批写入数据。

    2.8 写入间隔

    4.2.8.4 及之后版本,写入 Doris 时,支持设置写入间隔,控制数据的写入频率。如下图所示:

    2.png

    2.9 特殊场景说明

    写入到 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 默认的分隔符,会帮用户做转义替换(使用转义符来转义数据中的行列分隔符),使数据写入成功

    3.6 数据分批/写入间隔

    4.2.8.4 及之后版本,实时管道任务写入 SelectDB 时,选择去向中支持设置数据分批、写入间隔。详情参见本文 2.6、2.7 节。

    4. 定时管道

    4.2.17.1 及之后版本,定时管道任务支持写入 Doris 数据库。

    目标表若为已存在表,支持写入分区表。

    4.1 使用前提

    • Doris 数据库版本需在 3.0 及以上版本;

    • 需要数据库支持事务,Doris 数据连接 URL 中需要添加参数:useLocalSessionState=true。

    注:定时管道写入 Doris 时,目标表需要与来源表主键一致。

    4.2 表类型

    注:目标表为自动建表时,不支持设置分区键。

    来源表
    目标表
    增量主表、全量有主键主表

    若为「自动建表」

    1)表类型默认为主键模型(Unique Key) - 读时合并,可修改为主键模型(Unique Key) - 写时合并,不支持选择另外两种类型表建表

    2)自动建表的目标表主键不可手动修改,不可取消映射

    若为「已存在表」

    1)已存在表也仅支持选择主键模型(Unique Key) - 读时合并或主键模型(Unique Key) - 写时合

    2)已存在表的主键必须与来源端完全一致,否则不可通过校验

    主表(有主键)

    若为「自动建表」

    表类型只能设置为以下两种表类型:

    • 主键模型(Unique Key) - 读时合并

    • 主键模型(Unique Key) - 写时合并

    若为「已存在表」:

    1)表类型只能选择以下两种表类型:

    • 主键模型(Unique Key) - 读时合并

    • 主键模型(Unique Key) - 写时合并

    增量子表

    全量有主键子表

    通用说明:

    不论目标表类型为「已存在表」还是「自动建表」,目标表增加_fdl_subtable_key字段,类型为varchar(32),不可取消,该字段与DM_KEY共同作为联合主键

    若为「自动建表」

    1)表类型只能设置为以下两种表类型:

    • 主键模型(Unique Key) - 读时合并

    • 主键模型(Unique Key) - 写时合并

    2)目标表主键不可手动修改,不可取消映射

    若为「已存在表」:

    1)表类型只能选择以下两种表类型:

    • 主键模型(Unique Key) - 读时合并

    • 主键模型(Unique Key) - 写时合并

    2)已存在表的主键(不算_fdl_subtable_key)必须与来源端完全一致,否则不可通过校验

    3)已存在表必须有_fdl_subtable_key作为主键,否则不可通过校验,该字段标红

    主表(无主键)、全量无主键子表

    若为「已存在表」

    已存在表表类型需为:明细模型(Duplicate Key)

    若为「自动建表」:

    表类型只能设置为:明细模型(Duplicate Key)  

    5. 实时任务

    5.1 自动建表/已存在表

    DB 表输出 选择 doris 作为数据去向:

    选择输出表类型说明
    已存在表

    表类型无限制

    表类型如果为明细模型:

    • 字段映射处不展示主键列,支持无主键同步(将插入事件的数据直接插入到目标表),任务重启时可能有重复数据,发生删除和更新事件将导致报错

    5.0.0.4 及之后版本,当前任务中存在产生更新流的算子&写入 Doris 时,不支持无主键同步;会产生更新流的算子:CDC输入、分组汇总、数据关联(多个实时数据源进行关联)

    • 写入方式处,不支持配置主键映射,不支持配置逻辑删除

    自动建表

    4.2.1.4 之前版本,表类型只能选择主键模型;4.2.1.4 及之后版本,表类型可以选择明细模型

    字段映射处,可以选择表类型为明细模型,当选择明细模型时:

    • 字段映射时不展示「主键」列,支持无主键同步(将插入事件的数据直接插入到目标表),任务重启时可能有重复数据,发生删除和更新事件将导致报错

    5.0.0.4 及之后版本,当前任务中存在产生更新流的算子&写入 Doris 时,不支持无主键同步;会产生更新流的算子:CDC输入、分组汇总、数据关联(多个实时数据源进行关联)

    • 写入方式处,不支持配置主键映射,不支持配置逻辑删除

    5.2 数据分批/写入间隔

    4.2.8.4 及之后版本,实时管道任务写入 SelectDB 时,写入方式支持设置数据分批、写入间隔。详情参见本文 2.6、2.7 节。

    6. 数据服务

    4.2.7.3 及之后版本,数据服务支持选择 Doris 数据库的分区表。

    附件列表


    主题: 配置数据源
    • 有帮助
    • 没帮助
    • 只是浏览
    中文(简体)

    鼠标选中内容,快速反馈问题

    鼠标选中存在疑惑的内容,即可快速反馈问题,我们将会跟进处理。

    不再提示

    10s后关闭



    AI

    联系我们
    在线支持
    获取专业技术支持,快速帮助您解决问题
    工作日9:00-12:00,13:30-17:30在线
    页面反馈
    针对当前网页的建议、问题反馈
    售前咨询
    采购需求/获取报价/预约演示
    或拨打: 400-811-8890 转1
    qr
    热线电话
    咨询/故障救援热线:400-811-8890转2
    总裁办24H投诉:17312781526
    提交页面反馈
    仅适用于当前网页的意见收集,帆软产品问题请在 问答板块提问前往服务平台 获取技术支持