开发者社区> 问答> 正文

flink sql 如何实现双流join 的滑动窗口?

打扰大家了。请教下如何实现双流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邮件归档

展开
收起
玛丽莲梦嘉 2021-12-03 18:42:39 1830 0
1 条回答
写回答
取消 提交回答
  • 双流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邮件归档

    2021-12-03 19:04:21
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Flink CDC Meetup PPT - 龚中强 立即下载
Flink CDC Meetup PPT - 王赫 立即下载
Flink CDC Meetup PPT - 覃立辉 立即下载