0

我的要求是根据批处理表的增量大小窗口进行计算。

例如,第一个窗口有1行,第二个窗口有2行(包括第一个窗口的1行和一个新行),然后第三个窗口有3行(包括第二个窗口的2行和一个新行) , 等等。

例如:

源表:

日期时间 | 产品编号 | 价格 |

3-1 | p1 | 10 |

3-2 | p1 | 20 |

3-3 | p1 | 30 |

3-4 | p1 | 40 |

结果表:

日期时间 | 产品编号 | 平均|

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 窗口并将先前的值存储在用户定义的聚合对象中,但失败了,因为聚合对象将被所有产品重用,而不是每个产品的单个对象

4

1 回答 1

1

Flink 的 SQL 尚不支持批处理表的 OVER 子句。您可以在此处跟踪这项工作的状态。

但是,您是否考虑过在流表上实现此行为?流表也可以从静态文件(例如 CSV 文件)中读取,并且那里也支持许多操作。不过,这取决于您要在查询中使用的其他操作。

于 2018-03-26T11:27:16.490 回答