2015-11-04 131 views
4

我對使用Siddhi作爲CEP引擎的原型進行了一些實驗,並想知道輸入流是僅支持平面事件數據,還是可以支持類似JSON的查詢數據層次結構。Siddhi對「對象」屬性類型支持哪種類型的對象?

Siddhi's documentation是指object類型的屬性,但我找不到任何這種類型所指的。

the code samples provided in the source repository中,此屬性類型也從不使用。

擴展寫在這些例子中的一個查詢,我希望能夠做這樣的事情:

String executionPlan = "" 
    + "define stream cseEventStream (symbol string, price float, volume long, data object); " 
    + " " 
    + "@info(name = 'query1') " 
    + "from cseEventStream[volume < 150 and data.myKey == 'myValue'] " 
    + "select symbol,price " 
    + "insert into outputStream ;"; 

是由西提支持任何類型的JSON樣的數據?如果是,應該將哪些Java對象類型傳遞給InputHandler

回答

3

它接受java.lang.Object實例。所以你可以在那裏傳遞任何java對象。但是這些對象只是傳遞(Siddhi引擎只是將它們與事件一起傳遞給它們),除非您編寫一些自定義擴展,否則您將無法對這些對象進行任何修改/處理。

如果要處理json輸入,請使用WSO2 CEP產品。您將能夠定義映射並將json輸入反彙編爲Siddhi引擎可以處理的一些基本類型,如字符串,整型,浮點等。

+0

感謝您的回答。從我讀過的內容來看,完整的WSO2 CEP產品附帶了所有UI等,不僅僅是Java CEP庫?我的情況我只需要CEP庫將它集成到另一個產品中。 –

+1

是的,它不是Java庫。在這種情況下,您可能需要使用一些json庫從json輸入中提取原語並將它們發送給Siddhi。否則,您可以將json作爲字符串傳遞,並使用正則表達式匹配等進行處理。 –

+0

https://docs.wso2.com/display/CEP400/Siddhi+Extensions#SiddhiExtensions-regex –

相關問題