推荐星级:
  • 1
  • 2
  • 3
  • 4
  • 5

Apache Flink 中的有界流抽象

更新时间:2026-06-29 08:12:50 大小:18K 上传用户:江岚查看TA发布的资源 标签:apache 下载积分:2分 评价赚积分 (如何评价?) 打赏 收藏 评论(0) 举报

资料介绍

流处理是大数据领域应对持续不断数据生成场景的核心计算范式,而Apache Flink作为当前流批一体计算架构的代表框架,其核心设计思想之一就是对不同数据特性的流进行统一抽象。在Flink的世界中,所有数据都被抽象为流,而按照数据的边界特性,可以将流划分为有界流与无界流两类,其中有界流抽象是Flink实现流批统一的核心基础,也是理解Flink批处理执行逻辑的关键入口。

一、有界流与无界流的核心定义

从数据产生的特性来看,无界流指的是数据持续生成、没有固定结束点的数据流,比如实时采集的用户行为日志、物联网设备持续上报的传感器数据,这类数据需要持续不断地进行处理;而有界流则指的是数据集范围固定、有明确起始和结束边界的数据流,本质上就是我们传统意义上的静态批量数据集,比如已经存储在HDFS中的历史订单数据、按天分区的离线用户属性表。

传统大数据架构中,流处理与批处理是两套独立的计算引擎:流处理引擎针对无界流做持续计算优化,批处理引擎针对有界的静态数据集做吞吐优化,两套架构带来了开发成本高、数据一致性难以保证、运维复杂等诸多问题。Flink提出流批一体的核心设计,就是将无论是有界还是无界的数据都统一抽象为流,用一套执行引擎来处理两种场景,其中有界流就是批量数据在统一抽象下的表现形式。

二、Flink有界流抽象的核心设计

2.1 基于数据流模型的统一抽象

Flink的核心数据流模型中,所有的计算都围绕DataStreamAPI展开,在早期版本中批处理使用独立的DataSetAPI,从Flink 1.12版本开始,社区正式实现了流批一体API统一,将传统的DataSet废弃,所有的数据集都用DataStream来表示:当输入源是有界数据时,生成的就是有界的DataStream,当输入源是无界数据时,生成的就是无界的DataStream

这种抽象带来的最大好处是,一套业务逻辑代码只需要修改输入源,就可以同时支持离线批处理和实时流处理场景,不需要开发两套逻辑。比如计算用户的日活指标,针对离线历史数据的有界流计算,和针对实时接入数据的无界流计算,计算逻辑代码可以完全复用,极大降低了开发成本。


部分文件列表

文件名 大小
Apache_Flink_中的有界流抽象.docx 18K

【关注公众号领20积分】

全部评论(0)

暂无评论

上传资源 上传优质资源有赏金

  • 打赏
  • 30日榜单

推荐下载