中间件速查手册
大数据计算数据流

DataStream 是什么?

Flink 里最核心的抽象,一条条事件组成的流,可以无限长

类比:传送带上的零件,一个接一个过来,永远不知道什么时候停

流是基础,批是特例

Flink 把有界数据(批)也当成一种特殊的流:读完就结束的流。所以同一套 API 既能处理实时数据,也能处理历史文件,只是“结束条件”不同。

常用算子

和 Spark 类似,但语义是“每条数据触发一次”。

  • map / filter / flatMap:一对一或一对多转换
  • keyBy:按 key 分区,相同 key 一定进同一个并行子任务
  • window:把无限流切成有限片段
  • connect / union:合并多条流

并行度

每个算子可以有自己的并行度,keyBy 之后相同 key 的数据会固定路由到同一个 subtask。这也是 Flink 能维护“按 key 的状态”的前提——状态不需要跨节点同步。

它出现在这些中间件里

相关概念