現有的CEP產品介紹
CEP(Complex Event Processing,複雜事件處理)是近年來在網際網路中不斷升溫一個詞彙。在CEP的領域,國外已經有了很多研究成果和相當成熟的產品,而中國的這個市場才剛剛開啟。流式資料處理是CEP的一個核心技術,流計算來自於一個信念:資料的價值隨著時間的流逝而降低,所以事件出現後必須儘快地對它們進行處理,最好資料出現時便立刻對其進行處理,發生一個事件進行一次處理,而不是快取成一批再處理。
本文旨在對目前市場上已有的CEP產品和開源專案進行簡單介紹,普及前沿科技。
首先是幾個商業化產品。
- StreamBase 所屬公司:StreamBase Systems
StreamBase使用Java開發,IDE是基於Eclipse進行二次開發,功能非常強大。目前此產品在業界處於領先地位,其前身是Borealis。
- StreamInsight 所屬公司:Microsoft
StreamInsight是SQL Server 2008 R2的新模組。它是一個基於.NET的平臺,用於複雜事件處理(CEP,Complex Event Processing),即對於來自多資料來源的無限事件序列提供近乎零延時的連續處理。StreamInsight是一個臨時查詢處理引擎,它可以支援應用程式對時間視窗內的事件進行查詢處理。它對流資料的處理範圍包括簡單聚合、多資料來源事件相關性、事件模式檢測、甚至建立複雜事件序列和分析模型。StreamInsight的程式模型可以讓使用者通過LINQ定義這些查詢,同時支援將查詢結果無縫整合到C#的程式碼中。
微軟的MSDN文件:
相關文章:
- Aleri 所屬公司:Sybase
Aleri原本是由Aleri公司開發的一款CEP產品。2009年,Aleri被列為CEP領域傑出的領軍企業,同時,Aleri還是首家獲准作為安全技術評估中心基準的CEP廠商。後來Sybase收購了Aleri,成功躋身成為CEP領頭羊並強化其實時分析平臺。
產品主頁:
- Apama 所屬公司:Progress
這個產品名氣不大。幾乎沒有資料。
以下是開源專案。
- Borealis 開源專案
Borealis是Brandeis University、Brown University和MIT合作開發的一個分散式流式系統,由之前的流式系統Aurora、Medusa演化而來。目前Borealis系統已經停止維護,最新的Release版本停止在2008年。
Borealis具有豐富的論文、完整的使用者/開發者文件,系統是C++實現的,運行於x86-based Linux平臺。系統是開源的,同時使用了較多的第三方開源元件,包括用於查詢語言翻譯的ANTLR、C++的網路程式設計框架庫NMSTL等。
- S4 (Simple Scalable Streaming System) 所屬公司:Yahoo!
目前最流行的大規模資料處理是MapReduce,不過MapReduce只是一個面向批處理的框架。其它情況則是流處理系統或針對特定問題的特殊解決方案(比如Pregel、GraphLab等等),當然還有“應用最廣”的並行資料庫。S4是Yahoo!釋出的一個開源通用、分散式、可擴充套件、部分容錯、具備可插拔功能的平臺。這套平臺主要是為了方便開發者開發處理流式資料(continuous
unbounded streams of data)的應用。Yahoo!之所以開發S4系統,主要是為了解決它現實的問題:搜尋廣告的展現。搜尋廣告是當前各大搜索引擎的主要收入來源,使用者發出查詢請求,搜尋引擎在返回正常結果的同時也會返回相關廣告,而廣告是按照點選付費。為了在最好的位置,放置最相關(也就是使用者最有可能點選)的廣告,各大搜索引擎使用了大量的資料探勘和機器學習演算法來進行相關性計算,以便提高收入,滿足使用者需求。其中很重要的一點就是要不斷分析使用者的點選反饋,以便捕獲使用者的行為。S4最初主要還只是用來處理使用者的點選反饋。
相關文章:
- Esper 開源專案
採用Java開發,支援複雜的EPL(Event Processiong Language),尤其是模式匹配(Pattern Match)。想深入研究模式匹配,可以從這個專案入手。
- Drools 開源專案
Drools具有一個易於訪問企業策略、易於調整以及易於管理的開源業務規則引擎,符合業內標準,速度快、效率高。業務分析師或稽核人員可以利用它輕鬆檢視業務規則,從而檢驗是否已編碼的規則執行了所需的業務規則。採用Java開發。
- Storm 開源專案
Twitter在9月19日的Strange Loop大會上公佈Storm的程式碼,是一個類似於Hadoop的即時資料處理工具,由BackType開發的,後來被Twitter收購用於Twitter進行實時資料處理分析。storm是一個分散式的、容錯的實時計算系統,遵循Eclipse Public License 1.0,Storm可以方便地在一個計算機叢集中編寫與擴充套件複雜的實時計算,Storm之於實時處理,就好比Hadoop之於批處理。Storm保證每個訊息都會得到處理,而且它很快——在一個小叢集中,每秒可以處理數以百萬計的訊息。可以使用任意程式語言來做開發。
以下兩個是國內專案。
- 銀河流資料處理平臺 所屬公司:淘寶
- SuperMario 所屬公司:淘寶