1,如果输出是数据的话,是不满足我们业务需求的 ,因为每次触发都是从头到尾的数据,我想要的是每次触发都是新的数据,可是触发器只能控制触发效果,不能做到控制输出结果,输出结果是由process函数决定的。
没太多意义。
2,完整代码
package com.sjb.flink.trigger;
import org.apache.flink.api.common.functions.ReduceFunction;
import org.apache.flink.api.common.functions.RichFlatMapFunction;
import org.apache.flink.api.common.state.MapState;
import org.apache.flink.api.common.state.MapStateDescriptor;
import org.apache.flink.api.common.state.ReducingState;
import org.apache.flink.api.common.state.ReducingStateDescriptor;
import org.apache.flink.api.common.typeutils.base.LongSerializer;
import org.apache.flink.api.java.functions.KeySelector;
import org.apache.flink.streaming.api.TimeCharacteristic;
import org.apache.flink.streaming.api.datastream.DataStreamSource;
import org.apache.flink.streaming.api.datastream.SingleOutputStreamOperator;
import org.apache.flink.streaming.api.environment.StreamExecutionEnvironment;
import org.apache.flink.streaming.api.functions.source.SourceFunction;
import org.apache.flink.streaming.api.functions.windowing.ProcessWindowFunction;
import org.apache.flink.streaming.api.windowing.assigners.TumblingProcessingTimeWindows;
import org.apache.flink.streaming.api.windowing.time.Time;
import org.apache.flink.streaming.api.windowing.triggers.Trigger;
import org.apache.flink.streaming.api.windowing.triggers.TriggerResult;
import org.apache.flink.streaming.api.windowing.windows.TimeWindow;
import org.apache.flink.util.Collector;
import java.util.Iterator;
/**
* @program: flink
* @description: Flink 自定义触发器
* @author: Mr.Wang
* @create: 2020-12-30 15:28
**/
public class WindowTriggerDemo {
public static void main(String[] args) {
StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();
env.setParallelism(1);
env.setStreamTimeCharacteristic(TimeCharacteristic.ProcessingTime);
DataStreamSource<String> source = env.addSource(new SourceFunction<String>() {
@Override
public void run(SourceContext<String> ctx) throws Exception {
int count = 0;
while (true) {
count++;

该博客探讨了Flink触发器在控制数据输出上的局限性,指出触发器只能影响触发频率,无法直接控制输出内容。作者通过示例代码展示了数据写入的过程,每个数据点都附带有计数器,但并未提供解决方案来实现按需输出新数据的需求。
最低0.47元/天 解锁文章
746

被折叠的 条评论
为什么被折叠?



