2013-12-09 112 views
0

我已經爲一家公司構建了一個分析應用程序,該應用程序基於銷售/購買其員工的項目來顯示關鍵績效指標(KPI)。
現在,他們想要的是添加事件的功能,如:
*提醒他們,如果任何員工賣出超過$ 10,000價值的物品
*或提醒他們,如果一些員工是厭倦了生活,殺死他/她自己
基本上這些無聊事件。什麼是複雜的事件處理?

我完全空白做什麼,他們用ESPER建議,但我覺得很艱難,瞭解事件處理的工作原理。
我想知道事件處理如何在這種情況下工作,以及我可以在哪裏瞭解更多信息。
除編程和數據庫之外,請參閱我什麼也不知道,我也不是PRO。
請分享你對我應該做什麼的看法?

回答

0

基本上,當你需要分析數據的「流」,而當你必須迅速作出反應,當seeked模式從它出現使用複雜事件處理。例如,當三個從不同機場飛來的傢伙攜帶可能構建炸彈的成分,並且他們前往同一目的地時,您需要從每個機場流出的數據中找到相關性,並迅速對事件做出反應。

銷售量超過10000的員工不是您需要實時瞭解的事情。你可以在下個月獎勵他,而對於這種「正常」的報道將會工作得很好。

一些論文閱讀: Oracle CEP

0

CEP是實際完成任務的好方法。您可以將CEP視爲模式匹配技術。匹配後,如果您的CEP與其他工具集成,您可以通知或啓動另一個流程。

下面是維基百科的例子。我們可以很容易推斷出這是基於這些輸入信號的婚禮:

  • 教堂的鐘聲響了起來。
  • 一個穿着燕尾服的男人出現在一個流動的白色長袍上的女人。
  • 大米在空中飛行。

這是一個抽象的例子,像這樣的東西可能不會被放入任何系統,但你明白了。最好看代碼來理解CEP implimentation。您可以在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("[email protected]", "A wedding is underway") 

對於你的情況,CEP是也容易編程:

class sales_alert(NebriOS): 
    def check(self): 
     return self.sales_total > 10000 

    def action(self): 
     send_email("[email protected]", "You got a $10k sale!") 

的sales_total可以進入您的CRM例如系統。

這就是CEP - 複雜事件處理!無論如何。