CN107193898A - 基于分级复用的日志数据流的查询共享方法和系统 - Google Patents

基于分级复用的日志数据流的查询共享方法和系统 Download PDF

Info

Publication number
CN107193898A
CN107193898A CN201710320562.8A CN201710320562A CN107193898A CN 107193898 A CN107193898 A CN 107193898A CN 201710320562 A CN201710320562 A CN 201710320562A CN 107193898 A CN107193898 A CN 107193898A
Authority
CN
China
Prior art keywords
tuple
shared
query
inquiry
data stream
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
Application number
CN201710320562.8A
Other languages
English (en)
Other versions
CN107193898B (zh
Inventor
张进东
孙毓忠
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Zhongke Flux Technology Co ltd
Original Assignee
Institute of Computing Technology of CAS
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Institute of Computing Technology of CAS filed Critical Institute of Computing Technology of CAS
Priority to CN201710320562.8A priority Critical patent/CN107193898B/zh
Publication of CN107193898A publication Critical patent/CN107193898A/zh
Application granted granted Critical
Publication of CN107193898B publication Critical patent/CN107193898B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/14Details of searching files based on file metadata
    • G06F16/148File search processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/1805Append-only file systems, e.g. using logs or journals to store data
    • G06F16/1815Journaling file systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Library & Information Science (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明涉及一种基于分级复用的日志数据流的查询共享方法和系统,包括:将包含多个查询语句的查询操作注册到系统,通过设定滑动窗口对日志数据流中的元组进行截取;对多个该查询语句进行预处理,提取其中具有相同子查询的查询语句,并将其所查询结果作为中间结果加以存储,该中间结果用以在多个查询操作间进行共享;从所截取元组中提取具有相同中间存储结构的元组,并将其采用共享队列的方式加以存储以在多个查询操作间进行共享。本发明针对日志流查询存储共享,保证对日志流元组的数据进行有效存储、快速索引的前提下,也为数据共享情况下的迁移提供了灵活性;针对子查询共享,通过对相同谓词查询的抽取和共享,达到计算资源共享的目的。

Description

基于分级复用的日志数据流的查询共享方法和系统
技术领域
本发明涉及日志数据流的查询和存储领域,特别涉及一种基于分级复用的日志数据流的查询共享方法和系统。
背景技术
随着云计算和大数据技术的不断发展和广泛应用,集群中的日志数据越来越被重视。而集群中的这种简单的日志数据一方面同传统的日志数据相同,在系统的运行过程中也需要做相应的存储,以便于系统异常的运维和恢复,另一方面,集群中的日志数据在产生方式上又不同于传统的日志形式,是以一种数据流的方式在系统中产生。
日志数据流(以下简称日志流)的处理不同于传统数据流,在处理传统数据流时,有限的存储空间内无法存储无限日志流的全部数据,因此数据流上的查询多数在处理后丢弃,数据流上的查询多数得到近似的查询结果,也不同于传统数据库的查询,这种查询能够得到精确的查询结果。日志流具有以下特点:日志流是连续不断的按时间顺序实时产生的,系统无法控制集群中日志流元素的到达顺序;从系统中整个日志产生过程来看,日志流中的数据是无界的,在日志流上做查询得到的结果也是数据流;日志流查询的结果是精确的查询结果,系统要能保存日志流全部数据的一个有限子集或统计数据,并随着日志流上新数据的到来不断更新,更新的频率取决于集群中日志数据产生的速度,因此在应用上有很高的实时性要求。
对于日志数据的查询,通常采用以下技术:当数据规模较小时,直接采用 Linux的工具进行人工查看和手工处理,效率低下;当数据规模较大时,引入数据库,随着数据量的不断增大,单机处理无法满足流式日志数据的处理;对于海量日志查询,使用分布式文件系统存储海量日志文件信息,利用分布式计算对日志数据进行处理。
上面的查询方法极少满足云计算和大数据的分布式集群结构中的实时处理,专利201310541236.1提出了在多个计算节点之间的存储资源共享,该方法提出了一种缓解服务端数据库访问压力的方法和装置,该方法包括:查询服务端数据库中的应用的版本信息并复制到共享内存中;接收来自客户端的包含应用名称和应用的版本信息的应用更新查询请求;查询共享内存,判断共享内存中是否有对应的应用的记录,有则通过对比应用的版本信息确定应用更新查询请求所对应的应用是否需要更新,过滤掉不需要更新的应用;向服务端数据库查询需要更新的应用的更新相关信息,并返回给客户端。该发明的技术方案,由于在服务端数据库的前端设置了共享内存,利用共享内存的作用过滤掉其实不需要更新的应用的查询请求,从而实际查询服务端数据库的请求数量都是有效的请求,这大大减小了服务端数据库的访问压力,但这一过程中涉及到大量的数据复制或迁移,数据的一致性和实效性很难权衡,并且如果因为业务请求数据的不同,需要大量数据的换入换出共享内存,无疑增加系统的压力。
专利201480075283.4提出了在多个计算节点上运行相应的存储共享代理,所述存储共享代理在通信网络上相互通信;在给定的计算节点上运行一个或多个访问存储页面的本地虚拟机(VM);以及使用所述存储共享代理,将由所述本地VM访问的存储页面储存在所述计算节点中的至少两个计算节点上,并将所储存的存储页面供应给所述本地VM。该发明的技术方案,仅将数据的存储和访问做了分级,增加了系统的可靠性,但是对于在处理流式数据和查询共享上以及在数据处理的实效性上没有任何优势。
CQL语言是目前关系型数据流管理系统中主要的查询语言,它是从数据库的SQL语言演化而来的。对涉及到连接和聚集等操作的数据流来说,它们需要两个数据流中的元组全部到来后再进行查询,这些操作在数据流系统中称为阻塞操作。阻塞操作需要扫描数据流上的全部数据,而数据流元组是源源不断进入到系统中来的,是无限的,阻塞操作永远得不到输出结果。显然,阻塞操作不适用于数据流的查询处理。
相对于庞大的源源不断的日志流中的数据元组,计算机的处理资源(例如 CPU计算资源、内存资源等)显得十分有限,如何合理有效地利用有限的系统资源来处理无限的日志流,并得到尽可能准确的结果,是提高日志流查询处理效率的主要问题之一。
查询优化技术是解决这一问题的重要途径之一,可通过合理查询调度,实现查询共享、存储复用等方式加以实现,主要是通过对查询过程中的重复性操作和存储空间进行适当优化,在保证数据处理质量的前提下,提高系统的处理效率,降低系统的处理成本。本发明针对目前日志数据的查询特点主要从以下两方面展开:
1、子查询共享,在多查询共存的系统中,将不同查询中的相同子查询进行数据共享和操作符共享,以减少处理器的计算时间。
2、日志流的查询分级存储复用(共享),即在进行数据流查询过程中,对相同的中间查询结果进行存储共享,以减少存储空间的占用。
发明内容
为了解决上述技术问题,本发明在现有分布式系统集群之上,提供了针对日志流的查询共享和存储复用的方法,用于缓存和预取集群系统中的日志数据及其中间结果,目标是能够加快日志系统中历史日志数据和实时日志数据的处理速度。
为实现上述目的,本发明提供一种基于分级复用的日志数据流的查询共享方法,其中包括:
步骤1、将包含多个查询语句的查询操作注册到系统,通过设定滑动窗口对日志数据流中的元组进行截取;
步骤2、对多个该查询语句进行预处理,提取其中具有相同子查询的查询语句,并将其所查询结果作为中间结果加以存储,该中间结果用以在多个查询操作间进行共享;
步骤3、从步骤1所截取的元组中提取具有相同中间存储结构的元组,并将其采用共享队列的方式加以存储以在多个查询操作间进行共享。
该基于分级复用的日志数据流的查询共享方法,其中步骤3中该共享队列具有二级索引,包括:主队列,用作接收、存储和传递该相同元组;从队列,用于存储和发送该相同元组在日志数据流中的索引至该主队列;其中主队列和从队列间的通信采用异步模式。
该基于分级复用的日志数据流的查询共享方法,其中步骤2中该相同子查询,包括查询语句间操作符相同及其关联的操作数也相同。
该基于分级复用的日志数据流的查询共享方法,其中该步骤1中采用对日志数据流概要数据结构进行查询或对无限的日志数据流进行抽样的方法对日志数据流中元组进行截取。
基于分级复用的日志数据流的查询共享方法,其中步骤2中该预处理包括:根据数据库引擎里的词法分析语法分析模块对该查询语句进行转换,将复杂查询语句转换为简单查询语句;调整该查询语句中查询操作符的顺序,将查询转换成内部表示。
本发明还提供一种基于分级复用的日志数据流的查询共享系统,其中包括:
截取模块,用于将包含多个查询语句的查询操作注册到系统,通过设定滑动窗口对日志数据流中的元组进行截取;
查询结果共享模块,用于对多个该查询语句进行预处理,提取其中具有相同子查询的查询语句,并将其所查询结果作为中间结果加以存储,该中间结果用以在多个查询操作间进行共享;
元组共享模块,用于从截取模块所截取的元组中提取出具有相同中间存储结构的元组,并将其采用共享队列的方式加以存储以在多个查询操作间进行共享。
该基于分级复用的日志数据流的查询共享系统,其中元组共享模块中该共享队列具有二级索引,包括:主队列,用作接收、存储和传递该相同元组;从队列,用于存储和发送该相同元组在日志数据流中的索引至该主队列;其中主队列和从队列间的通信采用异步模式。
该基于分级复用的日志数据流的查询共享系统,其中查询结果共享模块中该相同子查询,包括查询语句间操作符相同及其关联的操作数也相同。
该基于分级复用的日志数据流的查询共享系统,其中该截取模块中采用对日志数据流概要数据结构进行查询或对无限的日志数据流进行抽样的方法对日志数据流中元组进行截取。
该基于分级复用的日志数据流的查询共享系统,其中查询结果共享模块中该预处理包括:根据数据库引擎里的词法分析语法分析模块对该查询语句进行转换,将复杂查询语句转换为简单查询语句;调整该查询语句中查询操作符的顺序,将查询转换成内部表示。
总的来讲,本发明针对日志流查询存储共享,设计了一种基于共享队列的二级索引作为日志流中间结果的存储结构,并相应地提出了一种日志流存储共享的迁移算法,保证对日志流元组的数据进行有效存储、快速索引的前提下,也为数据共享情况下的迁移提供了一定的灵活性;针对子查询共享,通过向日志流的相同谓词查询的抽取和共享操作,达到计算资源共享的目的。
附图说明
图1是本发明数据共享示例示意图;
图2是本发明直接操作符共享示意图;
图3是本发明间接操作符共享示意图;
图4是本发明数据存储共享模型示意图;
图5是本发明中间数据迁移算法的思想示意图;
图6是本发明各部分逻辑关系图。
具体实施方式
为让本发明的上述特征和效果能阐述的更明确易懂,下文列举实施示例,并配合说明书附图作详细说明如下。
日志流查询预处理对象是以查询操作符(谓词)为基本单位的。进入系统的日志流中的每个元组必须经过所有的查询操作符后,方能输出查询结果。因此,每个元组在等待相应查询操作符处理时,会被存储在相应的查询操作符队列中。在有些情况下,这些队列中的元组数是大致相同的。例如,投影操作符仅是将元组的相应属性组成新的元组输出到下一个查询操作符的等待队列中,元组的个数并没有改变。而在通常的数据流查询处理过程中,这些构成相同的中间处理结果将会被分别存储并处理,浪费了系统的存储空间,而在本发明中,中间处理结果会暂存到操作符队列,在实现过程中该队列存放的是数据的索引,因为存放原始数据的存储开销太大;查询处理模块会将相关的日志流数据都的索引储存到内存中,但是不同的请求会使用到这些数据不同的部分,如投影不同的属性值。同时,在存在多个查询语句的数据流管理系统中,会存在对于相同的数据流中间存储结果进行处理的多个操作符,而这些操作符多半是选择或投影操作符,因此其查询处理过程与结果也有很大的相同之处,如果能将这些相同的结果采用共享的方式进行存储,不仅能够节省系统的存储空间,而且能够提高系统的处理效率,其中该共享指将查询热度高的数据流中间结果在不同的查询请求间进行共享,这里的请求可能是复杂查询,也可能是复杂查询的子查询,如查询处理程序将日志流缓存映射到内存,不同的请求查询的数据不尽相同,有些用这些日志数据来做投影运算,而有些用来做连接运算。因此,查询共享研究的目标即为,将日志流查询处理中的数据根据查询热度对相同或相同部分进行分级处理,然后进行查询共享及存储共享,以达到一次处理、多处获益的效果。本发明采用的步骤和每一步的技术方案如下:
A.日志流查询共享,其实现方法为:
A1.数据查询共享方法(数据共享)
A1-1数据流查询处理是以查询操作符为基本单元的,查询操作符就是查询谓词,比如select、join、group、sequence(顺序操作)等,有查询操作符和数据对象(集合、表、视图)构成了查询语句,查询语句可以在逻辑上表示成树的结构,叶子节点是数据对象,非叶子节点是查询操作符。
每个元组在经过所有的查询操作符后,才能输出查询结果。因此,每个元组在等待相应查询操作符处理时,会被存储在相应的查询操作符队列中。
A1-2在存在多个查询语句的数据流管理系统中,通常会存在对相同的数据流中间查询结果进行处理的多个操作符,甚至是针对相同的数据流上的相同的计算表达式,即公共相同子查询。为减少查询计算次数,考虑使用子查询共享策略。
A1-3如图1所示,一般情况下,子查询共享是指相同子查询共享,即操作符以及由其关联的操作数完全相同的情况下,共享该操作符的结点、该操作数的结点、及该操作符和该操作数共同组成的计算结果,以合并查询语法树。
例如依次注册到系统中的三个查询,“;”表示顺序查询谓词,“∧”、“∨”分别表示为集合合取操作符、集合析取操作符,通过下面的查询语法树 (见图1)可以发现三个查询可以共享数据流S1、S2,减少了存取数据流S1、 S2的次数。
日志流查询1:CQ1=S1;S2=S1|;S2=LS1;
日志流查询2:CQ2=S2;S1=S1;|S2=LS2;
日志流查询3:CQ3=S1∧S2=(S1;S2)∨(S2;S1)=LS1∨LS2;
其中操作符“;”表示严格的日志流事件顺序的顺序操作符;“|;”和“;|”为表达S1、S2的数据共享,在操作符上表述两者的先后顺序关系;CQ3这一查询中等式成立的条件是在查询语义成立的条件下逻辑表达式转换。
在大多数情况下我们希望的一种情形是不仅数据可以共享,如上述情形,而且连操作也可以共享,这样就可以共享日志流经过操作后的中间结果,下述情形为操作符共享方法。显然共享数据时不一定能共享操作,但共享操作一定能共享数据。
A2.操作符共享方法(操作共享)
经过上述数据查询优化(数据共享)后,在日志流间查找可共享的操作符,该操作符一般具有如下特征:
1.是同一类操作符,一般为简单操作符,即投影操作符或选择操作符;
2.他们需要处理的日志流具有相同的结构特征,易于实现共享;
3.具备相同的查询条件,即对于相同的日志流操作后得到相同的结果。
A2-1.子查询操作直接共享
将多个符合条件的操作符共享,将共享结果供多个查询(每个查询都可以表示为一棵查询语法树)使用,如图2上半部分内容所示的查询序列通过子查询共享后得到图2下半部分内容所示的查询序列。
A2-2.子查询操作间接共享
在实际查询过程中同时具备上面三个条件的可共享的操作符并不多见,尤其是第三个条件,要求查询条件相同,在实际查询过程中较为少见。但是如果对具备前两个条件的查询操作符进行相应查询条件的转化,使其符合第三个条件,便可以进行操作符共享。转换的前提是日志流满足特征1、2,即查询语法里包含相同的查询子句,并且查询的数据范围相同或存在包含关系。这里需要额外说明的是处理数据流时需要同时兼顾存储在磁盘中的数据和在线的实时数据。如果查询历史数据就退化为简单的数据库查询,如果只查询在线数据 (如统计)就退化为数据流上的查询。
如图3所示,两选择操作符因为查询条件不同而不能进行共享,但经过转化x>200的查询条件可以利用x>100的查询结果进行进一步的查询,从而使得查询能够在一定程度上进行共享。
B.日志流存储共享。经过上面对数据共享和操作共享的分析,共享是非常必要的也是可行的,但是上述两种共享后的数据需要在内存和磁盘中组织数据,本部分侧重从存储角度如何实现共享。其实现方法为:
B1.存储共享模型设计
以查询操作符队列为基础,采用共享队列的二级索引方式来实现数据流元组的存储。它在保证数据一次索引下找到请求数据,同时为数据共享情况下的迁移提供了一定的灵活性。
B1-1.存储共享模型设计要点:
B1-1-1.主队列,用作接收、存储和传递各日志流,存储包括暂时存储和永久存储;并为每个子数据流设置一个从队列,该从队列用以存储和发送该子数据流至该主队列;
B1-1-2.主队列和从队列间的通信采用异步模式,即一个数据处理窗口内,某从队列完成查询运算生成索引信息后,不必等待其他从队列,可立即将该索引信息发送至该主队列。
此种数据存储方式的优势在于主队列和从队列互为备用,确保数据信息的安全性,且从队列存储量小,并且采用异步通信策略,有助于查询信息的实时共享,提高了数据信息的利用效率。
B1-1-3.子流与主流是相对而言,逻辑上,子日志流汇聚为主日志流,这里的主日志流也可能继续汇聚成更高层次的主日志流,汇聚与否跟业务层次需求相关。这里跟日志所在服务器的区域概念相对应,比如按从简单到复杂分为单机服务器,多个单机服务器组成集群,集群组成数据中心,不同的数据中心会有跨域的概念,等等。另外这种数据处理逻辑也体现了分级复用的目的。
B1-1-4.为方便索引,在主队列和从队列直接可以增加一级或多级主队列的镜像队列,用来存放主队列数据的地址信息,方便数据的迁移和更新。
B1-1-5.该数据队列的引用方式如图4所示。图4中,S1~S4分别代表不同日志流的中间结果存储队列,例如某请求查询系统中所有出现ERROR的日志,那么S1代表的是应用1中的ERROR的日志,S2代表的是应用2中ERROR 的日志,以此类推,通常这些队列中含有一些相同的中间处理元组。如果将这些元组直接存储在这些中间队列中,则相同的元组可能会在多个中间队列中重复出现,浪费了有限的存储空间。因此,考虑将元组统一存储在队列S(主队列)中,而S1~S4只存放和维护这些元组在队列中的索引。
B1-2.为解决数据迁移的灵活性问题,在主队列S和中间结果存储队列S1~S4之间又增设了一个中间索引地址队列S’(辅队列)。在S’中存储队列S中元组的地址,而S1~S4中只存储指向S’中这些地址的指针。这样,当进行数据迁移时,仅需要改动S’队列中的内容,而不需要频繁地变更队列 S1~S4中相同的内容。
B1-3.为方便理解此处再次声明:主队列S,日志流汇聚后的元组队列;辅队列S’,中间索引地址队列;SS1-SS4是日志流的中间结果队列,与前面的参与运算的原始日志流S1、S2不同,前者的抽象是为存储(不限于SS1-SS4),后者的抽象是为查询和逻辑运算,最多涉及两个对象(S1,S2)。
B1-4.通过数据流队列S和相应地址队列S’互相索引,既可以实现数据迁移时元组的地址在S’中的动态改变,而且操作符控制的数据中间处理结果队列通过对S’地址的索引完成,从而间接索引到S队列中的元组,使得数据迁移有了一定的灵活性。
C.本发明的目标是在分布式日志流处理系统上,实现日志流数据的存储共享和查询共享,提升分布式流处理系统的响应速度。根据上述查询共享和存储共享两部分的设计要点,对于系统中的查询实现共享的详细实施步骤如下:
C1.日志流查询处理,其实现的基本过程方法为:
C1-1.首先将用CQL语言表达的查询操作注册到系统,并通过设定滑动窗口,将数据流中最近到达的n个元组或最近t时间内的到达的元组进行存储。
C1-2.对概要数据结构进行查询或对无限的数据流进行抽样,将数据流中的查询数据范围限制在一个有限的区间(滑动窗口)内查询,对于实时数据这种查询只能得到近似的查询结果,是一种近似查询。
C1-3.针对数据流增加了两个新的关键字Rows和Range,Rows后接数字 n,表示截取最近到达的n个元组进行操作;而Range后接时间t(时间戳),表示截取最近t时间内的元组进行操作,通过这种方式对数据流进行限流处理。
根据A的步骤可以得到如下类似的多种应用相关的CQL查询语句
Select S1.source,S2.destination,S1.content
From S1[Rows 10000],S2[Range 2min]
Where S1.APPID=S2.APPID and S1.type>=100and seq(S1;S2)
其中S1,S2表示同一应用日志流,type=100表示日志的类型为ERROR,值越大表示错误越严重type=200表示致命错误;
C2.思路:查询语句的预处理:
C2-1词法分析语法分析,根据数据库引擎里的词法分析语法分析模块对查询语句进行转换,将复杂查询转换为简单查询。如对于上述CQL查询语句,查询分析模块会从where部分开始将上述复杂的查询分解为连接 (S1.APPID=S2.APPID)、顺序(seq(S1;S2))、选择(select)等。
C2-2调整查询操作符的顺序,优化查询,生成查询语法树,即将查询转换成内部表示,如对于关系型操作可以表示成关系代数语法树。即查询语句可以在逻辑上表示成树的结构,叶子节点是数据对象,非叶子节点是查询操作符。查询优化模块将投影和选择等基本操作下放到接近输的叶子结点处;
C2-3将基本的操作首先执行,如果使用相同的数据流对象,可以将多个基本操作同时进行。例如,将把投影和选择运算同时进行。如有若干投影和选择操作,并且他们都针对同一个关系操作,则可以在扫描此关系的同时完成所有的这些运算以避免重复缓存以扫描数据流对象;
C2-4找出公共子表达式(子查询)。如果这种重复出现的子表达式的结果不是很大的关系,并且从外存中读取这个关系比计算该子表达式的时间少得多,则先计算一次公共子表达式并把结果写入中间结果用以共享;
C3.在设计查询共享模型时,需重点考虑和解决以下几个问题:
C3-1.发现共享,即从系统的数据流查询条件(界定查询数据范围的限制子句,如where、with,属于查询语句的一部分)和存储结构中发现那些适合于共享处理的元组,比如元组是否具有相同的中间存储结构和相同的查询操作符,这些共享不限于单个查询内部,也包括多个查询之间,如图1中的两个连续查询CQ1和CQ2;
C3-2.共享的结构和算法设计,即设计相应的数据结构和算法,完成数据流相关结构共享的要求,详细参见发明内容部分B.日志流存储共享实现方法;
C3-3.相关处理,即如何处理好数据流查询中共享部分与非共享部分的连接,一方面从不同的查询请求着眼,系统中的查询请求是不一样的,最终还是按各自查询树(图)的结构处理整个查询;另一方面共享和非共享部分也包括数据和操作两方面,在存储上还是用指针钩链的方式索引到相应的数据和操作。从而在数据共享的情况下保证数据流查询处理的有效性和执行速度。
C4.数据迁移算法设计,数据迁移用作存储共享的一个应用示例或者是作为内存中日志数据的换入换出策略,其实现方法为:
C4-1.定义如下变量:指向元组的指针q,q’,共享元组队列首地址S;共享元组索引地址队列首地址S’;临时指针p。
需要定义如下函数:
GetTupleReference(q):用于获得q指向元组的引用计数;
GetTupleAddress(q):用于获得q指向的元组在S’队列中地址索引的地址;
Copy(q,q’):将q指向的元组内容复制到q’中。
C4-2.具体的数据迁移算法如图6所示。
C4-3.在算法过程中,需要根据中间结果队列对元组的引用情况进行引用计数,当计数减到0或者元组时间戳超时表示元组可以被抛弃,需进行复位操作。数据迁移由系统每隔一定的时间进行,将进行复位操作的元组删除,同时将有效元组做紧缩处理,同时更改队列S’的地址内容。
综合上述A、B、C各部分的阐述,最终实现的目标是查询共享,各部分的逻辑关系如图6所示。
以下为与上述方法实施例对应的系统实施例,本实施方式可与上述实施方式互相配合实施。上述施方式中提到的相关技术细节在本实施方式中依然有效,为了减少重复,这里不再赘述。相应地,本实施方式中提到的相关技术细节也可应用在上述实施方式中。
本发明还提供一种基于分级复用的日志数据流的查询共享系统,其中包括:
截取模块,用于将包含多个查询语句的查询操作注册到系统,通过设定滑动窗口对日志数据流中的元组进行截取;
查询结果共享模块,用于对多个该查询语句进行预处理,提取其中具有相同子查询的查询语句,并将其所查询结果作为中间结果加以存储,该中间结果用以在多个查询操作间进行共享;
元组共享模块,用于从截取模块所截取的元组中提取出具有相同中间存储结构的元组,并将其采用共享队列的方式加以存储以在多个查询操作间进行共享。
该基于分级复用的日志数据流的查询共享系统,其中元组共享模块中该共享队列具有二级索引,包括:主队列,用作接收、存储和传递该相同元组;从队列,用于存储和发送该相同元组在日志数据流中的索引至该主队列;其中主队列和从队列间的通信采用异步模式。
该基于分级复用的日志数据流的查询共享系统,其中查询结果共享模块中该相同子查询,包括查询语句间操作符相同及其关联的操作数也相同。
该基于分级复用的日志数据流的查询共享系统,其中该截取模块中采用对日志数据流概要数据结构进行查询或对无限的日志数据流进行抽样的方法对日志数据流中元组进行截取。
该基于分级复用的日志数据流的查询共享系统,其中查询结果共享模块中该预处理包括:根据数据库引擎里的词法分析语法分析模块对该查询语句进行转换,将复杂查询语句转换为简单查询语句;调整该查询语句中查询操作符的顺序,将查询转换成内部表示。
虽然本发明以上述实施例公开,但具体实施例仅用以解释本发明,并不用于限定本发明,任何本技术领域技术人员,在不脱离本发明的构思和范围内,可作一些的变更和完善,故本发明的权利保护范围以权利要求书为准。

Claims (10)

1.一种基于分级复用的日志数据流的查询共享方法,其特征在于,包括:
步骤1、将包含多个查询语句的查询操作注册到系统,通过设定滑动窗口对日志数据流中的元组进行截取,作为截取元组;
步骤2、对该查询语句进行预处理,提取其中具有相同子查询的查询语句,作为提取查询语句,并将该提取查询语句所对应的查询结果作为中间结果加以存储,该中间结果用以在多个查询操作间进行共享;
步骤3、该截取元组中提取具有相同中间存储结构的元组,作为提取元组,并将该提取元组采用共享队列的方式加以存储,以在多个查询操作间进行共享。
2.如权利要求1所述的基于分级复用的日志数据流的查询共享方法,其特征在于,步骤3中该共享队列具有二级索引,包括:主队列,用作接收、存储和传递该相同元组;从队列,用于存储和发送该相同元组在日志数据流中的索引至该主队列;其中主队列和从队列间的通信采用异步模式。
3.如权利要求1所述的基于分级复用的日志数据流的查询共享方法,其特征在于,步骤2中该相同子查询,包括查询语句间操作符相同及其关联的操作数也相同。
4.如权利要求1所述的基于分级复用的日志数据流的查询共享方法,其特征在于,该步骤1中采用对日志数据流概要数据结构进行查询或对无限的日志数据流进行抽样的方法对日志数据流中元组进行截取。
5.如权利要求1所述的基于分级复用的日志数据流的查询共享方法,其特征在于,步骤2中该预处理包括:根据数据库引擎里的词法分析语法分析模块对该查询语句进行转换,将复杂查询语句转换为简单查询语句;调整该查询语句中查询操作符的顺序,将查询转换成内部表示。
6.一种基于分级复用的日志数据流的查询共享系统,其特征在于,包括:
截取模块,用于将包含多个查询语句的查询操作注册到系统,通过设定滑动窗口对日志数据流中的元组进行截取,作为截取元组;
查询结果共享模块,用于对该查询语句进行预处理,提取其中具有相同子查询的查询语句,作为提取查询语句,并将该提取查询语句所对应的查询结果作为中间结果加以存储,该中间结果用以在多个查询操作间进行共享;
元组共享模块,用于在该截取元组中提取具有相同中间存储结构的元组,作为提取元组,并将该提取元组采用共享队列的方式加以存储,以在多个查询操作间进行共享。
7.如权利要求6所述的基于分级复用的日志数据流的查询共享系统,其特征在于,元组共享模块中该共享队列具有二级索引,包括:主队列,用作接收、存储和传递该相同元组;从队列,用于存储和发送该相同元组在日志数据流中的索引至该主队列;其中主队列和从队列间的通信采用异步模式。
8.如权利要求6所述的基于分级复用的日志数据流的查询共享系统,其特征在于,查询结果共享模块中该相同子查询,包括查询语句间操作符相同及其关联的操作数也相同。
9.一种如权利要求6所述的基于分级复用的日志数据流的查询共享系统,其特征在于,该截取模块中采用对日志数据流概要数据结构进行查询或对无限的日志数据流进行抽样的方法对日志数据流中元组进行截取。
10.如权利要求1所述的基于分级复用的日志数据流的查询共享系统,其特征在于,查询结果共享模块中该预处理包括:根据数据库引擎里的词法分析语法分析模块对该查询语句进行转换,将复杂查询语句转换为简单查询语句;调整该查询语句中查询操作符的顺序,将查询转换成内部表示。
CN201710320562.8A 2017-05-09 2017-05-09 基于分级复用的日志数据流的查询共享方法和系统 Active CN107193898B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710320562.8A CN107193898B (zh) 2017-05-09 2017-05-09 基于分级复用的日志数据流的查询共享方法和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710320562.8A CN107193898B (zh) 2017-05-09 2017-05-09 基于分级复用的日志数据流的查询共享方法和系统

Publications (2)

Publication Number Publication Date
CN107193898A true CN107193898A (zh) 2017-09-22
CN107193898B CN107193898B (zh) 2019-12-03

Family

ID=59873109

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710320562.8A Active CN107193898B (zh) 2017-05-09 2017-05-09 基于分级复用的日志数据流的查询共享方法和系统

Country Status (1)

Country Link
CN (1) CN107193898B (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107844405A (zh) * 2017-10-12 2018-03-27 华为技术有限公司 日志处理方法及装置、服务器
CN109308300A (zh) * 2018-09-27 2019-02-05 上海达梦数据库有限公司 一种逻辑运算的处理方法、装置、转换插件及存储介质
CN110096504A (zh) * 2019-03-29 2019-08-06 北京奇安信科技有限公司 流式事件特征匹配方法及装置
CN110505081A (zh) * 2019-07-15 2019-11-26 惠州市德赛西威汽车电子股份有限公司 一种节省流量的异常日志上传、采集方法与处理系统
CN110908995A (zh) * 2018-09-17 2020-03-24 阿里巴巴集团控股有限公司 数据处理方法、装置以及设备
CN115858636A (zh) * 2023-03-01 2023-03-28 深圳市宏博信息科技有限公司 面向大数据流的分布式索引搜索方法、装置
CN117056110A (zh) * 2023-08-17 2023-11-14 北京优特捷信息技术有限公司 一种系统故障排查方法、装置、电子设备及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103365230A (zh) * 2013-07-15 2013-10-23 北京华凯润通石油机械有限公司 加油站前庭设备控制系统
CN103399894A (zh) * 2013-07-23 2013-11-20 中国科学院信息工程研究所 一种基于共享存储池的分布式事务处理方法
CN106462578A (zh) * 2014-04-01 2017-02-22 华为技术有限公司 数据库条目查询和更新的方法
CN106506703A (zh) * 2016-12-28 2017-03-15 掌阅科技股份有限公司 基于共享内存的服务发现方法、装置及系统、服务器

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103365230A (zh) * 2013-07-15 2013-10-23 北京华凯润通石油机械有限公司 加油站前庭设备控制系统
CN103399894A (zh) * 2013-07-23 2013-11-20 中国科学院信息工程研究所 一种基于共享存储池的分布式事务处理方法
CN106462578A (zh) * 2014-04-01 2017-02-22 华为技术有限公司 数据库条目查询和更新的方法
CN106506703A (zh) * 2016-12-28 2017-03-15 掌阅科技股份有限公司 基于共享内存的服务发现方法、装置及系统、服务器

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107844405A (zh) * 2017-10-12 2018-03-27 华为技术有限公司 日志处理方法及装置、服务器
CN107844405B (zh) * 2017-10-12 2021-11-19 华为技术有限公司 日志处理方法及装置、服务器
CN110908995A (zh) * 2018-09-17 2020-03-24 阿里巴巴集团控股有限公司 数据处理方法、装置以及设备
CN110908995B (zh) * 2018-09-17 2023-04-11 阿里巴巴集团控股有限公司 数据处理方法、装置以及设备
CN109308300A (zh) * 2018-09-27 2019-02-05 上海达梦数据库有限公司 一种逻辑运算的处理方法、装置、转换插件及存储介质
CN110096504A (zh) * 2019-03-29 2019-08-06 北京奇安信科技有限公司 流式事件特征匹配方法及装置
CN110096504B (zh) * 2019-03-29 2021-08-20 奇安信科技集团股份有限公司 流式事件特征匹配方法及装置
CN110505081A (zh) * 2019-07-15 2019-11-26 惠州市德赛西威汽车电子股份有限公司 一种节省流量的异常日志上传、采集方法与处理系统
CN115858636A (zh) * 2023-03-01 2023-03-28 深圳市宏博信息科技有限公司 面向大数据流的分布式索引搜索方法、装置
CN115858636B (zh) * 2023-03-01 2023-06-27 深圳市宏博信息科技有限公司 面向大数据流的分布式索引搜索方法、装置
CN117056110A (zh) * 2023-08-17 2023-11-14 北京优特捷信息技术有限公司 一种系统故障排查方法、装置、电子设备及存储介质
CN117056110B (zh) * 2023-08-17 2024-02-23 北京优特捷信息技术有限公司 一种系统故障排查方法、装置、电子设备及存储介质

Also Published As

Publication number Publication date
CN107193898B (zh) 2019-12-03

Similar Documents

Publication Publication Date Title
CN107193898B (zh) 基于分级复用的日志数据流的查询共享方法和系统
US11334548B2 (en) Index sharding
CN103246749B (zh) 面向分布式计算的矩阵数据库系统及其查询方法
US20170046412A1 (en) Method for Querying and Updating Entries in a Database
US20120011144A1 (en) Aggregation in parallel computation environments with shared memory
US20090055370A1 (en) System and method for data warehousing and analytics on a distributed file system
EP2469423B1 (en) Aggregation in parallel computation environments with shared memory
Gerber Dataflow query processing using multiprocessor hash-partitioned algorithms
WO2014210218A1 (en) Incremental maintenance of range-partitioned statistics for query optimization
US11429607B2 (en) Machine language query management for low-latency database analysis system
US11507555B2 (en) Multi-layered key-value storage
CN102054000A (zh) 数据查询方法、装置及系统
US20230325388A1 (en) Aggregation Operations In A Distributed Database
Zhang et al. Oceanrt: Real-time analytics over large temporal data
US11809468B2 (en) Phrase indexing
Zhang et al. Egraph: efficient concurrent GPU-based dynamic graph processing
US11989196B2 (en) Object indexing
US20130013824A1 (en) Parallel aggregation system
Aslam et al. Pre‐filtering based summarization for data partitioning in distributed stream processing
Shi et al. Hedc: A histogram estimator for data in the cloud
CN113177089A (zh) 一种分布式数据存储引擎调度方法
CN110569310A (zh) 一种云计算环境下的关系大数据的管理方法
Chen Efficient partitioner for distributed OLTP DBMS
Wang et al. Distributed and parallel construction method for equi-width histogram in cloud database
Mazumdar Template B+ trees: an index scheme for fast data streams with distributed append-only stores

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20240320

Address after: Room 711C, Floor 7, Building A, Yard 19, Ronghua Middle Road, Daxing District, Beijing Economic-Technological Development Area, 100176

Patentee after: Beijing Zhongke Flux Technology Co.,Ltd.

Country or region after: China

Address before: 100190 No. 6 South Road, Zhongguancun Academy of Sciences, Beijing, Haidian District

Patentee before: Institute of Computing Technology, Chinese Academy of Sciences

Country or region before: China