开发者社区> 问答> 正文

Flink报错Temporal table join requires an equality...

已解决

Flink报错Temporal table join requires an equality condition which refers the fields of table怎么解决

展开
收起
提个问题 2024-06-04 18:05:09 372 0
1 条回答
写回答
取消 提交回答
  • 开发者社区问答官方账号
    官方回答
    采纳回答
    语法验证时报这个错误可能有3种原因:
    1. 维表join的连接条件中需要包含一个直接引用维表字段的等值条件(不能在维表字段上加计算或CAST操作)。
    2. 使用了VVR-6.0.3~VVR-6.0.5版本,如果只使用了维表字段的常量等值条件查询Hologres维表,也可能遇到异常(高版本中已修复)
    3. 维表join关联使用了in条件包含多个值,而维表join只支持等值条件,当in条件中只包含一个值时会被优化成等值条件,校验可以通过,多值时无法被优化成等值条件就会报错, 如:LEFT JOIN b FOR SYSTEM_TIME AS OF `PROCTIME`() AS `t2` ON  `t2`.`id` IN ('99931967','2222')
    解决方案:
    case1: 确保维表join的连接条件中需要包含一个直接引用维表字段的等值条件,避免在维表字段上加计算或CAST操作。
    case2: 升级至VVR-6.0.6及以上版本。
    case3: 在join完成之后再进行过滤。
    2024-06-04 18:05:10
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

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