Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache flink 如何为基于批处理表增量窗口的计算编写SQL_Apache Flink_Flink Sql - Fatal编程技术网

Apache flink 如何为基于批处理表增量窗口的计算编写SQL

Apache flink 如何为基于批处理表增量窗口的计算编写SQL,apache-flink,flink-sql,Apache Flink,Flink Sql,我的要求是基于批处理表的增量大小窗口进行计算 例如,第一个窗口有1行,第二个窗口有2行(包括第一个窗口中的1行和一个新行),然后第三个窗口中有3行(包括第二个窗口中的2行和一个新行),依此类推 例如: 源表: 日期时间|产品ID |价格| 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|

我的要求是基于批处理表的增量大小窗口进行计算

例如,第一个窗口有1行,第二个窗口有2行(包括第一个窗口中的1行和一个新行),然后第三个窗口中有3行(包括第二个窗口中的2行和一个新行),依此类推

例如:

源表: 日期时间|产品ID |价格|

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 action可以做到这一点,但尚未在flink中实现,所以我需要一种替代方法

顺便说一句:


我尝试使用1天的翻滚窗口,并将以前的值存储在用户定义的聚合对象中,但失败了,因为聚合对象将被所有产品重用,而不是每个产品的单个对象

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


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

你为什么说
OVER
尚未实现?据我所知是这样的。我认为这是本例中的go-to功能。我在批处理窗口中提到了。谢谢,我将尝试查看流媒体是否具有我的应用程序的所有功能。看起来不可行,我必须在两个表上进行连接是否还有其他解决方法,如使用用户定义的函数进行播放?连接将在1.5中用于流式处理,但性能可能不如批处理。您可以尝试使用聚合功能(是否按产品id分组?)。否则,我认为您现在必须使用DataSet API。是的,我按productId分组,并尝试将以前的计算结果存储在聚合函数中,但它不起作用,因为累加对象被重用,而且我看到当并行度大于1时,窗口不是按时间顺序计算的