DataStream对象,简称ds,作为流计算编程的核心上下文。提供多种功能
//1:接入数据源
1:ds由env和SourceFunction产生,完成接入数据源的功能
//2:数据处理
2:filter。实现过滤功能
3:map,实现1->1的映射转换
4:flatmap,实现拆解字符串等复杂的转换功能
5:project,实现字段裁剪
6:transform实现复杂需求的功能
//3:join流
7:coGroup,流合并
8:join,实现流join
0:union,merge两个流
//4:分组,种类太多。也没整明白。大多只用keyBy就行。其他都有特殊场景,或者性能优化用处的
9:keyBy,实现按指定key的value值的hash,实现数据分组
10:shuffle,实现数据随机分组
11:broadcast,实现数据的广播
12:forward,实现本地task分组
13:rebalance,使用随机函数,进行数据分组
14:rescale,数据随机的分组到一个instance子集
15:global,将数据发送到,下个操作的第一个instance
15:partitionCustom,实现数据的自定义分组
//5:窗口函数,跳动窗口,滑动窗口两种类型
16:timeWindowAll,实现时间的滑动窗口和跳动窗口
17:countWindowAll,实现事件个数的滑动窗口和跳动窗口
18:windowAll,自定义窗口。时间和事件个数的窗口就是基于这个实现的。
//6:事件时间
19:assignTimestampsAndWatermarks,为事件指定时间,和WATERMARK类型。
//:输出
20:addSink,根据SinkFunction的实现,实现数据处理的结点,一般是数据落地
21:writeUsingOutputFormat,通过OutputFormatSinkFunction,封装了addSink,根据OutputFormat实现类,实现数据落地。