2016-07-26 5 views
0

Я хочу сделать обработку событий с использованием Esper конвейерно. Мне нужно проверить несколько случаев для каждого события. Например, скажем, я хочу запустить свои входящие данные в следующих случаях. Как мне это сделать? Каков наилучший способ сделать это?Эспер - Можем ли мы сделать конвейерную обработку моды с использованием эспера?

случай 1 = «Если текущий уровень составляет 400% больше, чем в среднем последних 5 последовательных значений затем отметьте событие с Exception-1»
случаем 2 = «Если текущее значение уровня является нулевым затем пометить как исключение-2"
случае 3 = „Если случай 2 и корпус 3 не совпадают, то данные помечаются как" безопасный“

Ниже шероховатой представления о том, что я хочу сделать

 if (case1) { 
     mark with Exception 1 
    } 

    if (case2) { 
     mark with Exception 2 
    } 

    if (none of the above cases matches) { 
     mark as safe 
    } 
+0

@goodie Можете ли вы ответить на этот вопрос тоже -> «Если текущий уровень 400% больше, чем в среднем последние 5 последовательных значений, то пометить как„Exception1“, если она равна нулю, как знак «Исключение 2», в противном случае отметьте «безопасным». И кроме того, они должны быть разделены по свойству «location_id» события. При вычислении среднего значения 5 последовательных значений для проверки он должен учитывать только последовательные значения для этого location_id, а не других местоположений. –

ответ

0

Что-то вроде этого

on Event 
insert into OutputStream select 'Exception 1' as label, * where level_detected > 400 
insert into OutputStream select 'Exception 2' as label, * where level_detected = null 
insert into OutputStream select 'safe' as label, * 

Вы не спрашивали, как сделать обнаружение для «Если текущий уровень 400% больше, чем в среднем последние 5 последовательных значений», так это не является частью моего ответа.

Esper docs for split stream

+0

Спасибо @goodie, это действительно помогло –

+0

Можете ли вы, пожалуйста, ответить на этот вопрос тоже -> «Если текущий уровень на 400% больше среднего из последних 5 последовательных значений, тогда отметьте как« Исключение1 », если это нулевая метка как ' Исключение 2 ', в противном случае отметьте как «безопасный» И более того, они должны быть разделены по свойству' location_id 'события. При вычислении среднего значения 5 последовательных значений для проверки он должен учитывать только последовательные значения для этого location_id, а не других местоположений. –

+0

Большое спасибо в любом случае ~ –