Я думаю о разработке системы обработки событий. Сами по себе правила не проблема. Меня беспокоит то, как хранить данные о событиях, чтобы я мог эффективно отвечать на такие вопросы / факты, как:
Если количество событий типа A за последние 10 минут равно N, а среднее количество событий типа B в минуту за последние M часов равно Z, а текущее текущее среднее значение другой метрики - Y ... тогда запускается какое-то событие ( или сохранить новый факт / событие).
Как Esper / Drools / MS StreamInsight хранят свои данные, зависящие от времени, чтобы они могли эффективно вычислять свойства потока событий? ¿Они просто хранят его в базах данных SQL и непрерывно запрашивают их?
Обрабатывают ли правила предварительную обработку, чтобы они знали заранее, какие «знания» им нужно хранить?
Спасибо
РЕДАКТИРОВАТЬ: я нашел то, что я хочу, называется обработкой потока событий, и пример википедии показывает, что я бы нравится делать:
WHEN Person.Gender EQUALS "man" AND Person.Clothes EQUALS "tuxedo"
FOLLOWED-BY
Person.Clothes EQUALS "gown" AND
(Church_Bell OR Rice_Flying)
WITHIN 2 hours
ACTION Wedding
Тем не менее остается вопрос: как реализовать такое хранилище данных? Ключ - «В ТЕЧЕНИЕ 2 часов» и способность обрабатывать тысячи событий в секунду.