Simple Pattern
The pattern is a state machine implementation that detects event occurrences from events arrived via one or more event streams over time.
This application demonstrates a simple pattern use case of detecting high-temperature event occurrence of a continuous event stream.
define stream TemperatureStream(roomNo int, temp double);
@sink(type = 'log')
define Stream HighTempAlertStream(roomNo int,
initialTemp double, finalTemp double);
@info(name='temperature-increase-identifier')
from every( e1 = TemperatureStream ) ->
e2 = TemperatureStream[ e1.roomNo == roomNo
and (e1.temp + 5) <= temp ]
within 10 min
select e1.roomNo, e1.temp as initialTemp, e2.temp as finalTemp
insert into HighTempAlertStream;
|
Defines |
|
|
|
Defines |
|
|
|
Identify if the temperature of a room increases by 5 degrees within 10 min. |
|
This application sends an alert if the temperature of a room increases by 5 degrees within 10 min.
Input
Below events are sent to TemperatureStream
within 10 minutes,
[2
, 35
]
[2
, 37
]
[2
, 40
]
Output
After processing the above input events, the event arriving at HighTempAlertStream
will be as follows:
[2
, 35.0
, 40.0
]