Используйте метку времени ESPER в онлайн-тесте EPL

У меня простой вопрос, на который я не могу найти ответы ни на stackoverflow, ни на сайте ESPERTECH. Я планирую написать движок ESPER CEP для проверки значений в действующей системе. Чтобы проверить правильность правил даже после их редактирования, у меня есть несколько уже записанных тестовых случаев в базе данных, для которых правила должны определенно срабатывать. все значения датчиков находятся в таблице, которая выглядит следующим образом:

+---------------+-----------------+--------------+-------------+-----------------+----+
| timestamp     | temp_livingroom | temp_bedroom | temp_garden | humidity_garden | id |
+---------------+-----------------+--------------+-------------+-----------------+----+
| 1521044250000 | 15              | 15           | 10          | 50              | 1  |
+---------------+-----------------+--------------+-------------+-----------------+----+
| 1521044260000 | 20              | 15           | 15          | 30              | 2  |
+---------------+-----------------+--------------+-------------+-----------------+----+
| 1521044270000 | 25              | 20           | 17.5        | 25              | 3  |
+---------------+-----------------+--------------+-------------+-----------------+----+

возможно ли, если я получу данные события в этом формате:

SensorVal={id=1, timestamp =1521044250000, temp_livingroom = 15,  temp_bedroom = 15, temp_garden = 10, humidity_garden = 50 }
SensorVal={id=1, timestamp =1521044260000, temp_livingroom = 20,  temp_bedroom = 15, temp_garden = 15, humidity_garden = 30 }

каким-либо образом использовать его в качестве входного потока в онлайн-тесте EPL, чтобы я мог использовать его сразу и использовать временную метку как «эспер-время»? Я бы хотел избежать t.plus(10 секунд), так как мне пришлось бы добавлять его вручную.


person peggers    schedule 16.03.2018    source источник


Ответы (1)


Похоже, вы хотите автоматизировать тесты с помощью Junit. Вы можете создавать автоматизированные тесты, как это делает Esper, а тесты Esper можно найти по адресу Набор тестов Esper

Преобразование строк базы данных в некоторые инструкции для EPL-Online можно выполнить с помощью пользовательского кода.

person user650839    schedule 16.03.2018
comment
Спасибо! может ли Esper обрабатывать json вместо нативного? если да, то где я могу найти больше информации - person peggers; 16.03.2018
comment
Дело в том, что у меня будет, скажем, 70 различных сценариев для одного правила, которые нужно иногда тестировать. то, с другой стороны, в конце дня у меня будут данные за весь день, и я хочу запустить пакетную обработку, когда данные будут доступны (около полуночи). Данные находятся в базе данных и могут быть экспортированы как в вопросе, так и в объектах JSON. - person peggers; 16.03.2018
comment
Эспер с Json использует Avro с Esper-Avro. Avro предлагает схему Json. Один только Json, поскольку он без схемы, не очень удобен для работы. Без avro рекомендуется читать Json в объекты или карты. - person user650839; 16.03.2018