历史版本28 :Doris数据源特性说明 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

通用限制编辑

1)FineDataLink 支持连接 Doris ,进行定时任务读写、管道任务写入、作为数据服务数据发布源、实时任务写入。

2)配置 Doris 数据连接时,输入的用户需要有 admin 权限,才能保证 FDL 功能的正常使用。

3)写入 Doris 数据库时,目标表表名中不能含中文

数据开发-定时任务编辑

读取

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

写入

目标表为自动建表

若数据去向选择了「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)此类型不支持自动建表

目标表已存在表

若数据去向选择了「Doris」数据源,则设置去向端表时,需要选择表类型,后续设置写入方式时有一定的限制,如下表所示:

表类型写入限制
明细模型(Duplicate Key)

1)写入方式选择「直接将数据写入目标表」时,不支持配置主键映射和主键冲突策略

2)写入方式不支持「基于标识字段,追加/更新/删除数据」

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

当选择直接将数据写入目标表时,主键冲突策略只能选择:

主键相同,覆盖目标表的数据

不支持:

  • 主键相同,忽略输入源的数据

  • 主键相同,停止写入并报错

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

聚合模型(Aggregate Key)

1)当选择"直接将数据写入目标表"时,不支持:

配置主键映射以及主键冲突策略

2)不支持选择"基于标识字段,追加/更新/删除数据";

分隔符说明

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字符作为行分隔符

2.0以下「2.0及以上版本不同的是,列分隔符中没有自动处理选项

特殊场景说明

写入到 Doris 时,写入方式选择直接直接将数据写入目标表」,设置主键冲突则覆盖,执行操作如下:

1)源表的所有字段先同步到目标表,比如字段 a 同步到目标表字段 a,任务运行后,此时目标表字段 a 有数据。

2)在字段映射里把字段 a 的映射关系取消,即代表着不同步字段 a 。

运行任务后将发现,目标表字段 a 的值都为 NULL(该问题等待产品后续解决)。

数据管道编辑

目标表为自动建表

若数据去向选择了「Doris」数据源,则设置去向端表时,需要选择表类型,如下表所示:

表类型建表时设置项说明
明细模型(Duplicate Key)

仅展示,不可选

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

必须设置物理主键

支持设置 NOT NULL

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

必须设置物理主键

支持设置 NOT NULL

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

聚合模型(Aggregate Key)仅展示,不可选

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 应用失败的日志。

同步时标记时间戳说明

4.1.7.2 之前版本,数据管道实时数据不支持「同步时标记时间戳」功能;FDL 为 4.1.7.2 及之后版本 & Doris 版本为 2.0 之后,支持「同步时标记时间戳」功能。

主键说明

不支持逻辑主键。

分隔符说明

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

数据开发-实时任务编辑

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

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

表类型无限制

表类型如果为明细模型:

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

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

自动建表

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

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

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

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