复杂事件处理的两种语义:复杂事件关系代数(CERA)及其在XChangeEQ中的应用
1. 引言
在数据库领域,关系代数用于描述对关系应用运算符以计算查询答案的顺序,它是数据库查询语言(如SQL)操作语义和查询优化的理论基础。近年来,信息系统中出现了针对事件(或数据)流的连续查询趋势,这种连续查询与传统的数据库或Web数据临时查询有本质区别,因为事件查询是对不断变化的事件数据流进行持续评估的常驻查询。
复杂事件处理(CEP)是一种从低级事件流中及时、永久地推导高级知识或复杂事件的算法方法。事件查询语言(EQLs)旨在以方便、简洁、有效且可维护的方式表达复杂事件。本文将介绍复杂事件关系代数(CERA),它是关系代数的扩展和定制变体,用于表示复杂事件查询的执行计划。
将关系代数应用于CEP并非新思路,但本文提出了一种显著不同的方法。以往的方法(如CQL)通过时间窗口等流到关系的运算符,将流在每个时间点转换为有限关系,然后应用普通的关系代数表达式。而CERA将整个流视为一个潜在的无限关系,并对该无限关系应用定制的关系运算符,这些运算符经过限制,使得在每个时间点,只需知道流的有限可用部分就能计算出该时间点之前的结果,因此适合复杂事件查询的增量式逐步评估。
本文还将通过XChangeEQ语言展示CERA的应用,XChangeEQ是一种近期开发的、表达性强且易于使用的高级EQL。同时,会详细说明如何将XChangeEQ规则转换为CERA表达式,以及如何优化和增量评估由CERA表达式组成的查询计划。此外,还将介绍XChangeEQ的声明性语义,并证明基于CERA的操作语义相对于声明性语义的正确性。
2. CEP示例
以下是一个XC
超级会员免费看
订阅专栏 解锁全文
1214

被折叠的 条评论
为什么被折叠?



