获得异步事件流,其中每个事件都包含 -
等信息我需要做的是 -
根据服务实体,日期+时间和班级数据关联事件,并创建合并的新事件。例如:
事件#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小时)内,具有匹配或相关类的数据。
最后创建一个合并的(新)事件,它可以代表一个推理。
能够在特定时间段内根据特定类别数据标记(例如,错过交付)等内容,按照每个代理商,每个服务实体创建每个代理商的报告。这可以使用原始/输入事件或合成(推理)事件来完成。
虽然这不是今天的要求,但很有可能在将来出现,但类数据中出现的“标签”可能会增长,而无需任何人为干预。所以不确定这是否应该被视为非结构化数据。
也不是直接要求,但将来可能需要确定事件发生的趋势/模式(即事件1导致事件2导致事件3)。
事件到达率可能非常高......可能每分钟有数千个事件。也许更多。并且,我需要将原始/合成事件存档一段时间(一个月左右)。
我的解决方案需要基于FOSS组件(最好)。到目前为止进行的一些研究指出了CEP(复杂事件处理),贝叶斯网络/分类,预测分析的方向。
寻找有关采取措施的一些建议。我更倾向于采用符合我目标的路径,最小的难度/时间,或换句话说,“学习AI”或“正式的统计方法”不是我的短期目标: - )
答案 0 :(得分:2)
麦克,
您是否考虑过像Esper / Nesper这样的东西,看看它们是否符合您的要求?虽然我自己也看过类似的东西 - 特别是在Erlang上(查看我的帖子here),你会在那里找到一些有用的答案。
IC
答案 1 :(得分:1)
与程序问题相反,您的问题是一个战术问题。这两种类型都有自己的工具集,如果你试图通过程序工具解决战术问题,那么你将陷入痛苦的世界。
只是为了澄清术语,当我说程序时,我说的是用例,你可以说做X,然后Y,然后是Z.随着战术问题,X,Y和Z可以在任何时候发生,你必须能够处理这个事件。
您与CEP走在正确的轨道上。您还可以考虑使用规则引擎。您没有提到您的开发环境是什么,但如果是Java,您可能会看看Jess。如果您真的想要一个漂亮而强大的规则引擎,请查看Tibco Business Events。它非常强大且容错,但绝对不是免费的。