当前位置:   article > 正文

Flink之数据流类型

flink里面的流类型

Flink为流处理和批处理分别提供了DataStream API和DataSet API。在开发工作中这些API极大的便利了开发者开发大数据应用。DataStream 在经过Transformation之后,会随之生成相应的数据流类型。比如:KeyedStream,JoinedStreams,CoGroupedStreams等等。但这些数据流类型之间是如何通过转换联系在一起的?。下文☞☞☞☞☞

流之间转换

15934580-158ee37036585e6a.png
图1

DataStream

DataStream 是Flink 流处理API中最核心的数据结构。他代表了一个运行在多个分区上的并行流。一个DataStream可以从StreamExecutionEnvironment 通过env.addSource(SourceFunction)获得,可以但是不限于这一种方式。

DataStream上的转换操作都是逐条的,比如map(),flatMap(),filter()。DataStream 也可以执行rebalance(再平衡,用来减轻数据倾斜) 和broadcaseted(广播)等分区转换。

  1. val stream: DataStream[MyType] = env.addSource(new FlinkKafkaConsumer011[String](...)).setParallelism(3)
  2. val str1: DataStream[(String, MyType)] = stream.flatMap { ... }
  3. val str2: DataStream[(String, MyType)] = stream.rebalance()
  4. val str3: DataStream[AnotherType] = stream.map { ... }

上面给出的DataStream代码块在运行时会转换成如下执行图:

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Li_阴宅/article/detail/767551
推荐阅读
相关标签
  

闽ICP备14008679号