流数据处理的窗口表达式

摘要:连续生成数据并需要迅速做决策的情况下,传统的存储和查询数据的方法效果不好。例如,在医院的重症监护室中,需要监测多个设备的信号,并且任何异常的发生应立即引起警报。典型的设计会从一个时间窗口(例如10秒)或连续计数(例如10次)的读数中取平均值,并寻找突然偏离的情况。可能还需要更复杂的窗口定义。例如,我们可能希望选择其中字段的最大值大于固定阈值的窗口。现有的流处理系统要么限制在时间或计数窗口上,要么让用户使用命令式编程语言定义自定义窗口。这些都需要实现者对所需内容的理解,并且很难被他人理解。 我们引入了基于Monadic Second Order逻辑的窗口规范形式。它相比用命令式语言编写的临时定义具有几个优势。我们演示了这四个优势。首先,我们演示了如何轻松地编写具有精确语义的实际流数据查询。第二,我们得到了几种不同的形式化方法(但表达等价)来定义窗口。我们使用其中一种(正则表达式)来设计了一种用户友好的窗口定义语言。第三,我们使用另一种表达等价的形式化方法(自动机)来设计一个根据规范自动生成窗口的处理器。我们展示的第四个优势更复杂。某些窗口定义存在窗口重叠过多的问题,使得处理引擎难以承受。不同的引擎以不同的方式处理这个问题,但所有的选择都是在运行时发生这种情况时该怎么做。我们将这个问题作为静态研究......

作者:M. Praveen and S. Hitarth

论文ID:2209.04244

分类:Formal Languages and Automata Theory

分类简称:cs.FL

提交时间:2022-09-12

PDF 下载: 英文版 中文版pdf翻译中