我为用户提供了一个flinksql接口,所以我不能真正使用table或java/scala接口。一切都需要在sql中指定。不过,我可以解析sql文件中的注解,并添加指定的即席低级api指令。
一个用户如何转换,比如说:
SELECT b, AVG(a) "average" FROM source_data GROUP BY b
name: average_source_data_retracting
b STRING
average NUMERIC
-也就是把值缩回一个可以附加它们的窗体。此附加表单可以具有以下架构:
name: average_source_data_appending
flag BOOLEAN <-- indicating an accumulate or retract message
b STRING
average NUMERIC
也就是说,RetractStreamTableLink相当于AppendStreamTableLink,但它不是一个接收器。
所有这些都允许使用平均源数据追加来创建时态表(过滤收回消息),但这种表只接受只追加源表。
我已经考虑过使用windows(正如这里所说的),但是我希望时态表的更新是即时的。
1条答案
按热度按时间arknldoa1#
请忽略这个问题,显然时态表函数可以接受(对我来说)正在收回的表。
大意是:
可以接受为一个时态表函数,其中b作为键,max\u proctime作为时间属性。我猜max(proctime)在某种程度上使它认为新行被发出,而它们只是被覆盖?我想我需要更多的时间来理解这一点。
编辑:
通过对源代码的深入研究,我们发现时态表函数似乎接受收回定义,但仅当它处于处理时间下时:
temporalprocesstimejoinoperator.java:
temporalrowtimejoinoperator.java:时间行
这是无证的;我不知道这是否是永久性的,文件是否会更新。