我的要求是基于批处理表的增量大小窗口进行计算。
例如,第一个窗口有1行,第二个窗口有2行(包括第1窗口的1行和新的行),然后第3窗口中的3行(包括第2窗口的2行和新的行)等等。
例如:
来源表:
日期时间/ productId价格
3-1,p1,10,000,000
3-2,p1,20,000
3-3 p1 \x{e76f} 30
3-4,p1,40,000,000
成果表:
日期-时间- productId -平均
3-1维p1 \ 10/1 \x{e76f}
3-2 \x{e76f} p1 \x{e76f} (10+20)/2
3-3 \x{e76f} p1 \x{e76f} (10+20+30)/3
3-4 \x{e76f} p1 \x{e76f} (10+20+30+40)/4
我试图找到一种用Sql实现这一需求的方法,在我看来,OVER可以做到这一点,但还没有在flink中实现,所以我需要另一种方法。
BTW:
I尝试使用1天的滚动窗口,并将先前的值存储在用户定义的聚合对象中,但是失败了,因为聚合对象将被所有产品重用,而不是每个产品的单个对象。
发布于 2018-03-26 11:27:16
Flink的SQL还不支持批处理表上的OVER子句。您可以跟踪此工作的状态,这里。
但是,您是否考虑在流表上实现此行为?流表也可以从静态文件(如CSV文件)中读取,而且还支持许多操作。不过,这取决于您希望在查询中使用的其他操作。
https://stackoverflow.com/questions/49483136
复制相似问题