为所有特定事件提供通用查询语句
Provide general query statement for all particular events
以下我们公司已经实施的实际用例:
我们用 rest api 作为 esper java api 的包装器构建了应用程序。
用户可以定义它的地图模式和查询语句。
用户(如 JSON)发送的每个事件(MapEventBean 实例)都有一个公共参数(你每次都有不同的值),这些参数将作为附加键值对添加到后台映射到用户映射事件.
问题:为了通过 UpdateListener 检索此附加参数,用户定义的模式和查询语句都将以编程方式扩展到此属性。
例如:
用户定义的架构:创建地图架构名称为 (...)
编。修改后的架构:创建地图架构名称为(additionalAttribute Map,...)
用户定义的查询 stmt: select foo, bar from Name
编。修改查询 stmt: select additionalAttribute, foo, bar from Name
问题:方法确实有效,但非常容易出错或不太独立,正如我们希望的那样。
所以问题是:是否有可能定义通用查询 stmt(例如每个事件的 select additionalAttribute ...)或告诉更新侦听器检索每个成功查询的特定属性,而不管它是否已在用户中定义是否定义了 stmt。
提前致谢!
更新:
我已经考虑过一些可能性,例如 NamedWindows,但问题是,这个附加属性属于每个特定事件,即属性应该由更新侦听器与事件自身同时从模式中获取。
有一个语句对象模型 API,您可以使用它来修改查询而无需进行字符串操作。 API 的文档 link 是 http://esper.espertech.com/release-8.0.0/reference-esper/html_single/index.html#apicompiler-soda
以下我们公司已经实施的实际用例:
我们用 rest api 作为 esper java api 的包装器构建了应用程序。 用户可以定义它的地图模式和查询语句。 用户(如 JSON)发送的每个事件(MapEventBean 实例)都有一个公共参数(你每次都有不同的值),这些参数将作为附加键值对添加到后台映射到用户映射事件.
问题:为了通过 UpdateListener 检索此附加参数,用户定义的模式和查询语句都将以编程方式扩展到此属性。
例如:
用户定义的架构:创建地图架构名称为 (...)
编。修改后的架构:创建地图架构名称为(additionalAttribute Map,...)
用户定义的查询 stmt: select foo, bar from Name
编。修改查询 stmt: select additionalAttribute, foo, bar from Name
问题:方法确实有效,但非常容易出错或不太独立,正如我们希望的那样。
所以问题是:是否有可能定义通用查询 stmt(例如每个事件的 select additionalAttribute ...)或告诉更新侦听器检索每个成功查询的特定属性,而不管它是否已在用户中定义是否定义了 stmt。
提前致谢!
更新: 我已经考虑过一些可能性,例如 NamedWindows,但问题是,这个附加属性属于每个特定事件,即属性应该由更新侦听器与事件自身同时从模式中获取。
有一个语句对象模型 API,您可以使用它来修改查询而无需进行字符串操作。 API 的文档 link 是 http://esper.espertech.com/release-8.0.0/reference-esper/html_single/index.html#apicompiler-soda