>本文对比了Flink SQL中的两种时间关联:Temporal Join用于流与版本表的“数据丰富”,解决“当时是什么”的问题;Interval Join用于流与流的“事件关联”,解决“这事发生前后那事是否发生”的问题。 核心区别概览 一言以蔽之: Temporal Table Join 是 流 (Stream) 和 历史版本表 (Versioned Table) 的关联,目的是用“过去某个时间点”的维度数据来 丰富 流数据。它解决的是“当时是什么?”的问题。 Interval Join 是 流 (Stream) 和 流 (Stream) 的关联,目的是将两个流中在“某个时间窗口”内发生的事件 关联 起来。它解决的是“这事发生前后,那事发生了吗?”的问题。 下面是一个清晰的对比表格: | 特性 | Temporal Table Join | Interval Join | | :--- | :--- | :--- | | Join 对象 | 一个流 (Append-only) vs. 一个外部版本化表 (Changelog/Upsert Stream) | 两个流 (Appen...