用于hadoop的groovy规则引擎

omqzjyyz  于 2021-06-03  发布在  Hadoop
关注(0)|答案(1)|浏览(472)

我正在为我的项目评估一个规则引擎。该项目将基于hadoop。我用口水做了一些poc。基本上我是用drool在mapper端。基于此,以下是我的观察和质疑。
1) a)我使用drools在300万个对象上启动了rule(大约需要17秒)b)我使用if/else循环应用了与drl文件中相同的逻辑,用于300万个没有drools的对象,使用简单的java对象(大约需要17秒)。b比a快大约100倍。这种行为正常吗?有没有办法把规则编译成java字节码/类。
2) 除了drools之外,最快的基于java的规则引擎框架是什么。有人用普通groovy开发了规则引擎。是否有其他框架建议将业务规则编译为java字节码,从而加快规则评估速度?
3) 有人对什么是最适合hadoop的dsl/规则框架有一些经验。

lmyy7pcs

lmyy7pcs1#

关于drools/java(q1):
你可能没有建立一个公平的比较。有几种方法可以“在300万个物体上触发一个规则”,而你可能没有选择最快的。
众所周知,在前向链接引擎中运行多模式/多对象匹配算法时会产生相当大的开销。您可能根本不需要规则,或者一种更简单(更有效)的规则评估技术就足够了。
至于比较规则引擎:这是一个非常不确定的主题。每个基准测试都有其独特的使用场景,一些供应商通过一些著名的(学术)测试或其他测试优化了他们的引擎以获得更好的性能。
至于q2,我不知道。考虑到开发一个好的规则引擎需要大量的知识、时间和精力,我非常怀疑。
我不认为你能得到第三季度的答案。”“最佳”从来不是与某个应用程序框架相关的——标准是规则的数量和复杂度与数据的数量和复杂度的组合。

相关问题