我为一家公司构建了一个分析应用程序,该应用程序根据员工的销售/购买项目显示关键绩效指标(KPI)。
现在他们想要的是添加事件功能,如:
*如果任何员工出售价值超过10,000美元的物品,请提醒他们
* *如果某些员工厌倦生活并自杀,请提醒他们
基本上这些愚蠢的事件。
我完全不知道该做什么,他们建议使用ESPER,但我发现很难理解事件处理的工作原理。
我想知道事件处理在这种情况下是如何工作的,我在哪里可以了解更多信息。
除了编程和DB之外,我什么都不知道,我也不是PRO
请分享您对我应该做的事情的看法?
答案 0 :(得分:0)
基本上,当您需要分析数据的“流”时,以及当搜索到的模式出现时您必须快速做出反应时,会使用复杂的事件处理。例如,当从不同机场起飞的三个人携带成分以潜在地制造炸弹,并且他们前往同一目的地时,您需要找到来自每个机场的数据的相关性,并快速对事件作出反应。
销售超过10000的员工不是您需要实时了解的事情。你可以在下个月奖励他,因为“正常”的报道会很好。
有些论文要读: Oracle CEP
答案 1 :(得分:0)
CEP实际上是完成任务的绝佳方式。您可以将CEP视为模式匹配技术。一旦匹配,如果您的CEP与其他工具集成,则可以通知您或启动其他流程。
以下是维基百科的例子。我们可以根据这些传入的信号轻松推断它是一场婚礼:
这是一个抽象的例子,这样的事情可能无法进入任何系统,但你明白了。最好看一下代码来理解CEP的实现。这里是您可以在NebriOS之上编写的脚本来构建推理。其他工具如Drools也会完成同样的事情。
class wedding_detect(NebriOS):
def check(self):
if self.church_bells == "ringing" and \
(self.clothes_type == "tuxedo" or \
self.clothes_type == "wedding gown") and \
self.rice_flying == True:
return True
else
return False
def action(self):
# fires if the check() is true
send_email("me@example.com", "A wedding is underway")
根据您的情况,CEP也很容易编程:
class sales_alert(NebriOS):
def check(self):
return self.sales_total > 10000
def action(self):
send_email("me@example.com", "You got a $10k sale!")
例如,sales_total可以从您的CRM进入系统。
那个CEP - 复杂事件处理!一个开始无论如何。