嗨,我只是想弄清楚我对流时间的理解是否正确。我们当前正在使用事件时间,并且由于我们需要将同一流上的两个不同转换的结果连接在一起,因此希望将自身与流“自我连接”,问题是:结果是否一致? 我可以期望事件将以有序和“同步”的方式处理吗?
基本上,我们使用intervalJoin
来计算事件之间的相互发生,并使用另一种转换来计算特定事件的发生。显然,我希望对两者进行同步,以便在计算动态表上的查询结果时,每个事件的相关性计数和整体事件发生率计数是一致的(输入到事件时间)。
val keyedLines= lines.assignAscendingTimestamps(_.time).keyBy(2)
val totals = keyedLines.map(e=>(e.asset,1)).keyBy(0).sum(1)
val correls = keyedLines
.intervalJoin(keyedLines)
.between(Time.minutes(-15), Time.minutes(15))
.process(...)
tableEnv.registerDataStream("correls", correls)
tableEnv.registerDataStream("totals", totals)
tableEnv.sqlQuery("SELECT ...... FROM correls JOIN totals ....")
我可以期望SQL查询的流式传输结果一致吗?
谢谢