CN103250147A - 数据流的连续查询 - Google Patents
数据流的连续查询 Download PDFInfo
- Publication number
- CN103250147A CN103250147A CN2010800706876A CN201080070687A CN103250147A CN 103250147 A CN103250147 A CN 103250147A CN 2010800706876 A CN2010800706876 A CN 2010800706876A CN 201080070687 A CN201080070687 A CN 201080070687A CN 103250147 A CN103250147 A CN 103250147A
- Authority
- CN
- China
- Prior art keywords
- query
- section
- impact damper
- cycle
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24568—Data stream processing; Continuous queries
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
在数据流的连续查询中,可以在查询引擎上初始化(310)包括查询周期的查询,以针对期望信息分析数据流。可以将数据流处理(320)为段,其中,段的大小基于用户定义的参数。可以将查询周期与数据流的段进行同步(330)。可以通过对第一段执行查询来分析(340)该第一段,以获得第一结果。可以存留(350)查询的查询状态,并可以倒回查询操作,以开始新查询周期。可以通过对第二段执行查询、基于第一结果来在新查询周期中分析(360)该第二段。
Description
背景技术
通常,使用系统中的计算机来在数据流上处理查询。典型地,这种系统接收对随时间改变的数据流应用的查询,而不是对典型地被发现存储在数据库中的静态数据应用的查询。数据流的示例包括实时股票报价、高速公路上的实时交通监控、或者诸如互联网之类的计算机网络上的实时分组监控。在一个示例中,可以对来自网络监控的数据流进行处理,以检测侵扰并响应于数据流上的查询来生成在线性能度量。在一些示例中,数据流可能无限地长,并且数据量可能太大以至于数据库管理系统不能存留(persist)。
一些在先系统已经提出了使用查询编译器来接收查询并构建执行计划,该执行计划包括本地支持的查询操作符的树。查询编译器可以使用该执行计划来更新全局查询计划,该全局查询计划被运行时引擎用于识别来自输入流的与查询相匹配的数据,并基于所识别的数据来以成流方式生成输出数据。
附图说明
图1是根据示例的用于数据流的连续分析的系统的框图;
图2是根据示例的用于涉及数据字典的数据流的连续分析的系统的框图;以及
图3-4是根据示例的用于数据流的连续分析的方法的流程图。
具体实施方式
现在将对所示意的示例进行参照,并且本文将使用特定语言来描述这些示例。然而,将理解的是,并不意在从而限制本技术的范围。本技术的附加特征和优势将从结合附图作出的以下详细描述中显而易见,通过示例,这些附图一起示意了本技术的特征。
在许多系统中,存在对更低等待时间查询的需求,即使在流中处理的数据的量快速增长时亦如此。传统查询引擎(甚至在成流数据上执行的那些)基于首先加载数据并且然后分析数据的原理进行操作。在这些示例中,由于对等待数据被加载至数据仓库中的需要,所以增大了查询等待时间。此外,由于数据量通常较大,因此使用了复杂且数据密集型计算平台,诸如Hadoop或Map-Reduce。当前系统一般不被设计为以与许多企业将期望的一样灵活、高效和快速的方式分析来自事件流的结果。
将数据库存和数据流处理技术相结合具有供应低等待时间数据密集型分析法的潜力。然而,先前解决方案尚未有效地解决数据库存和数据流处理的融合。一般从数据仓库和/或查询引擎分离地构建当前数据流处理系统。该分离可以导致数据密集型成流分析法中的数据访问和数据移动方面的显著开销。此外,从头构建流处理系统不能利用数据库管理和数据仓库系统中的许多进步。随着成流分析应用的复杂度增加,在流处理软件和机器可读指令中重新创建并重新开发数据仓库中的许多功能。通过提供用于在流处理期间针对流数据的每个组块(chunk)发起SQL查询的工作流状服务,来表征用于流处理的查询引擎的一些先前示例。除频繁查询建立和拆除的开销外,这种方法不能跨越多次执行连续地维持缓冲状态,这是由于后端查询执行过程处于隔离的存储上下文中并且不能够跨越边界处理连续滑动的窗口状操作。
响应于这些挑战,描述了可替换的架构,其中,将数据库存和对数据流的分析法进行融合。鉴于许多数据库存应用和查询利用用于检索数据的表扫描,函数扫描可以用于在不首先将来自数据流的数据存储在计算机可读存储介质(诸如硬盘、光学存储器、闪存驱动器、带存储器或任何其他类型的合适计算机可读存储介质)上的情况下检索即时捕获的无边界数据流。
在一个示例中,提供了数据流的连续分析,其中,可以在查询引擎上对包括查询周期的查询进行初始化,以针对期望信息对数据流进行分析。可以将数据流作为段进行处理,其中,这些段的大小可以基于用户定义的参数。每个段可以是来自数据流的数据的段。段的大小可以是任何方便的大小,诸如比特、字节、千字节、兆字节等的数目。可以将查询周期与数据流的段进行同步。可以通过对第一段执行查询来分析第一段,以获得第一结果。可以坚持查询的查询状态,并可以倒回查询操作,以使用切割和倒回查询模型来开始新查询周期,以下将更详细地描述这一点。可以通过存留相同查询并对第二段执行查询,基于第一结果,来在新查询周期中分析第二段。如本文所使用的那样,“查询周期”可以指代在倒回查询以分析随后数据段之前对数据段的接收和分析,分析随后数据段开始了新周期。
切割和倒回查询模型可以允许在不像典型地针对许多查询所进行的那样在组块之间关闭查询的情况下,以逐组块的方式对流数据应用具有完全SQL(结构化查询语言)表达力的查询。因此,可以根据滑动窗口操作符,跨越查询的执行周期连续地维持查询状态。基于切割和倒回查询的构思,提供了基于周期的连续查询(CCQ)模型和事务模型。使用切割和倒回查询以及这里将描述的CCQ和事务模型,查询可以检索由相同查询的过去执行周期产生的结果。
构思上,CCQ可以包括多种类型的查询构造。例如,CCQ可以包括2种类型的查询构造,其包括用于分别产生和使用(consume)基于周期的分析法结果的写入构造和读取构造。CCQ可以在逐周期的基础上将所生成的基于周期的分析法结果可替换地递送至两个存储驻留目的地表。一个目的地表可以用于接收当前周期的流分析法结果,并且另一目的地表可以用于保持上一或先前周期的结果。
在以下将进一步详细地描述的一个方面中,可以在每秒周期中交换这两个表的名称,以允许写入构造始终将结果写入到具有相同名称的表并允许读取构造始终从具有相同名称的表读取。暂时周期结果表可以存储驻留在数据库缓冲池中,并在不通过使用数据字典操控(以交换表的名称)来移动或拷贝内容的情况下被交换。该方法很好地适用于流处理的CCQ语义,并可以将周期分析法结果的产生和使用进行同步。该方法还通过以下操作来促进流处理技术:支持历史敏感连续分析法;支持存储器中快速数据访问、如先前解决方案中那样消除表内容移动和拷贝、以及在不引入缓冲池管理系统并未已经完全支持的新数据结构或新共享存储管理设施的情况下利用关系数据库组件(例如表、缓冲池等)。通过在单个查询内产生和使用信息,CCQ方法可以直接由扩展的查询引擎支持,而不依赖于附加中间件系统。
操作BI(商业智能)可以是从事件流至分析结果的数据密集型计算链。响应于快速增长的数据量和对更低等待时间的期望,数据流管理系统(DSMS)可以提供从数据库存和其他数据密集型计算平台(诸如Hadoop和Map-Reduce)的首先加载后续分析模式至近实时操作BI模式的范式移位。CCQ方法可以有益于获得近实时操作BI,并可以通过针对由连续结果存留伴随的连续“适时(just-in-time)”分析法将流处理和数据仓库进行整合来加以表征。为了支持连续查询,可以将函数和数据源进行整合,并可以通过用于将即时捕获的事件转变为关系数据的函数扫描来替换表扫描。
所描述的方法可以实现对真正连续的查询和流处理能力向全功能数据库系统中的无缝整合的支持。结果是可在表、流(逐元组或逐组块)或者表和流的组合上来运行SQL的强大且灵活的系统。以下,基于CCQ模型和事务模型来说明相同CCQ中的基于周期的分析法结果的产生和使用的整合。
参照图1,根据示例示出了用于数据流的连续分析的系统100。该系统包括用于针对期望信息分析来自流源110的连续数据流的查询引擎170。分析服务器120可以在数据段中将连续数据流递送至查询引擎。在查询引擎上执行的查询180可以在与连续数据流的数据段同步的周期中操作。该系统可以包括用于接收第一数据段的第一缓冲器140、用于接收第二数据段的第二缓冲器150和用于管理从第一缓冲器和第二缓冲器的交替读取和写入的缓冲池管理模块130。查询引擎可以连续地且交替地查询第一缓冲器和第二缓冲器,使得在第二缓冲器接收到第二数据段时分析第一缓冲器,并在第一缓冲器接收到第三数据段时分析第二缓冲器。以这种方式,查询可以是自引用查询。
在另一示例中,查询可以是自引用、历史敏感的查询。该系统还可以包括通知模块160,通知模块160用于将段的接收的基本上实时的通知提供给查询引擎,以开始对该段执行查询。
在基于周期的连续查询(CCQ)模型和基于周期的事务模型下,单个CCQ可以产生基于周期的分析法结果以及使用在一个或多个过去周期中生成的这种结果。这是如本文所使用的自引用查询的意思。自引用查询可能针对本文将描述的高效连续查询性能引起多个问题,这些问题包括:如何允许在相同CCQ中整合基于周期的分析法结果的生成和检索;如何允许实时分析法访问在上一个周期中生成的分析法结果;以及如何在不将数据存储在盘上的情况下通过存储访问来使这种自引用变得高效。
线性道路(LR)基准是用于对流处理性能进行基准测试的广泛接受的标准。典型地,LR基准将成流数据建模为在预定持续时间(诸如,例如三个小时)内多个高速公路上的交通量。在一个示例中,每个高速公路具有两个方向和100个段。汽车在段边界处进入和离开车道,并且每30秒读取每个汽车的位置。每次读取构成系统的事件。段统计(即,活动汽车的数目)、平均速度和5分钟移动平均速度以及所生成的段通行费的计算已经被识别为在每分钟时间窗口中对所总结的分析法结果的产生。在最后一分钟中对段统计的继续检索使用上述结果。然而,与由自组织系统计算段统计的其他所报告的LR实施方式不同,目前的焦点是在于具有连续的基于分钟周期的段统计测量,其中,通过单个长期存在的基于周期的流查询来生成并同步地使用基于分钟周期的段通行费。
使用线性道路(LR)示例,可替换地,可以将与上述自引用查询有关的问题描述为:如何允许在相同CCQ中整合段统计和通行费的生成和检索;如何允许实时通行费通知(即,供每个汽车访问在上一周期中生成的段通行费);以及如何使在周期中生成的段统计和工具被保留在存储器中以在下一周期中使用。
以下讨论将聚焦于最常见的情形,其中,CCQ利用一个构造来产生基于周期的分析法结果,并利用另一构造来使用上一周期的这种结果。如上所述,构思上,CCQ包含分别用于产生和使用基于周期的分析法结果的两种类型的路程(leg)或查询构造。换言之,可以将用于产生和使用这种信息的查询构造整合到单个CCQ中。CCQ可以将所生成的基于周期的分析法结果递送至两个目的地表或缓冲器140、150。例如,出于示意目的,这两个表可以被命名为CR1和CR2。可替换地,可以将基于周期的分析法结果逐周期地(即,在每秒周期中切换目的地表)递送至CR1和CR2。假定在周期N中,将结果写入到CR1,然后在周期N+1中,可以将结果写入到CR2。然后,CR1可以由针对CR2的结果的实时分析法检索上一周期的分析法结果(例如,概要信息)的查询构造读取。表CR1和CR2可以是暂时周期结果表,并且可以存储驻留在数据库缓冲池中,并在不通过使用数据字典操控来移动或拷贝内容的情况下被交换。这可以消除引入未被SQL查询自然地识别的其他数据结构和除已完好管理的缓冲池外还管理共享存储器的许多复杂度。在一个方面中,数据字典操控可以是元数据操控的操控。以下将进一步详细地描述数据字典操控。
CCQ方法可以基于以下理解:实质上通过经由关系操作符对元组进行成流来进行数据库系统中的查询处理。尽管查询引擎可以实质上被视为成流引擎,但是目前讨论的焦点在于将数据和事务模型扩展为适应成流语义。作为开始,可以使用关系数据来连续地馈送一个或多个查询。表函数的类型(被称为流源函数(SSF))可以替换数据库表,典型地,该数据库表包含盘上的元组的集合。SSF可以返回元组序列,以在不首先将元组存储在盘上的情况下馈送查询。SSF可以监听或读取数据/事件序列并逐元组地、连续地生成流元素。在连续查询的执行期间,SSF可以被称为多个(或者可能地,无穷多个)次数。每个SSF调用可以返回一个元组。当检测到数据结束事件或条件(其可以由于事件源被耗尽或者由于用户交互)时,SSF可以发信号通知查询引擎以终止查询执行。只要数据流未结束,查询就可以继续而不结束。
流分析法一般是数据连续过程,但是通常以组块的方式处理成流数据。典型地,这种组块可以落在特定时间窗口中。上述切割和倒回查询处理模型可以使SQL查询180能够被逐组块地应用于流数据,同时维持查询实例的连续性。在该查询模型下,流数据由被SSF馈送的单个长期存在的查询处理。基于以“组块”的粒度表示的用户定义的参数,SSF可以周期性地供给由查询引擎170解释的数据结束信号,并导致查询执行的当前周期的终止。
在查询周期的终止时,查询引擎可以不关闭查询,但可以倒回用于处理流数据的下一组块的查询。倒回过程可以包括:按照自顶至底的顺序对查询计划实例树的每个节点执行重新扫描方法。切割和倒回方法将继续的查询执行划分为周期的序列,每个周期用于处理数据的组块。该方法可以允许以逐组块的方式对流应用具有完全SQL表达力的查询,同时还跨越执行周期连续地维持在面向滑动窗口的操作(典型地,用户定义函数(UDF))中缓冲的数据。由于频繁查询建立和拆除开销的消除,切割和倒回方法还提供了性能优势。
典型地,将查询放置在事务边界中。在查询评估结束之后,使查询结果和可能的更新效果可见。由此,阻止对长期运行的事务查询的数据结果的访问,直到该查询已结束为止。为了解决该问题,可以结合切割和倒回查询模型来使用基于周期的事务模型,使得在微事务的序列中逐周期地提交基于周期的流查询。微事务边界可以与查询周期相同,并因此与逐组块流处理同步。一旦周期结束,就可以使每周期的流处理结果可见,并且每周期的流处理结果可以连续地可见,而不论在后续的基于周期的事务中是否涉及该表。
可以通过适当的锁定机制来引入和实施附加隔离级别,诸如,基于周期的提交读隔离级别。与结果被递送至客户端或被存储在数据库中的有规律的查询不同,可以将查询引擎170扩展为在期望时允许查询结果连续地流向客户端,同时还存留至数据库。为了支持该方法,可以将SELECT INTO和INSERT INTO工具这两者扩展至SQL。
为了允许查询中的操作进行通信,使用了给共享存储器提供适当可见性范围的公共方法。使共享存储器便利可以被认为是无关紧要的,但是先前系统中的存储管理处于查询引擎170的范围之外,并在情况专用情形中被实现。连续数据分析系统100使用用于查询操作的通信的数据库缓冲池,该通信通过提供缓冲池作为由DBMS管理的用于数据库后端过程的一般共享存储器来加以实现。此外,可以将模式感知关系用作用于查询操作的通信的公共数据类型。该特征还可以由DBMS支持。
在先前数据库技术的情况下,缓冲池用于对从数据库检索或被插入到数据库中的数据进行缓冲。将数据写入到缓冲池旨在直接地(诸如,利用有规律的SELECT INTO操作)或者通过如与INSERT INTO一起使用的预写式日志(WAL)来异步地将数据存留至数据库。然而,在本技术中,在不将数据存储在盘上的情况下,将缓冲的数据暂时保留在存储器中。这允许在不从盘检索的情况下对来自存储器的数据进行访问。在该方法中,可以适当地对被插入到存储器中的每个元组加标记(该标记可以从DBMS到DBMS变化),使得当DBMS看到这种标记时,DBMS不会将元组存留至盘。
现在将对图2进行参照。流源210提供了可由系统200中的查询220使用和分析的数据流。为了提供自引用,可以给CCQ提供两个存储器中目的地表(CR1 230和CR2 240),以递送周期概要结果。在每个周期中,将面向周期概要的查询结果递送至CR1,并且将上一周期的结果保存在CR2中并由相同查询的查询构造针对实时分析法来检索。到每个周期的结束处,CR2被截断,即,被清空。通过数据字典250操控来交换CR1和CR2的名称,但是CR1和CR2的内容未被移动或拷贝。在这种情况下,原始写入表CR1变为读取表CR2,并且原始读取表CR2变为写入表CR1。在下一周期中,仍可以将所生成的周期概要写入到CR1,并且仍可以从CR2检索上一周期概要(其中,CR1是先前的CR2,并且CR2是先前的CR1)。在利用该方法处理数据读取和写入的情况下,可以消除表内容移动和拷贝以在表之间切换,并且由此,可以显著减小等待时间。
如上所述,本方法将查询引擎扩展为支持SSF、基于周期的连续查询模型和基于周期的事务模型。为了支持CCQ自引用方法,可以提供附加查询引擎能力,这些能力包括:通过数据字典操控来交换周期查询结果表,该数据字典操控是具有用于指示数据库写入器(DBW)和预写式日志(WAL)不将堆插入的元组存留至盘的适当标记的堆插入方法。查询引擎扩展适用于将数据馈送至CCQ的SSF。用于支持CCQ的SSF的有规律的功能包括:捕获数据结束条件;发信号通知查询引擎以终止当前周期执行;以及对下一周期的第一输入元组进行缓冲(这是由于典型地可以从该元组导出数据结束条件)。供SSF支持所产生的表交换的附加能力可以包括:截断保存上一周期结果的表;以及使用由扩展的数据库引擎提供的应用编程接口(API)来交换所产生的表的名称。
现在将对图3进行参照,在图3中,示出了根据示例的用于数据流的连续分析的方法300。该方法可以包括:在查询引擎上初始化310包括查询周期的查询,以针对期望信息分析数据流。可以将数据流处理320为段。段的大小可以基于用户定义的参数。可以将查询周期与数据流的段进行同步330。可以通过使用处理器对第一计算机存储器中的第一段执行查询来分析340该第一段,以获得第一结果。可以存留350查询的查询状态,并可以倒回查询操作,以开始新查询周期。可以通过使用处理器对第二计算机存储器中的第二段执行查询并基于第一结果来在新查询周期中分析360该第二段。在一个方面中,该方法可以提供段的接收的基本上实时的通知。
在一个示例中,该方法可以包括接收第二段。在接收到第二段时,可以执行对第一段的分析。在另一示例中,基于第一结果对第二段的分析可以包括历史敏感连续分析法的执行。该方法还可以包括:跨越查询周期维持缓冲器以提供滑动查询窗口。换言之,可以存留表中的数据以及查询,并且,当倒回查询以在交替表中开始时,“滑动”正被分析的数据流的窗口或段。
该方法可以包括:在不将合计函数的上下文从一个段存留至下一段的情况下,针对每个段计算结构化查询语言(SQL)合计函数。该方法中的第一计算机存储器和第二计算机存储器可以分别包括第一表和第二表。在该示例中,该方法可以进一步包括:在分析第二段并分析第一表中的第三段之后,截断第一表。在另一示例中,第一计算机存储器和第二计算机存储器可以分别包括第一表和第二表。第一表可以是写入表,第二表可以是读取表,并且该方法可以进一步包括:使用数据字典操控来交换第一表和第二表的名称。如上所述,交换名称可以包括:将写入表重命名为读取表并将读取表重命名为写入表。交换操作可以用于在不拷贝或移动第一表和第二表的内容的情况下交换表名称。
参照图4,根据另一示例示出了用于数据流的连续分析的方法400。该方法可以包括:从数据源接收410数据流。可以对数据流的段执行420基于周期的连续查询。可以交替地、逐周期地将来自基于周期的连续查询的执行的分析法结果递送430至两个目的地表。该方法可以包括:通过在这两个目的地表中的一个处产生结果、同时在这两个目的地表中的另一个处使用分析法结果来同时产生和使用440分析法结果。此外,该方法可以包括:跨越段存留450基于周期的连续查询的查询状态,并倒回查询操作,以在相同的基于周期的连续查询的情况下开始新查询周期。
想到系统和方法的上述讨论,现在,将使用线性道路(LR)基准来描述一些附加示例和实验,以演示如所描述的那样使用查询引擎如何适合于流处理内。段统计(即,活动汽车的数目、平均速度和5分钟移动平均速度(通过高速公路、方向和段计量))的计算已经被认识为基准的计算瓶颈。在后续流处理中对段统计的继续检索已经被认识为等待时间瓶颈。与通过自组织程序来计算段统计的其他所报告的LR实施方式不同,本方法使用基于周期的查询和事务模型,该模型实现了连续的基于分钟周期的段统计测量以及由查询引擎直接在单个长期存在的基于周期的流查询中对基于分钟周期的段通行费的生成。使用LR基准的这种查询的示例如下:
可以依照上述讨论以及下述说明来理解上述查询。
流源函数。成流元组由SSF根据具有由数据驱动器实时地馈入的时间戳的LR数据来生成,STREAM_CYCLE_LR(time, cycles)。参数“time”是以秒表示的时间窗口大小;“cycles”是查询被期望运行的周期的数目。例如,STREAM_CYCLE_LR(60, 180)可以从每分钟(60秒)递送元组,180次(达3小时)。
切割和倒回(基于周期的执行)。在执行周期期间可以重复地将查询应用于落在1分钟(或其他合适持续时间)时间窗口中的数据组块。查询可以在单个查询实例中倒回180次(或者任何其他所设置数目的周期)。具有别名p的子查询可以产生活动汽车的数目和活动汽车在每分钟内的平均速度,该平均速度通过段、方向和高速公路来加以计量。可以在没有从一个组块延续至下一组块的上下文的情况下针对每个组块计算SQL合计函数。
滑动窗口函数(每元组历史敏感)。滑动窗口函数lr_moving_avg()可以对每分钟的平均速度进行缓冲,以累积所计量的5分钟移动平均值。由于查询被倒回但未被关闭,因此可以跨越查询周期连续地维持缓冲器。
利用连续存留的连续查询。LR查询的顶级构造是INSERT-SELECT语句。在查询引擎扩展的情况下,INSERT-SELECT语句可以将所产生的从SELECT查询(r)返回的流递送至客户端,并在每周期的基础上将所产生的流添附至通行费表。可以在每个周期处提交事务LR查询结果,以便一旦周期结束,就使基于周期的结果对用户而言可访问。查询结果还可以是可在周期结束之后连续地访问的,即使在后一周期的新结果集合被插入到表中时或之后亦如此。这是基于周期的隔离级别,并可以利用DBMS(数据库管理系统)锁定机制加以支持。
自引用。查询是“被自引用的”或“自引用的”。换言之,查询可以检索由相同查询或查询实例在(一个或多个)过去或先前的执行周期中产生的结果。继续LR基准示例,查询可以基于汽车的量、5分钟移动平均值和来自事故的任何影响来计算每段每分钟的通行费。可以针对每周期(例如,1分钟)提交结果并将这些结果堆插入到通行费表中。结果很可能停留在存储器中一定时间,或者可能由在扩展的堆插入中使用的特定优化机制强制停留在存储器中。查询可以使用UDF(用户定义函数)来同时计算每汽车的通行费通知。查询可以在当前周期中直接从存储驻留的表高效地访问上一分钟中的段通行费,同时跟踪汽车的信息,并可以基于在上一周期(例如,上一分钟)中生成的段通行费来发出进入新段的每个汽车的通行费通知。
实验结果指示:该方法在由其他已知的DBMS利用流处理、数据库、中间件或分离地开发的其他组件产生结果的情况下竞争地执行。本方法利用零数据移动开销以及利用高效直接堆插入,将流处理向下推送至查询引擎。与其他方法相比,已经消除了中间件,以调度时间窗口分隔查询和其他功能。该方法还可以被推广至基于大规模并行处理器(MPP)的数据仓库,并可以用于构建并行数据密集型连续分析平台。
所描述的流处理方法的一些优点如下。系统和方法可以很好地应对基于周期的查询模型和事务模型中的流处理的窗口语义。系统和方法通过支持历史敏感连续分析法来促进流处理技术。系统和方法提供了分析概要产生和使用的同步,这是由于可以在相同CCQ中进行产生和使用这两者。例如,在当前周期中的产生完成之前,下一周期中的使用可以不开始。系统和方法支持对周期概要表的存储器中快速数据访问,并可以消除交换那些表时的表内容移动和拷贝。系统和方法可以在不引入未被DBMS识别的新数据结构或者除已完全支持的缓冲池管理外的其他新共享存储管理设施的情况下,利用现有关系数据库组件(例如表、缓冲池等)。此外,系统和方法的包括自引用功能的所有机制可以直接由扩展的查询引擎支持,而不依赖于附加中间件系统。
可以以硬件、软件、固件、机器可读指令及其组合的方式实现特定实施例的方法和系统。在一个实施例中,该方法可以由存储器中存储且由合适的指令执行系统执行的软件或固件执行。如果以硬件方式实现,则如可替换实施例中那样,该方法可以利用本领域中公知的任何合适技术加以实现。
同样处于实施例的范围内的是可在非瞬变机器可读存储介质中存储以允许计算机执行上述方法中的任一个的程序或代码的实施方式。
本说明书中描述的功能单元中的一些已经被标记为模块,以便更特别地强调其实现独立性。本文讨论的各种模块、引擎、工具或模块可以是例如软件、固件、命令、数据文件、程序、代码、指令等,并且还可以包括合适的机制。例如,模块可以被实现为包括定制超大规模集成(VLSI)电路或门阵列的硬件电路、现成半导体(诸如,逻辑芯片)、晶体管或者其他分立组件。模块还可以被实现在可编程硬件器件(诸如现场可编程门阵列、可编程阵列逻辑、可编程逻辑器件等)中。
还可以以软件方式实现模块,以供各种类型的处理器执行。可执行代码的所标识的模块可以例如包括计算机指令的块,这些块可以被组织为对象、过程或函数。然而,所标识的模块的可执行程序不必被物理地定位在一起,但可以包括不同位置中存储的完全不同的指令,这些指令包括模块并在被逻辑接合在一起时实现针对模块而声明的目的。
实际上,可执行代码的模块可以是单个指令或许多指令,并可以甚至分布在多个不同代码段之上、分布在不同程序当中、以及跨越多个存储器件分布。类似地,本文可以在模块内标识和示意操作数据,并且可以以任何合适的形式体现该操作数据,并在任何合适类型的数据结构内组织该操作数据。该操作数据可以作为单个数据集而被收集,或者可以分布在包括越过不同存储器件的不同位置之上。模块可以是无源或有源的,包括用于执行期望功能的代理。
尽管在特定应用中示意了本技术的原理的上述示例,但是将显而易见的是,在不发挥发明才能的情况下以及在不脱离本技术的原理和构思的情况下,可以进行形式、使用和实现细节上的许多修改。相应地,除了如以下阐述的权利要求集合所限定外,并不意在限制本技术。
Claims (15)
1.一种制品,包括计算机可使用介质,所述计算机可使用介质具有体现在其中的用于数据流的连续查询的计算机可读程序代码,包括能够执行以下操作的计算机可读程序代码:
在查询引擎上初始化(310)包括查询周期的查询,以针对期望信息查询所述数据流;
将所述数据流处理(320)为段,其中,所述段的大小基于所定义的参数;
将所述查询周期与所述数据流的段进行同步(330);
通过使用处理器对第一计算机存储器中的第一段执行所述查询来分析(340)所述第一段,以获得第一结果;
存留(350)所述查询的查询状态,并倒回查询操作,以开始新查询周期;以及
通过使用所述处理器对第二计算机存储器中的第二段执行所述查询并基于所述第一结果来在所述新查询周期中分析(360)所述第二段。
2.根据权利要求1所述的制品,其中,所述计算机可读程序代码进一步能够提供段的接收的基本上实时的通知。
3.根据权利要求1所述的制品,其中,所述计算机可读程序代码进一步能够接收第二段,以及其中,分析所述第一段是在接收到所述第二段时执行的。
4.根据权利要求1所述的制品,其中,基于所述第一结果来分析所述第二段包括执行历史敏感连续分析法。
5.根据权利要求1所述的制品,其中,所述计算机可读程序代码进一步能够跨越查询周期维持缓冲器以提供滑动查询窗口。
6.根据权利要求1所述的制品,其中,所述计算机可读程序代码进一步能够在不存留从一个段至下一段的合计函数的上下文的情况下,针对每个段计算结构化查询语言(SQL)合计函数。
7.根据权利要求1所述的制品,其中,所述第一计算机存储器和所述第二计算机存储器分别包括第一表和第二表,所述方法进一步包括:
在分析所述第二段之后截断所述第一表;以及
分析所述第一表中的第三段。
8.根据权利要求1所述的制品,其中,所述第一计算机存储器和所述第二计算机存储器分别包括第一表和第二表,所述第一表包括写入表,并且所述第二表包括读取表,以及其中,所述计算机可读程序代码进一步能够:
使用数据字典操控来交换所述第一表和所述第二表的名称,所述交换包括:
将所述写入表重命名为读取表;以及
将所述读取表重命名为写入表。
9.根据权利要求8所述的制品,其中,交换包括:在不拷贝或移动所述第一表和第二表的内容的情况下交换名称。
10.一种用于数据流的连续查询的系统(100),包括:
查询引擎(170),用于针对期望信息分析连续数据流;
分析服务器(120),用于以数据段将所述连续数据流递送至所述查询引擎;
查询(180),在与所述连续数据流的数据段同步的周期中在所述查询引擎上执行;
第一缓冲器(140),用于接收第一数据段;
第二缓冲器(150),用于接收第二数据段;以及
缓冲池管理模块(130),用于管理从所述第一缓冲器和所述第二缓冲器的交替读取和写入。
11.根据权利要求10所述的系统,其中,所述第一缓冲器包括写入缓冲器,并且所述第二缓冲器包括读取缓冲器,并且所述缓冲池管理模块通过将所述第一缓冲器重命名为读取缓冲器并将所述第二缓冲器重命名为写入缓冲器,使用数据字典操控,来交换所述第一缓冲器和所述第二缓冲器的名称。
12.根据权利要求11所述的系统,其中,所述缓冲池管理模块在不拷贝或移动所述第一缓冲器和所述第二缓冲器的内容的情况下交换所述第一缓冲器和所述第二缓冲器的名称。
13.根据权利要求10所述的系统,其中,所述查询包括自引用、历史敏感查询,以及其中,所述查询引擎连续地且交替地查询所述第一缓冲器和所述第二缓冲器,使得在所述第二缓冲器接收到所述第二数据段时分析所述第一缓冲器,并且在所述第一缓冲器接收到第三数据段时分析所述第二缓冲器。
14.根据权利要求10所述的系统,进一步包括通知模块(160),所述通知模块(160)用于将段的接收的基本上实时的通知提供给所述查询引擎,以开始对所述段执行查询。
15.一种用于数据流的连续查询的方法(400),包括:
从数据源接收(410)数据流;
对所述数据流的段执行(420)基于周期的连续查询;
交替地、逐周期地将来自基于周期的连续查询的执行的分析法结果递送(430)至两个目的地表;
通过在所述两个目的地表中的一个处产生结果、同时在所述两个目的地表中的另一个处使用分析法结果,来同时产生和使用(440)所述分析法结果;以及
跨越段存留(450)基于周期的连续查询的查询状态,并倒回查询操作,以在相同的基于周期的连续查询的情况下开始新查询周期。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/US2010/052709 WO2012050582A1 (en) | 2010-10-14 | 2010-10-14 | Continuous querying of a data stream |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103250147A true CN103250147A (zh) | 2013-08-14 |
CN103250147B CN103250147B (zh) | 2016-04-20 |
Family
ID=45938583
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201080070687.6A Active CN103250147B (zh) | 2010-10-14 | 2010-10-14 | 数据流的连续查询 |
Country Status (4)
Country | Link |
---|---|
US (1) | US9195708B2 (zh) |
EP (1) | EP2628094A4 (zh) |
CN (1) | CN103250147B (zh) |
WO (1) | WO2012050582A1 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105988861A (zh) * | 2015-02-04 | 2016-10-05 | 阿里巴巴集团控股有限公司 | 事务消息的发送方法和装置 |
CN109299159A (zh) * | 2018-10-18 | 2019-02-01 | 新疆工程学院 | 一种基于窗口的数据流多连续查询方法 |
CN113961595A (zh) * | 2021-10-19 | 2022-01-21 | 奇安信科技集团股份有限公司 | 数据查询方法、装置、计算机设备和存储介质 |
Families Citing this family (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8676841B2 (en) | 2008-08-29 | 2014-03-18 | Oracle International Corporation | Detection of recurring non-occurrences of events using pattern matching |
US8935293B2 (en) | 2009-03-02 | 2015-01-13 | Oracle International Corporation | Framework for dynamically generating tuple and page classes |
US8959106B2 (en) | 2009-12-28 | 2015-02-17 | Oracle International Corporation | Class loading using java data cartridges |
US9430494B2 (en) | 2009-12-28 | 2016-08-30 | Oracle International Corporation | Spatial data cartridge for event processing systems |
US9305057B2 (en) | 2009-12-28 | 2016-04-05 | Oracle International Corporation | Extensible indexing framework using data cartridges |
US20110314019A1 (en) * | 2010-06-18 | 2011-12-22 | Universidad Politecnica De Madrid | Parallel processing of continuous queries on data streams |
US8713049B2 (en) | 2010-09-17 | 2014-04-29 | Oracle International Corporation | Support for a parameterized query/view in complex event processing |
US9189280B2 (en) | 2010-11-18 | 2015-11-17 | Oracle International Corporation | Tracking large numbers of moving objects in an event processing system |
US8990416B2 (en) | 2011-05-06 | 2015-03-24 | Oracle International Corporation | Support for a new insert stream (ISTREAM) operation in complex event processing (CEP) |
US9329975B2 (en) | 2011-07-07 | 2016-05-03 | Oracle International Corporation | Continuous query language (CQL) debugger in complex event processing (CEP) |
US11288277B2 (en) | 2012-09-28 | 2022-03-29 | Oracle International Corporation | Operator sharing for continuous queries over archived relations |
US9563663B2 (en) | 2012-09-28 | 2017-02-07 | Oracle International Corporation | Fast path evaluation of Boolean predicates |
US10956422B2 (en) | 2012-12-05 | 2021-03-23 | Oracle International Corporation | Integrating event processing with map-reduce |
EP2936361A2 (en) | 2012-12-21 | 2015-10-28 | DEKA Products Limited Partnership | System, method, and apparatus for communicating data |
US10298444B2 (en) | 2013-01-15 | 2019-05-21 | Oracle International Corporation | Variable duration windows on continuous data streams |
US9098587B2 (en) | 2013-01-15 | 2015-08-04 | Oracle International Corporation | Variable duration non-event pattern matching |
US20140230062A1 (en) * | 2013-02-12 | 2014-08-14 | Cisco Technology, Inc. | Detecting network intrusion and anomaly incidents |
US9390135B2 (en) | 2013-02-19 | 2016-07-12 | Oracle International Corporation | Executing continuous event processing (CEP) queries in parallel |
US9047249B2 (en) | 2013-02-19 | 2015-06-02 | Oracle International Corporation | Handling faults in a continuous event processing (CEP) system |
US9898475B1 (en) | 2013-02-25 | 2018-02-20 | EMC IP Holding Company LLC | Tiering with pluggable storage system for parallel query engines |
CN105164673A (zh) * | 2013-04-02 | 2015-12-16 | 惠普发展公司,有限责任合伙企业 | 跨数据库和文件系统的查询一体化 |
US9418113B2 (en) | 2013-05-30 | 2016-08-16 | Oracle International Corporation | Value based windows on relations in continuous data streams |
US9934279B2 (en) | 2013-12-05 | 2018-04-03 | Oracle International Corporation | Pattern matching across multiple input data streams |
US9244978B2 (en) | 2014-06-11 | 2016-01-26 | Oracle International Corporation | Custom partitioning of a data stream |
US9712645B2 (en) | 2014-06-26 | 2017-07-18 | Oracle International Corporation | Embedded event processing |
US9886486B2 (en) | 2014-09-24 | 2018-02-06 | Oracle International Corporation | Enriching events with dynamically typed big data for event processing |
US10120907B2 (en) | 2014-09-24 | 2018-11-06 | Oracle International Corporation | Scaling event processing using distributed flows and map-reduce operations |
WO2017018901A1 (en) | 2015-07-24 | 2017-02-02 | Oracle International Corporation | Visually exploring and analyzing event streams |
US10614063B2 (en) | 2015-10-01 | 2020-04-07 | Microsoft Technology Licensing, Llc. | Streaming records from parallel batched database access |
US11016958B2 (en) | 2017-09-29 | 2021-05-25 | Oracle International Corporation | Recreating an OLTP table and reapplying database transactions for real-time analytics |
US11321394B2 (en) * | 2019-06-24 | 2022-05-03 | Thatdot, Inc. | Graph processing system |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080016095A1 (en) * | 2006-07-13 | 2008-01-17 | Nec Laboratories America, Inc. | Multi-Query Optimization of Window-Based Stream Queries |
US20090106214A1 (en) * | 2007-10-17 | 2009-04-23 | Oracle International Corporation | Adding new continuous queries to a data stream management system operating on existing queries |
CN101848395A (zh) * | 2010-06-13 | 2010-09-29 | 上海交通大学 | H.264/avc输入码流用解码器及其控制方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8812487B2 (en) * | 2008-03-06 | 2014-08-19 | Cisco Technology, Inc. | Addition and processing of continuous SQL queries in a streaming relational database management system |
TWI383301B (zh) * | 2008-11-19 | 2013-01-21 | Inst Information Industry | 網路同步方法與系統 |
KR101014492B1 (ko) | 2009-03-26 | 2011-02-14 | 박재홍 | 관계형 데이터 모델 기반 스트리밍 데이터 처리를 위한 연속질의 언어 기반 연속질의 처리기 및 방법 |
-
2010
- 2010-10-14 EP EP10858507.6A patent/EP2628094A4/en not_active Withdrawn
- 2010-10-14 US US13/878,473 patent/US9195708B2/en active Active
- 2010-10-14 WO PCT/US2010/052709 patent/WO2012050582A1/en active Application Filing
- 2010-10-14 CN CN201080070687.6A patent/CN103250147B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080016095A1 (en) * | 2006-07-13 | 2008-01-17 | Nec Laboratories America, Inc. | Multi-Query Optimization of Window-Based Stream Queries |
US20090106214A1 (en) * | 2007-10-17 | 2009-04-23 | Oracle International Corporation | Adding new continuous queries to a data stream management system operating on existing queries |
CN101848395A (zh) * | 2010-06-13 | 2010-09-29 | 上海交通大学 | H.264/avc输入码流用解码器及其控制方法 |
Non-Patent Citations (1)
Title |
---|
QIMING CHEN ET AL: "Experience in Extending Query Engine for Continuous Analytics", 《DATE WAREHOUSING AND KONWLEDGE DISCOVERY.PROCEEDINGS 12TH INTERNATIONAL CONFERENCE,DAWAK 2010》, 30 August 2010 (2010-08-30) * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105988861A (zh) * | 2015-02-04 | 2016-10-05 | 阿里巴巴集团控股有限公司 | 事务消息的发送方法和装置 |
CN109299159A (zh) * | 2018-10-18 | 2019-02-01 | 新疆工程学院 | 一种基于窗口的数据流多连续查询方法 |
CN113961595A (zh) * | 2021-10-19 | 2022-01-21 | 奇安信科技集团股份有限公司 | 数据查询方法、装置、计算机设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2012050582A1 (en) | 2012-04-19 |
EP2628094A4 (en) | 2015-01-28 |
US9195708B2 (en) | 2015-11-24 |
CN103250147B (zh) | 2016-04-20 |
US20130191413A1 (en) | 2013-07-25 |
EP2628094A1 (en) | 2013-08-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103250147A (zh) | 数据流的连续查询 | |
US11080257B2 (en) | Journaled tables in database systems | |
CN105786955B (zh) | 数据库管理系统中的数据复制 | |
CN104040481B (zh) | 用于融合、存储和检索增量式备份数据的方法和系统 | |
US20210011898A1 (en) | Automatic determination of table distribution for multinode, distributed database systems | |
EP2040180B1 (en) | ETL-less zero-redundancy system and method for reporting OLTP data | |
JP5421269B2 (ja) | Oltpデータをレポートするための、重複がないetlレスシステム及びその方法 | |
CN104781810B (zh) | 将行和对象数据库活动跟踪到块级热图中 | |
US20180210934A1 (en) | Systems and methods for interest-driven business intelligence systems including event-oriented data | |
CN108027763B (zh) | 关系型数据库的调整装置和方法 | |
US7657574B2 (en) | Persistent storage file change tracking | |
CN107209704A (zh) | 检测丢失的写入 | |
WO2015154694A1 (en) | System and method for massively parallel processing database | |
US20040030954A1 (en) | Method and mechanism for relational access of recovery logs in a database system | |
US10789140B2 (en) | Facilitation of replication progress tracking | |
CN103001796A (zh) | 服务端处理网络日志数据的方法及装置 | |
Yang et al. | F1 Lightning: HTAP as a Service | |
US10515102B2 (en) | Pre-processing of geo-spatial sensor data | |
CN102346744B (zh) | 用于在多租户应用系统中处理物化表的装置 | |
Jewell et al. | Performance and capacity implications for big data | |
CN116009428A (zh) | 基于流式计算引擎的工业数据监控系统和方法、介质 | |
CN102231168A (zh) | 一种从简历库中快速检索简历的方法 | |
CN102779138A (zh) | 实时数据的硬盘存取方法 | |
CN116010452A (zh) | 基于流式计算引擎的工业数据处理系统和方法、介质 | |
US20240289329A1 (en) | Technique for Parallel Recovery on Read Replica |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C41 | Transfer of patent application or patent right or utility model | ||
TR01 | Transfer of patent right |
Effective date of registration: 20161230 Address after: American Texas Patentee after: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP Address before: American Texas Patentee before: Hewlett-Packard Development Company, L.P. |