在 Flink SQL 中,Interval Join(区间关联) 是解决此类“基于时间窗口的事件归因/匹配”场景的最完美方案。 Interval Join 专门用于将两条流中事件时间(Event Time)在限定时间范围内的相关数据进行 Join。它的底层会自动管理 State 的生命周期,避免状态无限膨胀。 以下是实现该业务场景的完整步骤和代码示例: 1. 核心逻辑解析 业务诉求:“曝光后 15 分钟内点击”。 转换为 Flink SQL Interval Join 的时间条件: 2. DDL 建表定义 (定义时间属性与 Watermark) 在使用 Interval Join 之前,必须在两条流的表中明确指定事件时间字段和Watermark(水位线)。 3. DML 编写 Interval Join 语句 使用 结合 语法来实现转化成功的匹配。 --- 4. 进阶场景补充(实战经验) 场景 A:如果用户在 15 分钟内点击了多次怎么办? 上述 会输出多条转化成功的记录(一对多)。如果业务要求“一次曝光最多只算一次有效点击”,可以在外层包一个去重逻辑 (Deduplicati...