0
所以我模拟使用Flink DataStream的流任务,我想在每个窗口上执行SQL查询。Flink DataStream - 在窗口上执行SQL查询,做orderBy
比方说,这是查询
SELECT name, age, sum(days), avg(salary)
FROM employees
WHERE age > 25
GROUP BY name, age
ORDER BY name, age
我有一个很难将其翻译为弗林克。根据我的理解,为了计算平均值,我需要手动使用.apply()
和WindowFunction
。但是,我如何计算总和呢?也手动在相同的WindowFunction?
我也想知道是否可以在整个窗口上进行排序?
下面是我到目前为止所想到的伪代码。任何帮助,将不胜感激!谢谢!
employeesStream
.filter(new FilterFunction() ....) \\ where clause
.keyby(nameIndex, ageIndex) \\ group by??
.timeWindow(Time.seconds(10), Time.seconds(1))
.apply(new WindowFunction() ....) \\ calculate average (and sum?)
// order by??
我检查了Table API但似乎对于流不是很多操作的支持,e.g排序依据。