我是个新手。
我有以下格式的连续事件流:(element id,event,timestamp)。
(element=1, event=a, 10:01), (element=2, event=b, 10:02)...
我必须找出事件是否在特定元素的给定时间间隔内发生特定次数。
pattern-1: count(a)=3 and count(b)=2 within 5 min
pattern-2: count(b)=4 and count(c)=3 within 10 min
其中a,b,c是事件。我有n个这样的模式。
我考虑过以下设计:
采用滑动窗口算法和redis存储中间数据。这并没有以任何方式利用spark的架构,而是最佳的时间方式,因为它将使用滑动窗口指针,并且不会再次重新计算过去的事件。
使用复杂查询。这使用spark的中间数据存储,但可能不是最理想的,因为每个事件都会重复执行查询。
每个模式使用一个Spark作业。我不确定这有多大的可伸缩性,因为我期望有相当多的模式。
别的。
我想知道考虑到spark的架构,什么是好的设计。
暂无答案!
目前还没有任何答案,快来回答吧!