我正在与 Esper 合作,但我不清楚一些事情。谁能帮我解释一下吗?
事件何时会从流中删除?
事件何时会从窗口中删除?
是否可以为每个重复执行运行时查询,例如“从某个窗口删除,其中 key1=value1” 60秒?我有时会遇到并发修改异常。
有什么好的平装本学习Esper的教材吗?
需要澄清。尝试查看在线文档,但它非常模糊。
流在逻辑上是一个管道,仅传输事件。当应用程序将新事件发送到 Esper 运行时时,运行时会确定哪些语句(和分区)应该看到该事件。例如,如果没有任何语句需要查看该事件,则意味着运行时不维护对该事件的引用,并且 JVM 垃圾收集可以立即垃圾收集该事件。
窗口,例如时间窗口,指示运行时将事件保存在内存中。运行时将事件完全按照窗口在 EPL 中声明的窗口定义的方式保留在内存中。对于 1 分钟的时间窗口,运行时将事件在时间窗口中保留一分钟。如果语句中没有窗口,则运行时不会保留任何事件。除了时间窗口之外,还有一个概念定义了分析数据的时间,那就是 EPL 上下文。我只是使用时间窗口作为例子。
您可以使用准备好的即发即弃查询,这样就没有编译步骤,并且准备好的即发即弃查询已经加载。您可以检查查询计划以查看使用了哪个索引(如果有)。根据使用的索引和命名窗口或表的大小,执行速度可能会很快。如果您看到任何异常,您必须确保使用最新版本,并在 Github 问题中详细报告该异常。
提供文档(PDF、HTML)和在线材料以及 JavaDoc。 EsperTech 主办了在线培训,网址为 https://www.eventseriesanalysis.org/。据我所知,没有纸质教科书。