问题标签 [complex-event-processing]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
503 浏览

java - CEP:实时事件或数据馈送的来源?

我正在寻找可以在我的 java 应用程序中使用的免费事件源。我正在寻找类似于YahooFinance的东西,其中可以查询一堆股票信息并将结果检索为 csv。

理想情况下,带有一些查询字符串的 API 或 URL 将是完美的。

0 投票
3 回答
1060 浏览

c++ - 处理大量规则(条件和约束)CEP 系统

我正在开发一个接受 100k+ 唯一输入的应用程序 - 为简单起见,我们假设每个输入都是浮点值(a、b、c...等) - 尽管它们也可以是字符串等。应用程序有很多规则/与这些输入相关的事件/触发器。

示例 1:

定义1:上述规则说:当输入'a'的值大于'b'的值并且输入'c'的值小于或等于'd'的值时,执行EventX

示例 2:

定义2:上面的规则说:如果在一个值更新之后,如果输入'x'的当前值不等于它之前的值(值已经改变了)。执行事件Z

我发现随着输入数量的增加以及规则数量的增加,评估“特定”规则并确定是否应触发事件所需的总计算量正在失控 - 投掷问题上更快和更多的硬件没有按预期扩展。

目前,在每次新的输入更新时,都会在哈希表中查找相关的输入/变量,该哈希表将变量映射到包含它的规则。随后对这些规则中的每一个进行评估,如果结果为真或可操作,则异步触发相关事件。

这个问题属于复杂事件处理领域,不幸的是,该领域中的大多数架构都使用上述相同的死机方法 - 可能对评估/重新评估事物的频率进行了一些改进。我们的想法是拥有一个可以近乎实时地做出反应的系统。将规则和输入分布在多个节点上似乎也效果不佳,因为在某些情况下,超过 95% 的活动规则中存在少数输入。

我希望如果那里有任何 SO'ers,知道更好的方法来解决这个问题,数据/结构或算法。

我想到的一个简单想法是可以构建一个依赖逻辑推理的列表。

如果有两个这样的规则:

然后对“a”或“b”的更新不应该需要对两者进行评估,但我发现构建这样的逻辑推理结构非常复杂且容易出错,并且难以完全和严格地测试。

输入可以代表股票价格、温度传感器等。

进一步说明,一些输入是暂时受限的,这意味着该规则可能要求变量的状态在一段时间内处于特定位置/状态(例如:MSFT 的价格在过去 30 秒内 > 20 美元),目前,这是通过使用值为 0 或 1 /false 或 true 的“表示变量”(外观)来完成的(变量的值由单独的机制确定,这通常是触发规则的结果)。

还应该注意的是,由于近乎实时的限制和每秒产生的数据量,使用带有触发器和存储过程的数据库的选项是不可能的。

0 投票
1 回答
1141 浏览

timestamp - Esper:将开始/结束时间戳与 POJO 或运行时定义的事件类型一起使用

我正在尝试直接对事件类型使用时间间隔代数方法,根据文档,这应该是可能的。我首先尝试使用create schema语法定义一些事件类型,如下所示:

如果我写这样的查询

它实际上编译没有错误。但是如果我尝试使用模式而不是连接,就像这样

它给了我一个错误:

当我尝试使用派生自基本事件类型的 POJO 时出现相同的错误,该基本事件类型具有文档中描述的时间戳属性。虽然它在我实际使用基类型时有效,但在这种情况下,Esper 不使用继承的时间属性似乎很奇怪,而在其他情况下它确实使用了有关继承它的信息。

难道我做错了什么?这是一个错误吗?或者也许它只是按预期工作......

0 投票
1 回答
238 浏览

http - Esper CEP 实施中的 httpadapter

我需要使用 httpadapter 从 esper 引擎向网页发送数据。我按照示例中提到的步骤进行操作。不知何故,它没有工作。我需要使用普通的 java 对象发送。还让我知道如何为请求和响应配置 Web 服务器。

0 投票
2 回答
817 浏览

android - 在 Android 上使用 Esper 的 CEP?

是否有任何针对 Android 设备上的 CEP 的库,例如适用于 Android 的 Esper 版本?

0 投票
1 回答
98 浏览

algorithm - 事件过滤和触发算法

这是我手头的问题-

我有一系列“较低级别”事件流(并发数据库记录创建),例如 - “Matt 在承诺(维度)中获得 4* 评级”......并且具有预定义的“较高级别”事件标准,例如 - “如果某人在承诺中获得 4* 评级并且在指导中获得 >=3*”,则触发该事件。这将发生在整个系统中的任意 (N) 个用户(Mat 和他的伙伴)上。

处理它的正确方法是什么。首先想到的是 CEP(复杂事件处理)。伙计们,任何建议/指针将不胜感激。

0 投票
0 回答
418 浏览

java - 使用 AND、OR 和 SEQ 对事件流使用 Reaction/ECA 规则进行事件模式检测

我有一个事件流,其中事件是一组属性/值对,例如:
E1 = {(ID, val), (attr, val), (attr, val), ... }

我想只使用 SNOOP 样式的事件代数来检测简单的模式,即AND, OR, SEQ没有括号。
示例:E1 AND E2 OR E4 , 其中E是标识符。

现在,我想使用一些事件处理引擎来跟踪事件流并做出反应,以防找到模式。规则类似于此示例中的RuleML ECA规则:

这些规则应该从列表中生成/解析。如果有人可以向我推荐一个能够检测上述简单模式的 CEP 引擎,那就太棒了。
我尝试过Esper和 prova (Prolog + Java),但无法将列表中的模式“解析”成一组规则。
非常感谢任何帮助!

有谁知道,如果 Drools 可以做到这一点?特别是,我需要能够AND,OR,SEQ在规则的 on/when 部分中使用。

0 投票
1 回答
1291 浏览

rules - 条件中具有 AND、SEQ 或 OR 的 ECA/反应规则的 Drools

看来,Drools 在这里相当突出,所以我想我会问:

Drools 规则可以用于事件模式检测吗?
模式来自:"Event_x" SEQ/AND/OR "Event_z"。下面的示例指示了所需的用法。使用先前已知的 ID 标识事件。

0 投票
0 回答
229 浏览

esper - Esper 没有动态列表的事件

我试图找出一个基本场景来确定是否应该基于 Esper 的警报应用程序。

我有一组随时间动态变化的传感器。其中每一个都配置了一个超时,该超时定义了我应该多久收到一次传感器读数。我希望 Esper 在阅读未及时到达时通知我。

使用这种事件模式似乎可以工作,尽管一旦 Esper 启动,我就无法更改传感器集。

我怎么能做到这一点?我猜我需要将“每个 s=Sensor”部分更改为不同的东西,因为事件是不可变的。

0 投票
1 回答
2557 浏览

drools - Drools Fusion CEP 中的测试事件到期

Ciao,我测试了好几种方法,但还是无法测试验证Drools Fusion中的Event过期机制,求指点一下,好吗?

我已阅读手册,并且对此功能感兴趣:

换句话说,一旦一个事件被插入到工作内存中,引擎就有可能发现一个事件何时不再匹配其他事实并自动收回它,释放其相关资源。

我在 Eclipse 5.4.0.Final 中使用 Drools IDE,我修改了由“New Drools Project”向导创建的模板代码来测试和验证事件过期。

下面的代码。我理解使“生命周期”正常工作的方式是:

  • 您必须在 STREAM 模式下设置 KBase - 检查
  • 您必须按时间顺序插入事件 - 检查
  • 您必须定义事件之间的时间约束 - 在我的情况下检查是最后一个 Message()

但是,当我最后检查 EventFactHandle 时,没有一个 Event() 已过期。谢谢你的帮助。

爪哇:

流口水:

请注意:即使我在 Message 事件中添加了 1 秒的过期时间,通过

我仍然没有得到预期的结果,即插入的第一个 Message 事件,我原以为现在已经过期了?谢谢你的帮助。