Re: [DataStream API] Best practice to handle custom session window - time gap based but handles event for ending session

2019-08-26 Thread Fabian Hueske
Hi Jungtaek, Sorry for the slow reply and thanks for the feedback on the book! :-) As I said, I don't think Flink's windowing API is well suited to deal with the problem of manually terminated session windows due lack of support to split windows. Given that Spark has similar support for timers, I

Re: [DataStream API] Best practice to handle custom session window - time gap based but handles event for ending session

2019-08-06 Thread Jungtaek Lim
Thanks Fabian on providing great input! Regarding your feedback on solution, yes you're right I realized I missed out-of-order events, and as you said we have to "split" existing window into two which current abstraction of custom window couldn't help here. (Flink would have no idea how aggregated

Re: [DataStream API] Best practice to handle custom session window - time gap based but handles event for ending session

2019-08-05 Thread Fabian Hueske
Hi Jungtaek, I would recommend to implement the logic in a ProcessFunction and avoid Flink's windowing API. IMO, the windowing API is difficult to use, because there are many pieces like WindowAssigner, Window, Trigger, Evictor, WindowFunction that are orchestrated by Flink. This makes it very har

Re: [DataStream API] Best practice to handle custom session window - time gap based but handles event for ending session

2019-08-04 Thread Jungtaek Lim
Thanks Dongwon to provide feedback and share your approach! I'm not sure it could be possible (not an expert), but if we could reset intermediate result (aggregated) after processing "fire event", I guess it would work as expected, as window would still expand even after "session end", but it will

Re: [DataStream API] Best practice to handle custom session window - time gap based but handles event for ending session

2019-08-04 Thread Dongwon Kim
Hi Jungtaek, I've faced a similar problem in the past; we need to calculate an aggregate upon receiving an end message from each user. While you're trying to solve problem by defining a custom window assigner, I took a different approach to the problem by implementing a custom trigger. You can s

[DataStream API] Best practice to handle custom session window - time gap based but handles event for ending session

2019-08-04 Thread Jungtaek Lim
Hi Flink users, I've been spending time to learn and play with Flink DataStream API, not an expert level but as a beginner. :) To play with custom window API, I just created a small example, session window based on fixed time gap, but indicate the type of event which may contain "end of session".