Siddhi is the CEP Engine that powers WSO2 CEP. WSO2 CEP is the server, that can accepts messages over the network via long list of protocols such as Thrift, HTTP/JSON, JMS, Kafka, and Web Socket.
Siddhi, in contrast, is a java Library. That means you can use it from a Java class, or a java main method. I personally do this to debug CEP queries before putting them into WSO2 CEP. Following Describes how to do it. However, you can embedded it and create your own apps.
First, add following jars into class path. ( You can find them from WSO2 CEP pack, http://wso2.com/products/complex-event-processor/ and from http://mvnrepository.com/artifact/log4j/log4j/1.2.14 ). The Jar versions might change with new packs, but what ever in the same CEP pack will work.
Here events you sent in must agree with the event streams you have defined. For example, StockQuoteStream must have a string, double, long, and a long as per event stream definition.
See my earlier blog for example of more queries.
Please see [1] and [2] for more information about the Siddhi query language. If you create a complicated query, you can check intermediate results by adding callbacks to intermediate streams.
Enjoy! reach us via wso2 tag at stackoverflow if you have any questions or send a mail to dev@wso2.org.
Update: For CEP 4.0 and later, API has changed. You can find new sample (Siddhi 4.0) fromhttps://github.com/wso2/siddhi/blob/master/modules/siddhi-samples/quick-start-samples/pom.xml. Look at simple filter sample. Look for pom file for dependencies.
Siddhi, in contrast, is a java Library. That means you can use it from a Java class, or a java main method. I personally do this to debug CEP queries before putting them into WSO2 CEP. Following Describes how to do it. However, you can embedded it and create your own apps.
First, add following jars into class path. ( You can find them from WSO2 CEP pack, http://wso2.com/products/complex-event-processor/ and from http://mvnrepository.com/artifact/log4j/log4j/1.2.14 ). The Jar versions might change with new packs, but what ever in the same CEP pack will work.
- siddhi-api-2.1.0-wso2v1.jar (from CEP_PACK/repository/components/plugins/)
- antlr-runtime-3.4.jar (from CEP_PACK/repository/components/plugins/)
- log4j-1.2.14.jar ( download from http://mvnrepository.com/artifact/log4j/log4j/1.2.14)
- siddhi-query-2.1.0-wso2v1.jar (from CEP_PACK/repository/components/plugins/)
- siddhi-core-2.1.0-wso2v1.jar (from CEP_PACK/repository/components/plugins/)
SiddhiManager siddhiManager = new SiddhiManager(); //define stream siddhiManager.defineStream("define stream StockQuoteStream (symbol string,
value double, time long, count long); "); //add CEP queries siddhiManager.addQuery("from StockQuoteStream[value>20]
insert into HighValueQuotes;"); //add Callbacks to see results siddhiManager.addCallback("HighValueQuotes", new StreamCallback() { public void receive(Event[] events) { EventPrinter.print(events); } }); //send events in to Siddhi InputHandler inputHandler = siddhiManager.getInputHandler("StockQuoteStream"); inputHandler.send(new Object[]{"IBM", 34.0, System.currentTimeMillis(), 10});
Here events you sent in must agree with the event streams you have defined. For example, StockQuoteStream must have a string, double, long, and a long as per event stream definition.
See my earlier blog for example of more queries.
Please see [1] and [2] for more information about the Siddhi query language. If you create a complicated query, you can check intermediate results by adding callbacks to intermediate streams.
Enjoy! reach us via wso2 tag at stackoverflow if you have any questions or send a mail to dev@wso2.org.
- http://www.slideshare.net/suho/wso2-complex-event-processor-wso2-coneu2014
- https://docs.wso2.com/display/CEP310/Siddhi+Language+Specification
Update: For CEP 4.0 and later, API has changed. You can find new sample (Siddhi 4.0) fromhttps://github.com/wso2/siddhi/blob/master/modules/siddhi-samples/quick-start-samples/pom.xml. Look at simple filter sample. Look for pom file for dependencies.
No comments:
Post a Comment