事件关联和过滤 - 如何,从哪里开始?

时间:2011-03-31 17:27:58

标签: python erlang machine-learning classification correlation

获得异步事件流,其中每个事件都包含 -

等信息
  • 代理商(可能由我的解决方案提供服务的众多代理商之一)
  • 代理商(代理商中众多代理商之一)
  • 服务实体(由一个或多个代理机构服务的人/组织)
  • 日期+时间
  • Class-Data(来自固定但大量标签的标签)

我需要做的是 -

  1. 根据服务实体,日期+时间和班级数据关联事件,并创建合并的新事件。例如:

    事件#0021:{Agency ='XYZ',Agent ='ABC',Served-Entity ='MMN',Date + Time = '12 -03-2011 / 11:03:37',Class-Date = '错过交付,不重复,无法解决,孤儿'}

    事件#0193:{Agency ='KLM',Agent ='DAY',Served-Entity ='MMN',Date + Time = '12 -03-2011 / 12:32:21',Class-Date = '错过分娩,孤儿,失去了'}

    事件#1217:{Agency ='KLM',Agent ='CARE',Served-Entity ='MMN',Date + Time = '12 -03-2011 / 18:50:45',Class-Date = '升级'}

    在这里,我发现3个事件间隔时间(超过7小时分离),这些事件是针对相同的服务实体(MMN),发生在特定时间窗口(比如24小时)内,具有匹配或相关类的数据。

  2. 最后创建一个合并的(新)事件,它可以代表一个推理。

  3. 能够在特定时间段内根据特定类别数据标记(例如,错过交付)等内容,按照每个代理商,每个服务实体创建每个代理商的报告。这可以使用原始/输入事件或合成(推理)事件来完成。

  4. 虽然这不是今天的要求,但很有可能在将来出现,但类数据中出现的“标签”可能会增长,而无需任何人为干预。所以不确定这是否应该被视为非结构化数据。

  5. 也不是直接要求,但将来可能需要确定事件发生的趋势/模式(即事件1导致事件2导致事件3)。

  6. 事件到达率可能非常高......可能每分钟有数千个事件。也许更多。并且,我需要将原始/合成事件存档一段时间(一个月左右)。

    我的解决方案需要基于FOSS组件(最好)。到目前为止进行的一些研究指出了CEP(复杂事件处理),贝叶斯网络/分类,预测分析的方向。

    寻找有关采取措施的一些建议。我更倾向于采用符合我目标的路径,最小的难度/时间,或换句话说,“学习AI”或“正式的统计方法”不是我的短期目标: - )

2 个答案:

答案 0 :(得分:2)

麦克,

您是否考虑过像Esper / Nesper这样的东西,看看它们是否符合您的要求?虽然我自己也看过类似的东西 - 特别是在Erlang上(查看我的帖子here),你会在那里找到一些有用的答案。

IC

答案 1 :(得分:1)

与程序问题相反,您的问题是一个战术问题。这两种类型都有自己的工具集,如果你试图通过程序工具解决战术问题,那么你将陷入痛苦的世界。

只是为了澄清术语,当我说程序时,我说的是用例,你可以说做X,然后Y,然后是Z.随着战术问题,X,Y和Z可以在任何时候发生,你必须能够处理这个事件。

您与CEP走在正确的轨道上。您还可以考虑使用规则引擎。您没有提到您的开发环境是什么,但如果是Java,您可能会看看Jess。如果您真的想要一个漂亮而强大的规则引擎,请查看Tibco Business Events。它非常强大且容错,但绝对不是免费的。