Java ProcessWindowFunction上的Flink单元测试<;输入、输出、按键、W>;
如何为有状态流程函数创建单元测试。我有这样的想法:Java ProcessWindowFunction上的Flink单元测试<;输入、输出、按键、W>;,java,apache-flink,flink-streaming,flink-cep,Java,Apache Flink,Flink Streaming,Flink Cep,如何为有状态流程函数创建单元测试。我有这样的想法: private static SingleOutputStreamOperator<Tuple> methodName(KeyedStream<Event, String> stream) { return stream.window(TumblingEventTimeWindows.of(Time.minutes(10))) .process(new ProcessFu
private static SingleOutputStreamOperator<Tuple> methodName(KeyedStream<Event, String> stream) {
return stream.window(TumblingEventTimeWindows.of(Time.minutes(10)))
.process(new ProcessFunction());
}
私有静态SingleOutputStreamOperator方法名(KeyedStream){
返回stream.window(TumblingEventTimeWindows.of(Time.minutes(10)))
.process(新的ProcessFunction());
}
及
ProcessFunction扩展了ProcessWindowFunction
我在Flink page中发现的所有线束测试都是从KeyedProcessFunction扩展而来的,这不是我的情况。
谢谢
亲切的问候 通常,这些测试线束预期测试操作员,而不是用户功能。因此,对于
ProcessWindowFunction
,您需要首先创建一个合适的窗口操作符以传递到测试线束
您可以使用围绕ProcessWindowFunction
的OneInputStreamOperator测试线束测试ProcessWindowFunction
。恐怕这不是很简单,但我可以给你举个例子
Ververica提供的Apache Flink培训课程涵盖了测试()的内容,其中包含了有关如何使用这些测试工具的更多信息。只是一个注释:由于Flink已经有一个名为ProcessFunction的公共类,如果您给类起一个不同的名称,那么就不会那么混乱了。请给出简单的,测试Flink窗口函数的基本示例?特别是滑动处理时间窗口
功能。我研究了这些代码片段,但它们对我来说似乎相当复杂。我无法将它们应用到我的项目中。我还尝试使用自定义接收器对窗口函数进行单元测试,但在输出上没有得到任何结果。Flink文档中也没有关于测试窗口函数的内容。我在任何地方都找不到测试Flink窗口函数的基本示例。
ProcessFunction extends ProcessWindowFunction<IN, OUT, KEY, W>