我曾尝试使用查找联接,但我发现了这个问题:
SELECT
> e.isFired,
> e.eventMrid,
> e.createDateTime,
> r.id AS eventReference_id,
> r.type
> FROM Event e
> JOIN EventReference FOR SYSTEM_TIME AS OF e.createDateTime AS r
> ON r.id = e.eventReference_id;
[ERROR]无法执行SQL语句。原因:org.apache.flink.table.api.ValidationException:事件时间时态表联接需要主键和版本表中的行时间属性,但找不到行时间属性
Flink SQL计划器将该查询解释为临时联接还是查找联接取决于右侧表的类型。在这种情况下,我想您还没有使用查找源。您的时间属性可能定义不正确。
临时(时间版本(联接需要
- 版本控制表主键上的相等谓词
- 时间属性
和查找联接需要
- 查找源连接器(例如JDBC、HBase、Hive或其他自定义连接器(
- 相等联接谓词
- 将处理时间属性与FOR SYSTEM_TIME AS OF(以防止需要更新联接结果(