打扰大家了。请教下如何实现双流join的滑动窗口。我的代码运行后就报错了。有经验的同学帮忙解答下。谢谢。
代码: SELECT TUMBLE_START(a.ts, INTERVAL '10' MINUTE), TUMBLE_END(a.ts, INTERVAL '10' MINUTE), sum( CASE WHEN f.business_id <> NULL THEN 1 ELSE 0 END ) AS company_pass_first_num, sum( CASE WHEN g.business_id <> NULL THEN 1 ELSE 0 END ) AS company_pass_num, COUNT(a.create_time) FROM t1_oa_loan_requests_detail_view a LEFT JOIN t1_oa_flow_inst_task_view_segment_no_5 f ON a.id = f.business_id LEFT JOIN t1_oa_flow_inst_task_view_segment_no_61 g ON a.id = g.business_id GROUP BY TUMBLE(a.ts, INTERVAL '10' MINUTE);
报错: [ERROR] Could not execute SQL statement. Reason: org.apache.flink.table.api.TableException: Rowtime attributes must not be in the input rows of a regular join. As a workaround you can cast the time attributes of input tables to TIMESTAMP before.*来自志愿者整理的FLINK邮件归档
双流join有两种形式,一种是Time-windowed Join,一种是regular join,见[1]。
tumble window是一个单独的算子,是对一个输入流做窗口聚合。它本身不会跟join有什么关系。 所以你的SQL其实是先做了两个regular join,在join的结果上又做了一个window聚合。
[1] https://ci.apache.org/projects/flink/flink-docs-master/dev/table/sql/queries.html#joins*来自志愿者整理的FLINK邮件归档
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。