使用 Esper inner join 有时不起作用
Sometimes do not work when use Esper inner join
EPL是这样的:
select
cast(a.ReportTime,date,dateformat:'yyyy-MM-dd') as ReportTime,
a.Source,
aa.RequestNum,
a.ServerTotal,
a.ServerSucc,
b.Total,
b.Succ,
NULL as DataChange_LastTime,
c.Response
from IntlTotalCountEvent.win:time_batch(2 min) as aa
inner join A.win:time_batch(2 min) as a on aa.ReportTime=a.ReportTime and aa.Source=a.Source
inner join B.win:time_batch(2 min) as b on a.ReportTime=b.ReportTime and a.Source=b.Source
inner join C.win:time_batch(1 min 30 sec) as c on a.ReportTime=c.ReportTime and a.Source=c.Source
有时候可以,有时候不行,甚至字段 ReportTime 和 Source 都使用相同的数据。
批量 windows 在事件到达时开始。因此,每个批次 window 都是独立的,并且与其他批次 windows 不对齐。如果你想对齐批次 windows 使用上下文 "create context Every5Sec start @now end after 2 minutes" 和 "win:keepall" 而不是 "win:batch".
EPL是这样的:
select
cast(a.ReportTime,date,dateformat:'yyyy-MM-dd') as ReportTime,
a.Source,
aa.RequestNum,
a.ServerTotal,
a.ServerSucc,
b.Total,
b.Succ,
NULL as DataChange_LastTime,
c.Response
from IntlTotalCountEvent.win:time_batch(2 min) as aa
inner join A.win:time_batch(2 min) as a on aa.ReportTime=a.ReportTime and aa.Source=a.Source
inner join B.win:time_batch(2 min) as b on a.ReportTime=b.ReportTime and a.Source=b.Source
inner join C.win:time_batch(1 min 30 sec) as c on a.ReportTime=c.ReportTime and a.Source=c.Source
有时候可以,有时候不行,甚至字段 ReportTime 和 Source 都使用相同的数据。
批量 windows 在事件到达时开始。因此,每个批次 window 都是独立的,并且与其他批次 windows 不对齐。如果你想对齐批次 windows 使用上下文 "create context Every5Sec start @now end after 2 minutes" 和 "win:keepall" 而不是 "win:batch".