flink DataStream API

一、DataStream方法:

Flink专题三:Flink DataStream 算子介绍及使用_beyond的架构之旅的博客-CSDN博客_datastream flink

在这里插入图片描述
split 拆分stream,返回SplitStream,SplitStream定义了select方法,可以根据select方法查询拆分的datastream。
connect合并流,只能连接两个流,两个流类型可以不一致,返回ConnectedStreams(CoMap, CoFlatMap等方法)。
union     可以连接多个流,流的类型必须一致 返回DataStream。
join  join(otherStream).where(<KeySelector>).equalTo(<KeySelector>)//JoinedStreams
            .window(EventTimeSessionWindows.withGap(Time.milliseconds(1)))//JoinedStreams 指定join等待时间
        .apply { (e1, e2) => e1 + "," + e2 } //DataStream  。
keyBy 返回KeyedStream
            .keyBy(new KeySelector<ProductViewData, String>() {//实体类keyby写法
            @Override
            public String getKey(ProductViewData value) throws Exception {
                return value.productId;
            }
            //时间窗口 6秒  滑动间隔3秒
        })   。

partitionCustom 自定义分区
rebalance    自动分区,防止数据倾斜
shuffle     自定义分区
broadcast    广播状态,可以把用户黑名单广播到广播变量中,然后事件流和广播的配置流连接      
                          https://blog.csdn.net/wangpei1949/article/details/99698978

map
flatMap
process  //入参ProcessFunction
filter
coGroup(dataStream).where(_.gdsId) 类似join,可以实现left join

timeWindowAll AllWindowedStream
countWindowAll
windowAll

二、KeyedStream 继承DataStream,通过调用keyBy


process //入参ProcessFunction KeyedProcessFunction     onTimer方法实现延时处理。
timeWindow 时间窗口,一个参数滚动窗口,两个参数滑动窗口  WindowedStream
countWindow 计数窗口
window
reduce
fold、sum、min、minBy
不能调用windowAll等方法。

三、WindowedStream 


 * 增量聚合窗口中每进入一条数据,就进行一次计算
 •reduce(reduceFunction) 入参出参数据类型一致。
 •aggregate(aggregateFunction) 不需要入参和出参一致
 •sum(),min(),max()
 全量聚合
 •apply(windowFunction) 过时
 •process(processWindowFunction) 效率比较低
 processWindowFunction比windowFunction提供了更多的上下文信息。


 四、实时计算流程


 1、获取数据流DataStreamSource
final StreamExecutionEnvironment env= StreamExecutionEnvironment.getExecutionEnvironment(); //自定义数据源SourceFunction RichParallelSourceFunction DataStreamSource<Tuple2<String, Long>> ds=env.addSource
2、使用map、flatMap、join等格式化
 3、计算
  a、不keyBy,直接windowAll;
  b、keyBy,历史累计数据,可以调用process进行KeyedProcessFunction自定义窗口操作;
  c、window,通过KeyedStream的window api调用WindowedStream的api。
 4、addSink

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值