我的要求是根据批处理表的增量大小窗口进行计算。
例如,第一个窗口有1行,第二个窗口有2行(包括第1个窗口的1行和新行),第3个窗口有3行(包括第2个窗口的2行和1个行)新行),等等。
例如:
datetime | productId |价格|
3-1 | p1 | 10 |
3-2 | p1 | 20 |
3-3 | p1 | 30 |
3-4 | p1 | 40 |
datetime | productId |平均|
3-1 | p1 | 10/1 |
3-2 | p1 | (10 + 20)/ 2 |
3-3 | p1 | (10 + 20 + 30)/ 3 |
3-4 | p1 | (10 + 20 + 30 + 40)/ 4 |
我试图找到一种方法用Sql实现这个要求,对我来说似乎OVER操作可以做到但是还没有在flink中实现,所以我需要一种替代方法。
顺便说一句:
我尝试使用1天的TUMBLE窗口并将之前的值存储在用户定义的聚合对象中但失败了,因为聚合对象将被所有产品重用,而不是每个产品的单个对象
答案 0 :(得分:1)
Flink的SQL尚不支持批处理表上的OVER子句。您可以跟踪此工作的状态here。
但是,您是否考虑在流表上实现此行为?流表也可以从静态文件(如CSV文件)中读取,并且还支持许多操作。这取决于您要在查询中使用的其他操作。