湖流一体:重塑实时开发

纯实时场景:flink 2.1 + paimon 1.2 + fluss 0.8,从开发使用角度出发。

传统架构

  • Kafka -> Flink -> Kafka -> Flink -> OLAP/Kafka

  • 问题

    • Kafka

      • 不支持去重

      • 查询能力不足

      • 数据回溯困难

      • 过高的网络成本

    • Flink

      • 状态过大

      • changelog

  • 计算&存储:一起解决问题

    • RsingWave?

Q1:Why changelog

Changelog机制

2025-05-04T15:55:36-nhwgcsex.gif

2025-06-02T14:50:56-bmwkddjg.gif

Changelog乱序

  • 中间结构 vs 错误结果

  • Why not DataStream?

  • changelog 乱序:SinkUpsertMaterializer vs Sequence Field/Group

Changelog生成

  • 算子

  • 存储

Q2:可以干掉状态嘛?

  • 性能

聚合

  • 聚合:

    • 实时:前置计算

    • 准实时:中置计算

Join算子

  • 关联:Stream join

    • 维表关联:LookUp

    • 双流join

      • 主键:Partial Update

      • 外键:Delta Join

\Delta(A\bowtie B)=\Delta A\bowtie B+A\bowtie \Delta B+\Delta A\bowtie \Delta B=\Delta A\bowtie (B+\Delta B)+A\bowtie \Delta B

Q3:回溯成本太高?

  • Lakehouse: Union Read

https://github.com/alibaba/fluss/issues/107

流批一体:增量计算

  • 近线(分钟级)&离线场景:调度+增量计算

https://developer.aliyun.com/article/1648292

参考文献


湖流一体:重塑实时开发
https://syntomic.cn/archives/rebuilt-streaming-development
作者
syntomic
发布于
2025年03月08日
更新于
2025年10月10日
许可协议