我在使用Flink的SQL语法 join多个表时遇到了一些问题,因为其中至少有一个表具有time属性列。
当tabletime的值为rowtime时,使用的是表1。
我想用一个使用模式(id,value2)的Table2 join这个表。 join必须在匹配的id上完成。
最后,我想用一个翻滚的时间窗口对这个 join的结果进行分组。
是否可以只使用SQL语法来实现这一点?
下面是我想做的一个例子:
SELECT
Table1.id as id,
TUMBLE_END(rowtime, INTERVAL '10' SECOND),
MAX(value1) as value1,
MAX(value2) as value2
FROM Table1 JOIN TABLE2 ON Table1.id = Table2.id
GROUP BY Table1.id, TUMBLE(rowtime, INTERVAL '10' SECOND)
但它给了我以下错误:
2019-11-12 16:37:57.191 [main] ERROR - Cannot generate a valid execution plan for the given query:
FlinkLogicalCalc(expr#0..6=[{inputs}], id=[$t0], EXPR$1=[$t4], value1=[$t1], value2=[$t2])
FlinkLogicalWindowAggregate(group=[{0}], value1=[MAX($2)], value2=[MAX($3)])
FlinkLogical