我的用例
此post通过1天的翻滚窗口展示了一个很好的优化解决方案
所以我的逻辑将是
env.setStreamTimeCharacteristic(TimeCharacteristic.EventTime)
val oneDayCounts = joins
.keyBy(keyFunction)
.map(t => (t.key, 1L, t.timestampMs))
.keyBy(0)
.timeWindow(Time.days(1))
val sevenDayCounts = oneDayCounts
.keyBy(0)
.timeWindow(Time.days(7), Time.minutes(10))
.sum(1)
// single reducer
sevenDayCounts
.windowAll(TumblingProcessingTimeWindows.of(Time.minutes(10)))
P.S。忘记单个减速器的性能问题。
问题
但是,如果我理解正确,则由于滑动窗口的性质,这意味着单个事件将产生7 * 24 * 6 = 1008个记录。所以我的问题是如何减少绝对数量?
有一张JIRA票证FLINK-11276和google doc,主题是更有效地执行此操作。