Flink: Trigger.onElement working

I am doing functions on a datastream,

DataStream<Tuple4<String,String,Double,Double>> price_warning=datastream_in .flatMap(new Splitter())// transformation flatmap .keyBy(2) .window(SlidingProcessingTimeWindows.of(Time.seconds(180),Time.seconds(10))) .trigger(new ElementTimeTrigger()) .apply(new WindowFunction());

This is a part of my code, just for the idea that what I am doing. Here, on datastream, I am doing flatmap to parse the datastream_in into Tuple, then the stream is keyby on second filed of tuple. After that I apply sliding window followed by trigger. Here I am using onElement() method for triggering. Finally, I use apply as a custom function.

When I run the code, the apply function is called 18 times (180/10, ref. sliding window) for each message that I have parsed. What can be the reason behind it? How the trigger exactly work with sliding window?

** I can also provide the entire code if necessary.

1

1 Answer

Trigger tells where a window should be emitted. In your case if I understand you correctly You trigger window emitting for every element that enters your stream thus the number 18. The SlidingProcessingTimeWindow have already a default trigger that will emit windows when the processing time pass the end of window.

For more info on Trigger concept you can read this

1

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

You Might Also Like