1

我有一個用戶案例,我從客戶端接收事件,其中一些事件在邏輯上相關(屬於單個會話),並且在基於時間戳的事件之間存在明確排序。按時間戳排序的流數據聚合

現在,我想要構建一個解決方案,該解決方案應該繼續聚合事件,直到按照時間戳的遞增順序接收到最後一個特定組爲止。因此,如果收到的活動不按順序進行,應該一直進行下去,直到他們收到的活動爲止。然後,根據該特定組的密鑰將它存儲在HBase等數據存儲中。

問題是此類不完整的組的數量可能會達到數百萬,並且需要一些能夠支持快速附加到不完整組並且保持無序接收的事件。我應該怎麼做呢?

+0

任何小洞察力都是可觀的。謝謝! – ptntialunrlsd 2015-04-03 12:20:42

回答

0

您可以使用事件流處理或複雜事件處理框架http://en.wikipedia.org/wiki/Complex_event_processing。您編寫查詢/模式,將其加載到引擎中,使用事件提供引擎,查詢不斷更新或在時間到時觸發。

我喜歡Codehaus Esper,它是開源的,但在未付費版本中受到限制,我不得不實施存儲事件並在應用程序啓動時重新加載它們。另一種選擇是Drools Fusion,但是當我在5年前嘗試使用時,我發現它是越野車。我最近正在研究WSO2 CEP,但這件事嚴重缺乏證據。