Корреляция и фильтрация событий - с чего начать? - PullRequest
9 голосов
/ 31 марта 2011

Получен асинхронный поток событий, где каждое событие имеет такую ​​информацию, как -

  • Агентство (одно из многих агентств, которые могут обслуживаться моим решением)
  • Агент (одно измного агентов в агентстве)
  • Обслуживаемое юридическое лицо (лицо / организация, обслуживаемая одним или несколькими агентствами)
  • Дата + Время
  • Класс-данные (теги из фиксированногоно большой набор тегов)

Что мне нужно сделать, это -

  1. Соотнести событие на основе Served-Entity, Date + Time и Class-Данные и создать консолидированное новое событие.Пример:

    Событие № 0021: {Агентство = 'XYZ', Агент = 'ABC', Обслуживаемая сущность = 'MMN', Дата + Время = '12 -03-2011 / 11: 03: 37 ', Class-Date = 'Пропущенная доставка, без повторов, невозможно найти, сирота'}

    Событие # 0193: {Agency = 'KLM', Agent = 'DAY', Served-Entity = 'MMN',Дата + Время = '12 -03-2011 / 12: 32: 21 ', Класс-Дата =' Пропущенная доставка, потерянная, потерянная '}

    Событие № 1217: {Агентство =' KLM ', Агент= 'CARE', Served-Entity = 'MMN', Date + Time = '12 -03-2011 / 18: 50: 45 ', Class-Date =' escalated '}

    Здесь я нахожу 3 событиякоторые разнесены во времени (более чем на 7 часов), которые для одного и того же обслуживаемого объекта (MMN) происходят в определенном временном окне (скажем, 24 часа), имеют совпадающие или связанные данные класса.

  2. Наконец, создайте консолидированное (новое) событие, которое может представлять сделанный вывод.

  3. Уметь создавать отчеты по каждому агентству, по агентству, по каждому обслуживаемому- Основа сущности, основанная на таких вещах, как конкретные теги Class-Data (например, пропущенная доставка) в течение определенного периода времени.Это может быть сделано с использованием исходных / входных событий или синтезированных (логических) событий.

  4. Хотя сегодня это не является обязательным требованием, но вполне вероятно, что в будущем "теги, которые появляются в Class-Data, могут расти без какого-либо вмешательства человека.Поэтому не уверен, следует ли это тогда рассматривать как неструктурированные данные.

  5. Также не является непосредственным требованием, но в будущем может возникнуть необходимость в определении тенденций / моделей возникновения событий (т. Е. Event1привело к событию 2 привело к событию 3).

Скорость поступления событий может быть довольно высокой ... возможно, тысячи событий в минуту.Может больше.И мне нужно архивировать исходные / синтезированные события в течение определенного периода времени (месяц или около того).

Мое решение должно основываться на компонентах FOSS (предпочтительно).Некоторые исследования, проведенные до сих пор, указывают на направление CEP (Обработка сложных событий), Байесовские сети / Классификация, Predictive-Analytics.

Ищите некоторые предложения относительно подхода.Я бы предпочел пойти по пути, который соответствует большинству моих целей, с минимальными трудностями / временем или, другими словами, «изучение ИИ» или «формальные статистические методы» не являются моей краткосрочной целью: -)

Ответы [ 2 ]

2 голосов
/ 01 апреля 2011

Mike

Вы рассматривали что-то вроде Esper / Nesper, чтобы посмотреть, могут ли они соответствовать вашим требованиям? пока я сам смотрел на нечто подобное - особенно на Erlang (см. мой пост здесь ), и вы найдете там несколько полезных ответов.

IC

1 голос
/ 01 апреля 2011

Ваша проблема - тактическая, а не процедурная. Оба типа имеют свой собственный набор инструментов, и вы будете испытывать боль, если попытаетесь решить тактическую проблему с помощью процедурных инструментов.

Просто чтобы прояснить термины, когда я говорю «процедурный», я имею в виду случаи использования, в которых вы можете сказать, делайте X, затем Y, затем Z. С тактическими проблемами X, Y и Z могут возникнуть в любое время, и вы должны быть в состоянии обработать событие.

Вы находитесь на правильном пути с CEP. Вы также можете изучить использование механизма правил. Вы не упомянули, что такое ваша среда разработки, но если это Java, вы можете взглянуть на Джесс. Если вы действительно хотите хороший и надежный механизм правил, посмотрите на Tibco Business Events. Он очень мощный и отказоустойчивый, но определенно не бесплатный.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...