If-Then-Else

This application demonstrates how to enrich events based on a simple if-then-else conditions.

define stream TemperatureStream 
        (sensorId string, temperature double);

@info(name = 'SimpleIfElseQuery')
from TemperatureStream
select sensorId,
    ifThenElse(temperature > -2, 'Valid', 'InValid') as isValid 
insert into ValidTemperatureStream;

@info(name = 'ComplexIfElseQuery') 
from TemperatureStream
select sensorId, 
    ifThenElse(temperature > -2, 
        ifThenElse(temperature > 40, 'High', 'Normal'), 
        'InValid') 
    as tempStatus
insert into ProcessedTemperatureStream;
define stream TemperatureStream 
        (sensorId string, temperature double);

Defines TemperatureStream stream to process events having sensorId and temperature(F).

@info(name = 'SimpleIfElseQuery')
from TemperatureStream
select sensorId,
 ifThenElse(temperature > -2, 'Valid', 'InValid') as isValid 

if temperature > -2, isValid will be true else false

insert into ValidTemperatureStream;
@info(name = 'ComplexIfElseQuery') 
from TemperatureStream
select sensorId, 
 ifThenElse(temperature > -2, 
        ifThenElse(temperature > 40, 'High', 'Normal'), 
        'InValid') 
    as tempStatus

If the temperature > 40 the status is set to High, between -2 and 40 as Normal & less than -2 as InValid

insert into ProcessedTemperatureStream;

Events at each stream

When an event with values ['sensor1', 35.4] is sent to TemperatureStream stream it will get converted and travel through the streams as below.

  • ValidTemperatureStream : ['sensor1', 'Valid']
  • ProcessedTemperatureStream : ['sensor1', 'Normal']
Top