一、DataStream编程模型
1、datasource模块:定义数据接入功能,将各种外部数据接入至flink系统中,并将接入的数据转换成对应的datastream数据集
2、transformation模块:定义了对datastream数据集的各种转换操作
3、datasink模块:将结果数据输出到外部存储介质中
二、flink数据源的类型
1、内置数据源:
1.1、文件数据源
1.2、socket数据源
1.3、集合数据源
2、第三方数据源:
2.1、数据源连接器
仅支持读、仅支持写、既支持读又支持写
2.2、自定义数据源连接器
继承sourcefunction接口或者parallelsourcefunction接口
三、datastream转换操作
1、分类:
1.1、single-datastream操作:定义对单个datastream数据集元素的处理逻辑
map、flatmap、filter、keyby、reduce、aggregation、
1.2、multi-datastream操作:定义对多个datastream数据集元素的处理逻辑
union、connect、comap、coflatmap、split、select、iterate
1.3、物理分区:定义对数据集中并行度和数据分区调整转换的处理逻辑
常见的数据重分区策略:随机分区、循环分区、rescale、广播操作、自定义分区
四、数据输出
1、基本数据输出:文件输出、客户端输出、socket输出
2、第三方数据输出
五、时间概念
1、事件生成时间
2、事件接入时间
3、事件处理时间
六、窗口的类型
1、分类一:基于时间的窗口,基于数量的窗口
2、分类二:滚动窗口、滑动窗口、会话窗口、全局窗口
七、窗口的数据处理函数
1、reducefunction
2、aggregationfunction
3、foldfunction
4、processWindowfunction
八、窗口触发器
1、eventtimetrigger
2、processtimetrigger
3、continuouseventtimetrigger
4、continuousprocessingtime trigger
5、counttrigger
6、deltatrigger
7、purgingtrigger
九、数据剔除器
1、countevictor
2、deltaevictor
3、timeevictor
十、连续窗口计算
1、独立窗口计算
2、连续窗口计算
十一、多流合并
1、滚动窗口关联
2、滑动窗口关联
3、会话窗口关联
4、间隔关联