当前位置: 首页 > news >正文

用 Doris 托底实时明细与聚合Flink CDC Pipeline 的 Doris Sink 实战 - 详解

1. 快速开始:最小可用 Pipeline

下面这份 YAML 展示从内置 values 源写入到 Doris 的最小示例:

source:
type: values
name: ValuesSource
sink:
type: doris
name: Doris Sink
fenodes: 127.0.0.1:8030
username: root
password: ""
table.create.properties.replication_num: 1
pipeline:
parallelism: 1

说明:fenodes 为 FE 的 HTTP 地址;生产集群请配置多个 FE(逗号分隔)。table.create.properties.* 可在首次写入时为目标表指定 Doris 表属性(副本数等)。

2. 连接器能力与适用场景

可做什么?

  • ✅ 数据同步(CDC/批流写入)
  • ✅ 批量写入、异步 Flush、失败重试
  • ✅ 可选“忽略 update-before”实现简化 Upsert 语义
  • ✅ 可选 FE→BE 自动重定向(绕过 FE 转直写 BE,提高写入吞吐)

常见用法

  • ODS 明细落盘(高并发写入 + 低延迟查询)
  • DWD 轻聚合/拉链表(结合主键/唯一键模型)
  • 指标宽表/即席分析的实时侧视图

3. 常用参数速查与实践解读

只列高频关键项,完整清单见文末表格小结。

3.1 连接 & 路由

  • fenodes(必填):host:8030(FE HTTP);可多节点 a:8030,b:8030
  • benodes(可选):host:8040(BE HTTP);和 auto-redirect 配合减少 FE 压力。
  • jdbc-url(可选):jdbc:mysql://fe:9030/db;用于建表/探活等元数据交互场景。

3.2 写入语义

3.3 批量与性能

  • sink.enable.batch-mode(默认 true):开启批写。
  • sink.buffer-flush.max-rows(默认 50,000):单批最大条数。
  • sink.buffer-flush.max-bytes(默认 10MB):单批最大字节。
  • sink.buffer-flush.interval(默认 10s):批量超时自动 Flush,避免长时间积压。
  • sink.flush.queue-size(默认 2):批次并发队列,适度增大提升吞吐。
  • sink.max-retries(默认 3):失败重试次数。

3.4 FE→BE 直写

3.5 Stream Load 细化

  • sink.properties.*:透传 Doris Stream Load 参数,例如:

    sink.properties.strict_mode: true
    sink.properties.max_filter_ratio: 0
    sink.properties.format: json
    sink.properties.read_json_by_line: true

    典型用法:严格模式 + 行级 JSON;具体可按 Doris 文档调整。

3.6 自动建表属性

  • table.create.properties.*:在首次写入时指定 Doris 表属性,例如副本数、存储格式等:

    table.create.properties.replication_num: 3
  • 自动分区(Doris ≥ 2.1.6):

    • 仅支持 DATE / DATETIME 分区列,且采用 date_trunc 分区函数。
    • 通过 table.create.auto-partition.properties.* 进行控制(支持 include/exclude、默认分区键与单位,以及 DB.TABLE 级覆盖)。
    • 分区列不可为 NULLABLE;若出现 NULL,系统会用默认值回填(DATE → 1970-01-01,DATETIME → 1970-01-01 00:00:00)。

4. 生产级 YAML 示例(含批量、重定向、自动分区)

source:
type: mysql
name: MySQL Source
hostname: 10.0.0.10
port: 3306
username: cdc_user
password: ********
tables: ecommerce\..*          # 只需注意 '.' 的转义写法
server-id: 5401-5404
sink:
type: doris
name: Doris Sink (Prod)
fenodes: fe-1:8030,fe-2:8030
benodes: be-1:8040,be-2:8040,be-3:8040
username: sink_user
password: ********
# 性能
auto-redirect: true
sink.enable.batch-mode: true
sink.buffer-flush.max-rows: 80000
sink.buffer-flush.max-bytes: 33554432     # 32MB
sink.buffer-flush.interval: 5s
sink.flush.queue-size: 4
sink.max-retries: 5
# CDC 语义
sink.enable.delete: true
sink.ignore.update-before: false          # 主键变更场景更安全
# Stream Load 透传
sink.properties.strict_mode: true
sink.properties.format: json
sink.properties.read_json_by_line: true
sink.properties.max_filter_ratio: 0
# 建表/分区属性(按需)
table.create.properties.replication_num: 3
# 自动分区(Doris >= 2.1.6)
# include/exclude 支持正则;默认分区键/单位可被 DB.TABLE 覆盖
table.create.auto-partition.properties.include: ecommerce.orders.*,ecommerce.logs.*
table.create.auto-partition.properties.default-partition-key: dt
table.create.auto-partition.properties.default-partition-unit: day
table.create.auto-partition.properties.ecommerce.orders.partition-key: order_time
table.create.auto-partition.properties.ecommerce.orders.partition-unit: day
pipeline:
parallelism: 4

提示:default-partition-unit/partition-unit 的取值需与 Doris 当下对 date_trunc 的支持保持一致(常见 day/month 等)。上线前先在测试库/表验证自动分区是否按预期创建。

5. 数据类型映射(速查表)

Flink CDC TypeDoris Type备注
TINYINTTINYINT
SMALLINTSMALLINT
INTINT
BIGINTBIGINT
DECIMALDECIMAL
FLOATFLOAT
DOUBLEDOUBLE
BOOLEANBOOLEAN
DATEDATE
TIMESTAMP [§]DATETIME [§]
TIMESTAMP_LTZ [§]DATETIME [§]
CHAR(n)CHAR(n*3)Doris UTF-8 存储:英文 1 字节、中文 3 字节,长度按 3 放大;>255 自动转 VARCHAR
VARCHAR(n)VARCHAR(n*3)>65533 自动转 STRING
BINARY(n)STRING
VARBINARY(n)STRING
TIMESTRINGDoris 不支持 TIME,需转 STRING
STRINGSTRING

6. Doris 表模型与 CDC 的组合建议

若开启 sink.enable.delete=true 且模型支持删除,请确保表有恰当的主键/唯一键,以免出现“删不掉”的脏数据。

7. 上线前 Checklist

  1. 权限与网络:FE/BE HTTP 开放;Sink 账号仅授必需权限。
  2. 批量阈值:根据流量与延迟目标调优 max-rows/max-bytes/interval,观察 Stream Load QPS 及失败率。
  3. 重定向auto-redirect=true 并放通 BE;压测 FE/BE CPU、内存、磁盘与网卡。
  4. 主键/删除语义:确认是否需要处理 update-before;有主键变更风险时设为 false
  5. 自动分区:验证分区键类型(DATE/DATETIME)、单位、空值回填是否符合预期。
  6. 容错:设置 sink.max-retries,结合任务重启策略与告警(Stream Load 返回码/错误日志)。
  7. 冷热分层:结合 Doris 的存储策略(副本数、压缩)与保留策略控制成本。

8. 常见问题(Troubleshooting)

9. 选项小抄(完整版节选)

选项必填默认类型说明
typeString固定为 doris
nameString管道名称
fenodesStringFE HTTP 地址,host:8030(可多节点)
benodesStringBE HTTP 地址,host:8040
jdbc-urlStringDoris JDBC 地址(如 jdbc:mysql://fe:9030/db
usernameStringDoris 用户名
passwordStringDoris 密码
auto-redirectfalseString是否 FE 重定向直连 BE
charset-encodingUTF-8BooleanHTTP 客户端字符集
sink.enable.batch-modetrueBoolean批量写入
sink.enable.deletetrueBoolean允许 delete
sink.max-retries3Integer失败重试次数
sink.flush.queue-size2Integer批量并发队列大小
sink.buffer-flush.max-rows50000Integer单批最大行数
sink.buffer-flush.max-bytes10485760Integer单批最大字节(10MB)
sink.buffer-flush.interval10sString刷写间隔
sink.ignore.update-beforetrueBoolean忽略 update-before(Upsert 语义)
sink.properties.*String透传 Stream Load 参数(如 strict_mode 等)
table.create.properties.*StringDoris 表属性(如 replication_num
table.create.auto-partition.properties.*String自动分区配置(含 include/exclude、默认键/单位、DB.TABLE 覆盖)
http://www.jsqmd.com/news/72188/

相关文章:

  • 2025年12月铝单板厂家推荐:实力榜单与选择指南 - 品牌推荐
  • 空间辐射整改技术哪家好:十大服务商推荐 - 栗子测评
  • EMC 整改公司哪家好?来看看这份涵盖多家实力企业的推荐清单 - 栗子测评
  • 2025年12月成都全屋定制工厂推荐:权威榜单与深度评测指南 - 品牌推荐
  • 大夏龙雀DX-WF25 arduino开发平台搭建
  • 2025温州短视频推广哪家好?这10家服务商为品牌赋能 - 栗子测评
  • 传导整改技术哪家好?这十家专业公司值得信赖 - 栗子测评
  • 2025年12月成都全屋定制工厂推荐榜:高端定制品牌实力排行榜单深度评测分析 - 品牌推荐
  • ESD静电管的工厂技术解析与行业厂商概览 - 栗子测评
  • 2025年年终元器件厂家推荐:全流程服务能力横评,涵盖从现货配单到PCBA的10家实力厂商清单 - 品牌推荐
  • 2025年年终元器件厂家推荐:全流程服务能力横评,涵盖从现货配单到PCBA的10家实力厂商清单 - 品牌推荐
  • 2025年12月成都全屋定制工厂推荐:深度评测排行榜与选择指南 - 品牌推荐
  • 2025温州视频拍摄哪家好?这些专业公司用镜头定格品牌魅力 - 栗子测评
  • 10 家值得关注的 ESD 静电管的工厂推荐 - 栗子测评
  • if theres nothing to be pround but only self something
  • 2025深圳企业邮箱哪家好?这些服务商助力通信保障 - 栗子测评
  • 如何筛选靠谱的元器件合作厂家?2025年年终供应链服务能力综合评测与10家实力推荐! - 品牌推荐
  • 2025年年终小红书代理商推荐:从策略规划到执行落地的全链路能力横评,5家综合服务商实力盘点 - 品牌推荐
  • 2025年年终小红书代理商推荐:从策略规划到执行落地的全链路能力横评,5家综合服务商实力盘点 - 品牌推荐
  • 2025温州抖音推广哪家好?这些优质服务商为品牌引流增效 - 栗子测评
  • 2025年嗨卡洗车机深度解析:智能洗护技术标杆的市场口碑验证 - 品牌推荐
  • 2025年国内口碑不错的视光师培训学校排名,看哪家师资强? - mypinpai
  • 2025年深沟球轴承精品定制TOP5排行榜,精选深沟球轴承生 - 工业推荐榜
  • 2025年深沟球轴承精品定制TOP5排行榜,精选深沟球轴承生 - 工业推荐榜
  • 如何筛选靠谱的小红书代理商?2025年年终最新服务模式深度解析及5家实力服务商推荐! - 品牌推荐
  • 2025年中国调心球轴承优质生产商推荐:推荐一下调心球轴承制 - myqiye
  • 2025年五大圆柱滚子轴承厂推荐:圆柱滚子轴承靠谱生产商有哪 - 工业品牌热点
  • 2025年年终小红书代理商推荐:从内容创意到效果转化全链路能力横评,附5家服务商核心优势与适配场景清单 - 品牌推荐
  • 2025年年终化妆培训学校推荐:从师资实力到就业保障全方位盘点,10所实测表现突出机构清单 - 品牌推荐
  • 2025年年终工业刷厂家推荐:结合真实用户口碑与产能规模,5家高性价比合作方盘点 - 品牌推荐