2.Flink应用

2.1 数据流

 

  1. DataStream:DataStream是Flink数据流的核心抽象,其上定义了对数据流的一系列操作
  2. DataStreamSource:DataStreamSource 是 DataStream 的 起 点 , DataStreamSource 在StreamExecutionEnvironment 中 创 建 , 由 StreamExecutionEnvironment.addSource(SourceFunction)创建而来,其中SourceFunction中包含了DataStreamSource从数据源读取数 据的具体逻辑。
  3. DataStreamSink:数据从DataSourceStream中读取,经过中间的一系列处理操作,最 终 需 要 写 出 到 外 部 存 储 , 通 过DataStream.addSink(sinkFunction)创建而来,其中SinkFunction定义了写出数据到外部存储的具体逻辑。
  4. KeyedStream:KeyedStream用来表示根据指定的key进行分组的数据流。一个KeyedStream 可 以 通 过 调 用 DataStream.keyBy ( ) 来 获 得 。 而 在 KeyedStream上进行任何Transformation都将转变回DataStream。在实现中,KeyedStream把key的信息写入了Transformation中。每条记录只能访问所属key的状态,其上的聚合函数可以方便地操作和保存对应key的状态。
  5. WindowedStream & AllWindowedStream:WindowedStream代表了根据key分组且基于WindowAssigner切分窗口的数据流。所以WindowedStream都是从KeyedStream衍生而来的,在WindowedStream 上 进 行 任 何 Transformation 也 都 将 转 变 回DataStream。
  6. JoinedStreams & CoGroupedStreams:JoinedStreams 底 层 使 用CoGroupedStreams来实现。
  7. ConnectedStreams:ConnectedStreams表示两个数据流的组合,两个数据流可以类型一样,也可以类型不一样。
  8. BroadcastStream & BroadcastConnectedStream:BroadcastConnectedStream 一 般 由 DataStream/KeyedDataStream与BroadcastStream连接而来,类似于ConnectedStream。
  9. IterativeStream:IterativeDataStream是对一个DataStream的迭代操作,从逻辑上来说,包含IterativeStream的Dataflow是一个有向有环图,在底层执行层面上,Flink对其进行了特殊处理。
  10. AsyncDataStream:AsyncDataStream是个工具,提供在DataStream上使用异步函数的能力。

2.2 处理函数

  1. Map:1进1出
  2. FlatMap:1进多出
  3. Filter:返回true继续传递
  4. KeyBy:进行逻辑分组
  5. Reduce:增量合并:按照KeyedStream中的逻辑分组,将当前数据与最后一次的Reduce结果进行合并。
  6. Aggregation:渐进聚合,可以设置初始值。
  7. Window:对KeyedStream的数据,按照Key进行时间窗口切分。
  8. WindowAll:对一般的DataStream进行时间窗口切分,即全局1个窗口。
  9. Union:把两个或多个DataStream合并,要求数据类型一致。
  10. connect:只能合并2个流,数据类型可以不一致。可以共享状态
  11. Join:在相同时间范围的窗口上Join两个DataStream数据流,输出结果为DataStream。
  12. Interval Join:对满足时间范围的两个KeyedStream进行Join,和Join时使用的Key,输出结果为DataStream。
  13. WindowCoGroup:两个DataStream在相同时间窗口上应用CoGroup运算,输出结果为DataStream,CoGroup和Join功能类似,但是更加灵活。
  14. Split:切分流,前后流数据类型一致(侧输出可以不一致)
  15. Select:与 Split 运 算 配 合 使 用 , 在 Split 运 算 中 切 分 的 多 个DataStream中选择一个。
  16. Iterate:在数据流中创建一个迭代循环,即将下游的输出发送给上游重新处理。IteractiveStream本质上来说是一种中间数据流对象。
  17. Extract Timestamps:从记录中提取时间戳,并生成Watermark。
  18. Project:该类运算只适用于Tuple类型的DataStream,使用Project选取子Tuple,可以选择Tuple的部分元素,可以改变元素顺序。

猜你喜欢

转载自blog.csdn.net/qq_35590459/article/details/132126261