我是CEP 2.1的新手,我的问题与CEP持有输入流的时间框架有关
假设您经常将数据发送到某个输入流,让我们说“HELLOSTREAM”。 CEP将输入保存多长时间的最长时间等等...
如果我每天发送数据365天,我会在366天收回所有数据,还是会在某个时间截断数据(将持续过去100天)?无论我在查询中设置什么时间窗口?
有限制吗?
答案 0 :(得分:1)
CEP是一个实时处理服务器。它用于实时查找预定义模式和实时监控。它将数据保存在内存中并处理事件,但您可以将数据保存到cassandra以进行分布式处理......
此处数据将根据您定义的窗口大小保留在内存中,这取决于您使用的窗口类型以及给予该窗口的时间或长度...如果您不使用任何窗口,它将不要将任何数据保存在内存中......
如果您要存储365天或100天的数据,那么它不是实时用例。为此,您必须使用BAM等离线处理服务器。
答案 1 :(得分:1)
要添加@ Mohanadarshan的答案,如果你想要的是在很长一段时间内从快速事件流中提取和存储一些值,那么更好的基于CEP的方法将是使用持久性事件表(将包含在即将发布的即将发布的CEP 3.0.0版本。这样,您就可以对某些提取和持久数据进行实时处理。但正如@Mohanadarshan所提到的,如果您的要求是批量处理(如果您不需要实时检测任何内容),WSO2 BAM将是更好的选择。
在很长一段时间内使用滑动窗来存储大量数据并不是一个好主意,因为它们存储在内存中,如果服务器出现故障,你也会丢失数据。