為何流處理最近很火,而同根的複雜事件處理一直不溫不火?
流處理:storm ,spark streaming,flink,kafka streaming等等
CEP:drools,siddhi,esper 還有一個新一點的flink cep
讀博士的時候曾經做個CEP,參與過一個叫做Cayuga的複雜事件處理系統:
Cornell Database Group - CayugaCornell Database Group - Cayuga
當時的框架還是和最早的DSMS一樣,比如最早Stanford的STREAM,就是上層有個查詢語句比如CQL,編譯到下層的runtime作為一個automaton執行;幾年過去了,情況大變化。現在工作裡面也看見過一些在數據流上做複雜事物處理或者查詢的工具,比如你提到的Flink CEP,還有這個:
fhussonnois/kafkastreams-cep: Complex Event Processing on top of Kafka Streams
我個人的一個感覺是,現在更多的CEP系統都基於一個下層的流處理平台,比如說現在的Kafka Streams,Flink,Storm;當下層的流處理平台豐富完善之後,CEP變成一個簡單的把查詢語句編譯到流處理平台的 thin layer。
另一方面,不可能讓所有人都能夠熟練地寫Java或者C++甚至Python程序來做複雜的業務流程處理,不現實;現實是需要有SQL for Stream Processing,DSL for Stream Processing,CEP等等等等。所以我覺得CEP或者StreamQL將來還是會變熱的,也許就是17年,我也說不準。
推薦閱讀:
※Kafka(二)高可用系統設計心得
※Kafka設計解析(七)- 流式處理的新貴Kafka Stream
※重磅發布:Kafka迎來1.0.0版本,正式告別四位數版本號
TAG:ApacheStorm | 大數據 | Spark | 事件流處理 | Kafka |