我想发出一个时间窗口的最后一条记录。这很容易做到 maxBy
在常规的flink中,但我无法通过sqlapi让它工作。我想要的是:
SELECT LAST(attribute) FROM [table]
GROUP BY key, TUMBLE(ts, INTERVAL '1' DAY)
其行为类似于
ds.keyBy(key)
.window(TumblingEventTimeWindows.of(Time.days(1)))
.maxBy(x -> x.getTs())
有什么方法可以在sqlapi中实现这一点吗?
1条答案
按热度按时间vu8f3i0k1#
我认为flink中还没有一个内置函数,但是您可以为此实现一个用户定义的聚合函数。
您需要稍微调整一下查询,并在聚合函数中传递timestamp字段,因为sql不会假定查询的行的顺序
GROUP BY
集团:有关如何实现和注册用户定义的聚合函数的详细信息,请参阅文档。