Erlang 中事件流(又名 CEP)的实时关联/分析有什么框架吗?

发布于 2024-10-05 02:19:31 字数 471 浏览 11 评论 0原文

想要分析具有某些特征(例如公共来源)的事件流,并在给定的时间窗口内,最终将这些多个事件关联起来并从中得出一些推论,最后启动一些行动。

我对复杂事件处理(CEP)的有限了解告诉我,它是此类事情的理想选择。然而,在我迄今为止的研究中,我发现人们将其与规则引擎和贝叶斯分类器进行比较,有时甚至使用它们的组合。

想知道是否有

  1. 一些可以遵循的最佳实践(最好由性能数据和事件性质/类型的描述支持),尤其是在 Erlang 中?

  2. Erlang 有自己的 CEP 框架吗?

  3. Erlang 中是否有可用的贝叶斯分类器库?

来自 Java 世界的 Esper 似乎与我想做的事情非常接近,但如果可能的话,我更愿意将我的环境保留为仅 Erlang(或仅 Erlang 和 C/C++)。

欢迎指点、建议、指导。

谢谢,

IC

Would like to analyze a stream of events, sharing certain characteristics (s.a. a common source), and within a given time-window, ultimately to correlate those multiple events and draw some inference from same, and finally launch some action.

My limited knowledge of Complex-Event-Processing (CEP) tells me that, it is the ideal candidate for such things. However in my research so far I found people compare that with Rule-Engines, and Bayesian Classifier, and sometimes using a combination of those.

Wanted to know if there are --

  1. some best-practices (ideally supported by performance data, and description of nature/type of events) to be followed, especially so in Erlang ?

  2. does Erlang have a CEP framework of it's own ?

  3. any Bayesian Classifier library available in Erlang ?

Esper from Java world seems to be quite close to what I'd like to do, but I'd prefer to keep my environment Erlang-only (or Erlang and C/C++ only) if possible.

Pointers, advice, guidance -- all welcome.

thanks,

IC

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

假面具 2024-10-12 02:19:31

这似乎正在积极开发中:

https://github.com/vascokk/rivus_cep

This appears to be under active development:

https://github.com/vascokk/rivus_cep

鹿! 2024-10-12 02:19:31

这对你来说可能不是解决方案,但无论如何:

Erlang 的优势之一是它能够充当不同系统之间的粘合剂。您让 Erlang VM 位于中间并控制在其他进程中运行的许多子系统。稳健性来自于在系统崩溃时重新启动这些系统的能力。

对于分类问题,在某种程度上,分类似乎可以独立于 Erlang 子系统进行。换句话说,您使用 erlang:open_port/2 调用打开另一个程序的端口并与其建立通信。关键是您的程序将知道端口是否崩溃并可以针对问题采取相应措施。

我对 Erlang 库和工具的了解有限,没有注意到 CEP 工具。自己写很难吗?

This may be a nonsolution for you, but anyway:

One of Erlangs strengths to play is its ability to act as glue between different systems. You let the Erlang VM sit in the middle and control a number of subsystems running in other processes. The robustness comes from the ability to restart those systems should they crash.

For a classification problem, it would seem to a certain extent that the classification could happen separately from the Erlang subsystem. In other words, you use the erlang:open_port/2 call to open a port to the other program and set up communication with it. The point is that your program will know if the port crashes and can act accordingly to the problem.

My limited knowledge of Erlang libraries and tools out there has no CEP-tools on the radar. Are they hard to write yourself?

怂人 2024-10-12 02:19:31

我们在 cep 上为 Erlang 提供了一些新的库。

参见下文:

https://github.com/danmacklin/erlang_cep

https://github.com/darach/eep-erl

We have some few new libs for Erlang on cep.

See below:

https://github.com/danmacklin/erlang_cep

https://github.com/darach/eep-erl

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文