如何解决Flink:在视图中使用MATCH_RECOGNIZE
我想创建一个包含MATCH_RECOGNIZE
语句的视图。这会遇到以下错误:
org.apache.flink.table.api.SqlParserException: SQL parse failed. Encountered "MATCH_RECOGNIZE" at line 3,column 79.
Was expecting one of:
<EOF>
"EXCEPT" ...
"FETCH" ...
"GROUP" ...
"HAVING" ...
"INTERSECT" ...
"LIMIT" ...
"OFFSET" ...
"ORDER" ...
"MINUS" ...
"TABLESAMPLE" ...
"UNION" ...
"WHERE" ...
"WINDOW" ...
"(" ...
"NATURAL" ...
"JOIN" ...
"INNER" ...
"LEFT" ...
"RIGHT" ...
"FULL" ...
"CROSS" ...
"," ...
"OUTER" ...
如果您想重现此问题,可以例如请遵循Ververica training,该内容也涵盖了MATCH_RECOGNIZE。
初始设置后,创建以下视图:
CREATE VIEW `RideView`
AS
SELECT rideId,TIMESTAMPDIFF(MINUTE,startT,endT) AS durationMin
FROM Rides
MATCH_RECOGNIZE (
PARTITION BY rideId
ORDER BY rideTime
MEASURES
S.rideTime AS startT,E.rideTime AS endT
AFTER MATCH SKIP PAST LAST ROW
PATTERN (S E)
DEFINE
S AS S.isStart,E AS NOT E.isStart
);
仅运行SELECT * FROM RideView
就会触发问题。
这并不意外,因为Flink documentation表示
当前,MATCH_RECOGNIZE子句只能应用于追加表。此外,它也总是产生一个追加表。 (https://ci.apache.org/projects/flink/flink-docs-stable/dev/table/streaming/match_recognize.html#sql-semantics)。
是否有任何方法可以克服此限制,并与CREATE VIEW AS <query>
结合使用MATCH_RECOGNIZE?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。