The SLIDING window always triggers as of each step, what do you mean by "stepless" ?
Alex Cruise <a...@cluonflux.com> 于2020年10月21日周三 上午1:52写道: > whoops.. as usual, posting led me to find some answers myself. Does this > make sense given my requirements? > > Thanks! > > private class MyWindowAssigner(val windowSize: Time) : WindowAssigner<Record, > TimeWindow>() { > private val trigger = CountTrigger.of<TimeWindow>(1) as Trigger<Record > TimeWindow> > > override fun assignWindows( > element: Record, > timestamp: Long, > context: WindowAssignerContext > ): MutableCollection<TimeWindow> { > return mutableListOf(TimeWindow(timestamp - > windowSize.toMilliseconds(), timestamp)) > } > > override fun getDefaultTrigger(env: StreamExecutionEnvironment?): > Trigger<Record, TimeWindow> { > return trigger > } > > override fun getWindowSerializer(executionConfig: ExecutionConfig?): > TypeSerializer<TimeWindow> { > return TimeWindow.Serializer() > } > > override fun isEventTime(): Boolean { > return true > } > } > > > On Tue, Oct 20, 2020 at 9:13 AM Alex Cruise <a...@cluonflux.com> wrote: > >> Hey folks! >> >> I have an application that wants to use "stepless" sliding windows, i.e. >> we produce aggregates on every event. The windows need to be of a fixed >> size, but to have their start and end times update continuously, and I'd >> like to trigger on every event. Is this a bad idea? I've googled and read >> the docs extensively and haven't been able to identify built-in >> functionality or examples that map cleanly to my requirements. >> >> OK, I just found DeltaTrigger, which looks promising... Does it make >> sense to write a WindowAssigner that makes a new Window on every event, >> allocation rates aside? >> >> Thanks! >> >> -0xe1a >> >