比方说,我们有几个事件流。其中一些将参考数据加载到hazelcast事件表中,而另一些则是实际的事件处理器。如何在wso2cep中设置事件流的优先级?
我的目标是,当wso2cep服务器启动时,它首先将运行哪个加载参考数据hazelcast事件表那么它会启动其他流的那些事件流。
这将帮助我们保持在所有的事件流处理器参照数据的一致性。
比方说,我们有几个事件流。其中一些将参考数据加载到hazelcast事件表中,而另一些则是实际的事件处理器。如何在wso2cep中设置事件流的优先级?
我的目标是,当wso2cep服务器启动时,它首先将运行哪个加载参考数据hazelcast事件表那么它会启动其他流的那些事件流。
这将帮助我们保持在所有的事件流处理器参照数据的一致性。
我已经检查hazelcast外部集群,好像它是一个额外的开销,需要为每种类型的表创建DataSerializable类。
所以,我存储维度/参考数据CEP如下决定:
对于完全开源的项目,我会去,因为我在发表我的另一个答案已经提到的和请阅读评论那里,专业第2(Obaid)&第3(Grainier)。
对于商业,项目,我会去voltdb。
感谢所有人,特别是格雷耶尔。
我可以看到比在个别执行计划内装载其他没有其他选择。 有两种选择:
所以,在这一刻,我的问题是:
执行计划
@Plan:name('ExecutionPlan')
/* define streams/tables and write queries here ... */
/* Facts/Events streams definition */
@Import('actions:1.0.0')
define stream actions (meta_name string, correlation_id int);
@Export('userActions:1.0.0')
define stream userACtions (meta_username string, meta_actionname string);
/* Dimension tables(Event Tables) definition */
-- table from RDBMS
@from(eventtable = 'rdbms' , datasource.name = 'PG' , table.name = 'users')
@IndexBy('id')
define table DBUsers (id int, name string);
-- table from Hazelcast
@from(eventtable = 'hazelcast', collection.name='hzUsers')
@IndexBy('id')
define table hzUsers (id int, name string);
/* Load dimension tables, from RDBMS to Hazelcast, periodically using trigger */
define trigger periodicTrigger at every 30 sec;
from periodicTrigger join DBUsers
select DBUsers.id as id, DBUsers.name as name
insert into hzUsers;
/* Actual execution plan */
from actions as A
join hzUsers as H
on A.correlation_id == H.id
select H.name as meta_username, A.meta_name as meta_actionname
insert into userACtions;
换句话说,我们可以手动启动和停止每个单独的事件流吗? – Obaid