4

我正在对使用 Siddhi 作为 CEP 引擎的原型进行一些实验,并且想知道输入流是否仅支持平面事件数据,或者还可以支持类似 JSON 的数据层次结构进行查询。

Siddhi 的文档引用了一种object属性类型,但我在任何地方都找不到这种类型所指的内容。

源存储库中提供的代码示例中,也从未使用过此属性类型。

扩展这些示例中编写的查询之一,我希望能够执行以下操作:

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 ;";

Siddhi 是否支持任何类型的 JSON 类数据?如果是,应该将哪些 Java 对象类型传递给InputHandler

4

2 回答 2

4

它接受 java.lang.Object 实例。所以你可以在那里传递任何java对象。但是这些对象只是传递(Siddhi 引擎只是将它们与事件一起传递),除非您编写一些自定义扩展,否则您将无法对这些对象进行任何修改/处理。

如果要处理 json 输入,请使用 WSO2 CEP 产品。您将能够定义映射并将 json 输入分解为 Siddhi 引擎可以处理的一些原始类型,如字符串、int、float 等。

于 2015-11-04T13:04:22.167 回答
1

在新的siddhi 4.x中,一切都是 siddhi 的扩展。它有一组映射器扩展,即使你使用 siddhi 作为库也可以使用。通过使用源扩展和映射器扩展,您不必编写自己的代码来接收和映射数据。

最新的 WSO2分析产品,WSO2 SP 基于 Siddhi 4.x

于 2018-05-02T07:35:03.997 回答