Суммирование измерений - PullRequest
0 голосов
/ 13 июня 2019

У меня есть этот код:

@Name("Creating_hourly_measurement_Position_Stopper for line 2") 
insert into CreateMeasurement 
select 
    m.measurement.source as source, 
    current_timestamp().toDate() as time, 
    "Line2_Count_Position_Stopper_Measurement" as type, 
    { 
        "Line2_DoughDeposit2.Hourly_Count_Position_Stopper.value",
        count(cast(getNumber(m, "Status.Sidestopper_positioning.value"), double)), 
        "Line2_DoughDeposit2.Hourly_Count_Position_Stopper.unit", 
        getString(m, "Status.Sidestopper_positioning.unit") 
    } as fragments 
from MeasurementCreated.win:time(1 hours) m 
where getNumber(m, "Status.Sidestopper_positioning.value") is not null 
  and cast(getNumber(m, "Status.Sidestopper_positioning.value"), int) = 1 
  and m.measurement.source.value = "903791" 
output last every 1 hours; 

, но кажется, что цикл.Я полагаю, что это потому, что новое измерение изменит эту группу, то есть оно постоянно расширяется.Это означает, что пересчет будет выполняться каждый раз, когда будут доступны новые данные.

Есть ли способ подсчитать измерение или получить общее количество измерений в час или в день?

Ответы [ 2 ]

0 голосов
/ 13 июня 2019

Разве вставка в CreateMeasurement не вызывает событие в MeasurementCreated?

0 голосов
/ 13 июня 2019

Поток, который он потребляет, является «MeasurementCreated» (см. Из), и он не создается никаким EPL, поэтому можно смело утверждать, что этот EPL сам по себе не может зацикливаться.

Если вы хотите улучшить EPL, по этой ссылке есть некоторая информация: http://esper.espertech.com/release-8.2.0/reference-esper/html_single/index.html#processingmodel_basicfilter Перемещая текст условия where в фильтр, вы можете отбрасывать события раньше времени.

...