【问题标题】:WSO2 DAS SiddhiQL : Dynamic event table / persist event streamWSO2 DAS SiddhiQL:动态事件表/持久事件流
【发布时间】:2017-07-12 23:07:21
【问题描述】:

我想知道 WSO2 数据分析服务器是否允许定义动态事件表或动态流。 例如,假设一个事件代表一辆汽车,在这个事件中,一个属性是汽车的'品牌'(福特、梅赛德斯、奥迪...)。

我想在每次有新的不同品牌时添加一列。所以我的桌子看起来像这样:

因此,如果我收到一个带有“Toyota”品牌的活动,它会在我的表格中添加一列,如下所示:

考虑到我事先不知道我会收到多少个不同的品牌,我需要这个是动态的。

【问题讨论】:

    标签: wso2 wso2cep wso2-das siddhi


    【解决方案1】:

    无法动态更改事件表的架构。 这是因为事件表的模式是在部署 Siddhi 执行计划时定义的。一旦部署,架构就无法更改。

    另一方面, 看起来你需要的不是事件表。

    也许,您需要做的是在发生特定事件时(例如,当汽车事件以新品牌到来时)更新表(RDBMS 表)的架构。你在你的 Siddhi 执行计划中使用这个更新的表吗?如果您不使用它,则不需要事件表。 如果我误解了您的要求,请纠正我。

    如果您的要求是在某个事件发生时更新表的架构,那么您可能需要编写一个自定义事件发布者来执行此操作。如果是这样,请参阅同一文档:Building Custom Event Publishers

    【讨论】:

    • 是的,我想做的是在某个事件到达时更新表的架构,我可以使用 RDBMS 表来执行此操作吗?因为我知道 mySQL 允许向表中添加列,但是 SiddhiQL 没有请求这样做,所以为什么在这种情况下 RDBMS 表会帮助我?根据我收到这样的事件:id,brand,consumer,nbPlace --> 1, Ford, 5.0, 5 --> 2, Toyota, 4.0, 5 有了这个事件,我想在图像上显示表格上面根据品牌和 id 在正确的单元格中消费。
    • 感谢您提供有关自定义事件发布者的信息,但发布者只是发布从流中接收到的事件,但我可能无法在发布者中执行逻辑部分。对不起,我误解了你的问题«你在你的 siddhi 执行计划中使用这个更新的表吗? »,你说的是哪张桌子?
    • 我明白了...所以您不仅需要更改架构,还需要将数据插入到该表中。 Siddhi 无法做到这一点。
    • 您不能将brand 设为一列(因此该列将包含诸如福特、丰田...等的值)?当您在新数据进入时创建新列时听起来有点奇怪。您不能使用具有列的静态表来满足您的要求:id、brand、consumer、nbPlace 吗?
    • 事实上,汽车的品牌是一个简单的例子,可以很容易地解释我在寻找什么,但我的实际情况要复杂得多。这是一张带有更相关示例的图片,实际上我需要显示这种表格,但是我不知道最后会收到多少不同的“特征”,我无法定义带有预先固定数量的参数。 The more relevant example picture
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多