Flink SQL ROW_NUMBER 由于流模式下的 OVER windows 排序而导致聚合错误,必须在时间属性上定义

问题描述 投票:0回答:1

SELECT EMPLOYEE_ID, DEPT_NAME, LOGGED_IN_AT, ROW_NUMBER() OVER(PARTITION BY EMPLOYEE_ID ORDER BY LOGGED_IN_AT ASC ) AS ROWNUM FROM inputTable 

面临错误:必须在时间属性上定义流模式下的 OVER 窗口排序。

尝试使用滚窗作为

SELECT EMPLOYEE_ID, DEPT_NAME, LOGGED_IN_AT, ROW_NUMBER() OVER(PARTITION BY EMPLOYEE_ID ORDER BY LOGGED_IN_AT ASC ) AS ROWNUM FROM TUMBLE (inputTable, DESCRIPTOR (LOGGED_IN_AT), INTERVAL '24' HOUR) 

它给出了解析错误,有没有什么方法可以在时间窗口内聚合这个错误

apache-flink flink-streaming flink-sql
1个回答
0
投票

这个错误

流模式下的 OVER 窗口排序必须在时间属性上定义。

抱怨您没有在

LOGGED_IN_AT
列上定义水印。水印的作用是告诉 Flink 你的表的行可能乱序的程度。当在流模式下运行时,Flink 需要此信息才能对表进行排序。

这在文档中有更详细的解释。

© www.soinside.com 2019 - 2024. All rights reserved.