Skip to content

小米在Flink实时数仓的优化方案 ​

来源:语雀原文 | 整理日期:2026-09-22

背景介绍: ​

Flink简介 ​

Flink是Apache提供的一个批处理和流处理结合的统一计算框架,其核心是一个提供了数据分发以及并行化计算的流数据处理引擎。它的最大亮点是流处理,是业界最顶级的开源流处理引擎。

Flink最适合的应用场景是低时延的数据处理(Data Processing)场景:高并发pipeline处理数据,时延毫秒级,且兼具可靠性。

Flink技术栈如图1所示。

Flink技术栈

image.png

Flink在当前版本中重点构建如下特性:

  • DataStream
  • Checkpoint
  • 窗口
  • Job Pipeline
  • 配置表

Flink在小米的版本历程: ​

image.png

Flink在小米的现状: ​

image.png

Flink在小米的系统架构 ​

image.png

服务业务 ​

image.png

面临问题: ​

image.png

解决方案: ​

一:作业资源用量不好确定,影响资源利用率 ​

image.png

如何抉择?

image.png

image.png

二:存量版本过多,开发和运维压力大 ​

多个版本同存,老用户没有强意愿升级

导致:开发压力大,多版本同时维护;运维压力大,多版本来回切换

解决策略:

image.png

三:作业启动速度慢,造成作业重启时间断流 ​

​

image.png

优化措施:

image.png

Flink SQL维表Join 维表类型占比

image.png

表大小及速度对比:

image.png

优化策略:

image.png

image.png

image.png

image.png

image.png

image.png

最佳实践: ​

image.png

image.png

image.png

规划与展望: ​

image.png

总结: ​

image.png