Java Flink OutputTag可以重复使用吗?

Java Flink OutputTag可以重复使用吗?,java,apache-flink,Java,Apache Flink,在Flink中,当我们有两个或多个运算符同时输出相同数据类型的记录时,我们是否可以重用该数据类型的OutputTag 例如: OutputTag<A> sideOutputTag = new OutputTag<A>("side-output") {}; ProcessFunction1 processFunction1 = new ProcessFunction1(sideOutputTag); ProcessFunction2 processFun

在Flink中,当我们有两个或多个运算符同时输出相同数据类型的记录时,我们是否可以重用该数据类型的OutputTag

例如:

OutputTag<A> sideOutputTag = new OutputTag<A>("side-output") {};
ProcessFunction1 processFunction1 = new ProcessFunction1(sideOutputTag);
ProcessFunction2 processFunction2 = new ProcessFunction2(sideOutputTag);

SingleOutputStreamOperator<A> output1 = input.process(processFunction1).getSideOutput(sideOutputTag);

SingleOutputStreamOperator<A> output2 = input.process(processFunction2).getSideOutput(sideOutputTag);
OutputTag-sideOutputTag=新的OutputTag(“侧输出”){};
ProcessFunction1 ProcessFunction1=新的ProcessFunction1(SideOutputAG);
ProcessFunction2 ProcessFunction2=新的ProcessFunction2(SideOutputAG);
SingleOutputStreamOperator output1=input.process(processFunction1).getSideOutput(SideOutputAG);
SingleOutputStreamOperator output2=input.process(processFunction2).getSideOutput(SideOutputAG);
在这种方法中,
output1
是否包含由
processFunction2
处理的输出? 或者,
output1
output2
是否分别包含由
processFunction1
processFunction2
处理的记录


谢谢

您可以重用同一个标记,结果流将是不同的。例如:

final OutputTag errors=新的OutputTag(“errors”){};
SingleOutputStreamOperator task1=。。。;
SingleOutputStreamOperator task2=。。。;
SingleOutputStreamOperator task3=。。。;
DataStream exceptions1=task1.getSideOutput(错误);
DataStream exceptions2=task2.getSideOutput(错误);
DataStream exceptions3=task3.getSideOutput(错误);
数据流异常=异常1.union(异常2,异常3);
例外情况:addSink(新FlinkKafkaProducer(…);