【问题标题】:Which kind of objects are supported by Siddhi for the "object" attribute type?Siddhi 支持哪种对象的“对象”属性类型?
【发布时间】:2018-05-02 15:35:03
【问题描述】:

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

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

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

【问题讨论】:

    标签: java wso2 complex-event-processing wso2cep siddhi


    【解决方案1】:

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

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

    【讨论】:

    • 感谢您的回答。根据我的阅读,完整的 WSO2 CEP 产品附带所有 UI 等,而不仅仅是 Java CEP 库?在我的情况下,我只需要 CEP 库即可将其集成到另一个产品中。
    • 是的,它不是 Java 库。在这种情况下,您可能需要使用一些 json 库从 json 输入中提取原语并将它们发送到 Siddhi。否则,您可以将 json 作为字符串传递并使用正则表达式匹配等进行一些处理。
    【解决方案2】:

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

    最新的 WSO2 analytics 提供,WSO2 SP 基于 Siddhi 4.x

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-01-30
      • 1970-01-01
      • 2017-04-22
      • 1970-01-01
      • 2020-05-08
      • 2021-08-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多