flink流处理程序的一般流程
1)获取flink流处理执行环境
2)构建source
3)数据处理
4)构建sink
与批处理相比
1.运行环境不同,streamexecutionenvironment
2.有些算子不同
3.程序是一直运行的,除非我们手动停止
输入数据集data source
flink中你可以使用streamexecutionenvironment.addSource(source)来为程序添加数据来源
flink已经提供了若干实现好的source functions,当然你也可以通过实现sourcefunction来自定义非并行的source或者实现parallesourcefunction接口或拓展richparallesourcefunction来自定义source
flink在流处理上常见的source
基本有四大类
基于本地集合
基于文件
基于网络套接字
自定义source
transformnation
keyby
按照指定的key来进行分流,类似于批处理的groupby
connect
connect用来将两个datastream组成一个connectedstreams
数据类型可以不同
但是union必须要求数据类型一致才能union
split和select
split就是将一个datastream分成多个流,用splitstream来表示datastream-splitstream
select就是获取分流后对应的数据,跟split搭配使用,从splitstream中选择一个或者多个流,splitstream - datastream