普元数据开发平台 普元数据开发平台
产品介绍
安装部署
快速入门
操作指南
应用集成
运维指南
  • Doris Sink 组件使用说明
  • 组件说明
  • 配置项说明
  • 性能调优
  • FAQ

# Doris Sink 组件使用说明

  • 组件说明
  • 配置项说明
  • 使用示例
    • Doris到Doris数据库同步
    • Doris到Doris多表同步
  • FAQ

# 组件说明

Doris Sink 将数据批量缓存后,通过 HTTP 协议向 Doris FE 发送 Stream Load 请求,由 FE 转发给 BE 执行导入。不是 JDBC 写入。

提示

点击对应表的【目标表参数】按钮展开的配置项,完成配置后必须点击弹窗底部的【保存配置】按钮才能保存各自表的配置参数。

# 配置项说明

配置名称 数据类型 是否必填 默认值 描述
节点名称 String 是 Doris 当前创建的节点名称,由用户自定义且不可为空。命名可包含字母、数字、下划线。确保唯一性。
节点编码 String 是 自动生成 当前创建的节点编码,以此标识此组件,由用户自定义且不可为空。命名可包含字母、数字、下划线。确保唯一性。
选择数据源 String 是 - 从下拉选项中选择列出的当前项目已经关联的数据源。
选择库 String 是 - 从下拉列表中选择数据库。
表添加模式 String 否 表不存在时创建 Doris Sink 可以根据上游 Schema 自动在 Doris 创建表。有四种建表策略:
- 重新创建表:不存在则创建,存在则删表重建
- 表不存在时创建:不存在则创建,存在则跳过
- 表不存在时报告错误:表不存在直接报错
- 忽略对表的处理
选择表 String 是 - 从下拉列表中选择数据表。
数据添加模式 String 否 追加数据 数据已存在时的策略支持四种模式:
- 追加数据:数据统一追加到目标表中;
- 同步前删除数据:先清空目标表数据,然后再给目标表添加数据;
- 当存在数据时,报告错误:当目标表存在相同数据时,报告错误,不会添加数据。
- 自定义处理:用户可以自定义写SQL的方式进行处理。
大小写转换模式 String 否 不转换 支持三种配置:
- 不转换:目标表与来源表的表名、字段名大小写一致;
- 转大写:将目标表的表名、字段名转换为大写;
- 转小写:将目标表的表名、字段名转换为小写。
标签前缀 String 是 - StreamLoad提交时的唯一标识,如果不填写系统会自动生成一个UUID。
启用两阶段提交 Boolean 是 false 用于确保分布式事务的原子性。它被用来确保在分布式环境中,所有参与的节点要么都成功提交事务,要么都回滚,避免部分提交的情况发生。
是否启用删除 Boolean 是 false 删除所有与导入数据 key 列值相同的行。该选项需要 Doris 表开启批量删除功能 (默认开启 0.15+ 版本),且只支持 Unique 表模型。
启用不支持的类型转换 Boolean 是 false 启用不支持的类型转换。
批量提交缓冲区计数 Integer 是 3 批量提交缓冲区计数,单位:行。
批量提交最大缓存 Integer 是 262144 批量提交缓冲区计数,单位:byte。
最大重试次数 Integer 是 3 最大重试次数,单位:次。
提交记录数量 Integer 是 1 每次提交数据的数量,单位:行。
可选参数 Map 否 - 可以根据需求进行配置。可选参数名称可以参考 Seatunnel 官方手册。
json 格式如:
{
"doris.config": "{ "format" :"JSON", "read_json_by_line": true }"
}

表添加模式为“重新创建表”和“表不存在时创建”,【获取表】后,可以点击每张表后的【目标表参数】按钮分别为表配置更多的参数,具体如下:

配置名称 数据类型 是否必填 默认值 描述
名称 String 是 - 表名称。
建表类型 String 是 明细表 三种类型:主键表、明细表、聚合表。
自定义模板 Boolean 否 否 是否启用自定义模板的开关。启用后可以自己定义模板内容。
选择分桶键字段 List 否 - 从下拉列表中选择表字段作为分桶键。
建表模板 String 否 - 内置默认建表模板。

# 性能调优

  1. 调大缓冲区

sink.buffer-size = 10485760(10MB)

doris.batch.size = 20000

  1. 2PC 模式下 buffer-size 失效

如果开启 sink.enable-2pc = true,sink.buffer-size 配置将不起作用,刷写完全由 checkpoint.interval 触发。

需合理设置 Checkpoint 间隔(如 30 秒~60 秒),避免延迟过大 。

  1. JSON 解析优化

read_json_by_line = true(每行一个 JSON,大幅降低解析开销)

# FAQ

← Console Elasticsearch →