大数据开发 Flink 如何使用广播变量(批处理) Flink 如何使用广播变量(批处理) 一. 广播变量介绍 广播变量用于批计算。Flink支持广播变量,可以将数据广播到TaskManager上,数据存储在内存中,这样可以减缓大量的shuffle操作,使用广播变量同时也可以节省内存。 某个算子使用广播变量后,该算子内部的任何函数都可以使用这个广播变量。 yuziyue 8 Aug 2023 · 2 min read
大数据开发 Flink 如何实现双流 join 连接 Flink 如何实现双流 join 连接 一. join() join() 即inner join,算子提供的语义为"Window join",即按照指定字段和(滚动/滑动/会话)窗口进行 inner join,支持处理时间和事件时间两种时间类型。left join 可以使用 coGroup 实现。二. coGroup() 使用 coGroup,不管能不能匹配上,都会把原始数据传递,下面的示例使用 coGroup 实现了 left join 的功能。 yuziyue 8 Aug 2023 · 5 min read
大数据开发 Flink 自定义 aggregate 总结 reduce和aggregate都是增量聚合,它们的区别如下 AggregateFunction 输入输出元素类型可以不相同。 ReduceFunction 输入输出元素类型相同 AggregateFunction它有三个参数:输入类型(IN),累加器类型(ACC)和输出类型(OUT),需要实现4个方法,所有的方法都是在同一个组里面:ACC merge(ACC a, ACC b); 合并两个累加器 yuziyue 6 Aug 2023 · 3 min read
大数据开发 Flink 广播流(流处理) 当两条流需要 join 的时候,并且其中一条流的数据量很小,并且不是经常变动。此时可以将数据流较小的流作为广播流,这样的话在另外一条流的每一个Subtask里面都有了这个数据量较小的数据流。 配合 MapStateDescriptor 使用,就可以把广播流当做变量一样来使用了。 同时还可以实时更新广播流的值。 yuziyue 29 Jul 2023 · 2 min read