CN106909624B - 一种海量数据实时排序优化方法 - Google Patents

一种海量数据实时排序优化方法 Download PDF

Info

Publication number
CN106909624B
CN106909624B CN201710043943.6A CN201710043943A CN106909624B CN 106909624 B CN106909624 B CN 106909624B CN 201710043943 A CN201710043943 A CN 201710043943A CN 106909624 B CN106909624 B CN 106909624B
Authority
CN
China
Prior art keywords
node
level
file
nodes
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.)
Active
Application number
CN201710043943.6A
Other languages
English (en)
Other versions
CN106909624A (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.)
Institute of Information Engineering of CAS
Original Assignee
Institute of Information Engineering 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 Information Engineering of CAS filed Critical Institute of Information Engineering of CAS
Priority to CN201710043943.6A priority Critical patent/CN106909624B/zh
Publication of CN106909624A publication Critical patent/CN106909624A/zh
Application granted granted Critical
Publication of CN106909624B publication Critical patent/CN106909624B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/17Details of further file system functions
    • G06F16/1734Details of monitoring file system events, e.g. by the use of hooks, filter drivers, logs
    • 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/17Details of further file system functions
    • G06F16/172Caching, prefetching or hoarding of files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2453Query optimisation
    • G06F16/24534Query rewriting; Transformation
    • G06F16/24539Query rewriting; Transformation using cached or materialised query results
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24552Database cache management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2457Query processing with adaptation to user needs
    • G06F16/24578Query processing with adaptation to user needs using ranking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/953Querying, e.g. by the use of web search engines
    • G06F16/9535Search customisation based on user profiles and personalisation

Landscapes

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

Abstract

本发明公开了一种海量数据实时排序优化方法。本方法为:1)设置一集群级节点、若干节点级节点和若干文件级节点;2)集群级节点将收到的检索排序请求发送给各节点级节点,各节点级节点将该检索排序请求发送给本节点的文件级节点;3)各文件级节点根据该检索排序请求,将与本节点相关的日志文件排序后输出有序数据给节点级节点;4)各节点级节点根据该检索排序请求将本节点上符合时间范围和分区条件的日志数据排序后输出给该集群级节点;5)该集群级节点将各节点级节点发送过来的有序数据流进行排序汇总。在任意的排序场景中,本方法都能有效降低内存使用量。

Description

一种海量数据实时排序优化方法
技术领域
本发明涉及数据查询优化领域,是一种针对海量数据实时排序的优化方法。
背景技术
由于日志数据之间一般都存在时序关系,这就要求检索引擎一方面能以秒级响应的性能获得满足业务用户需求的数据,另一方面还需要在获取数据时保持这种时序关系,即需要检索引擎支持面向海量日志数据的秒级排序功能。
按照传统的排序方法,检索引擎需要获取所有满足条件的数据后才能进行排序并返回结果,这在结果集较大的情况下将无法实现秒级响应,另一方面由检索引擎缓存所有中间结果也将消耗大量的系统资源,从而影响检索引擎服务的整体性能。
发明内容
针对现有技术中存在的技术问题,本发明的目的在于提供一种海量数据实时排序优化方法。本发明提出针对海量日志数据的多级流水排序方法,该方法通过文件级、节点级、集群级三级流水排序的方式,一方面保证了首批结果集的响应时间,另一方面各级排序不用缓存所有中间结果,从而降低了检索引擎排序所需的内存资源。
本发明的技术方案为:
一种海量数据实时排序优化方法,其步骤为:
1)设置一集群级节点、若干节点级节点和若干文件级节点;其中,集群级节点为接入检索排序请求的服务器节点,节点级节点为响应检索排序请求的服务器节点,文件级节点为节点级节点内部的文件排序进程;
2)集群级节点将收到的检索排序请求发送给各节点级节点,各节点级节点将该检索排序请求发送给本节点的文件级节点;
3)各文件级节点根据该检索排序请求,将与本节点相关的日志文件排序后输出有序数据给节点级节点;
4)各节点级节点根据该检索排序请求将本节点上符合时间范围和分区条件的日志数据排序后输出给该集群级节点;
5)该集群级节点将各节点级节点发送过来的有序数据流进行排序汇总。
进一步的,所述节点级节点根据该检索排序请求确定需要排序的文件集合,然后为该文件集合中每一待排序文件分配一文件级节点;然后该文件级节点查询对应待排序文件中符合该检索排序请求的日志数据,并将其排序后发送给所述节点级节点。
进一步的,所述节点级节点将其包含的文件级节点按时间区间合并成多个组,同一组文件级节点对应的文件属于同一时间区间;所述节点级节点依次从各组文件级节点获取所述有序数据进行排序后发送给所述集群级节点。
进一步的,所述集群级节点将各节点级节点发送过来的有序数据流进行实时排序汇总后输出。
进一步的,每一文件级节点维护一缓冲区,每一节点级节点维护一待排序数据缓冲区和一待输出数据缓冲区,所述集群级节点维护一缓冲区。
进一步的,各文件级节点将排好序的数据放入其缓冲区中;所述节点级节点通过拉取模式不断从文件级节点的缓冲区中获取数据存入自己的待排序缓冲区中,并将排好的数据放入自己的待输出数据缓冲区的输出流中。
进一步的,所述节点级节点根据该检索排序请求中的时间范围及分区条件,确定出文件级节点,并根据确定出的文件级节点采用剪枝策略对该时间范围和分区条件进行改写后生成新的检索排序请求发送给确定出的对应文件级节点。本发明主要包括两个方面:(1)多级流水排序模式处理海量数据的排序操作。(2)通过剪枝操作加快处理速度和减少内存使用量。
该发明包括以下内容:
1)多级流水节点处理海量数据。
2)上层节点通过拉取模式获得下级节点的输出,降低上层节点缓冲区内存使用量。
3)在任意两级节点之间实现剪枝策略,即对每个下层节点标记时间范围及用户自定义的分区条件,获取查询条件后对下层节点实现时间范围和分区条件的过滤,从而进一步提高处理速度并减少内存使用量。
与现有技术相比,本发明的积极效果为:
虽然该方法也可以适用于普通的大规模数据排序,但是在需要快速获得部分结果的实时交互场景中效果明显,在任意的排序场景中,该方法都能有效降低内存使用量。
附图说明
图1为多级流水排序示意图;
图2为上下级节点关系示意图。
具体实施方式
下面结合附图,对优选实施例作详细说明。应该强调的是下述说明仅仅是示例性的,而不是为了限制本发明的范围及其应用。
根据检索引擎的工作流程,节点共分为三层,集群级节点为接入检索排序请求的服务器节点,负责接收其他服务器节点发来的有序数据,并将各有序数据流汇总后返回给客户端;节点级节点为响应检索排序请求的其他服务器节点,负责接收集群级节点发来的检索排序请求,将本服务器节点上符合时间范围和分区条件的日志数据排序后输出传输给集群级节点;文件级节点为服务器内部的文件排序进程,负责接收节点级节点发来的检索排序请求,将与排序进程相关的日志文件排序后输出有序数据给节点级节点。因此,为了实现流水排序的目标,需要在文件级、节点级和集群级三级上分别做到检索结果是保序的。三级流水的具体结构如图1所示,下面将针对各流水级做详细说明。
文件级
文件级保序通过文件排序器(FileSorter)实现。如果节点级节点接收检索排序请求后,通过时间范围及分区条件确定需要排序的文件集合,然后为该文件集合中的每一个待排序文件分配一个文件排序器进程(即文件级节点)。排序器进程负责根据查询条件检索文件内包含的日志数据,并收集符合检索条件的记录。最后对满足检索条件的记录集合排序并将排序结果输出送入节点级节点。
节点级
节点级保序通过节点排序器(NodeSorter)实现。节点排序器的输入是各个本地文件排序器的输出结果,通过对各个文件的检索结果进行归并排序,得到本节点保序的检索结果。由于文件排序器的输出是保序的,因此节点排序器在获得各个文件排序器的首批排序结果后即可进行排序,首批排序结果即可作为集群级排序的输入。通话情况下,每个日志文件只保存一个特定时间区间内的数据,因此节点排序器无需等待从所有本节点的日志文件获取首批记录。节点排序器首先将文件排序器按时间区间合并成多个组(如图虚框所示),每一个组内的文件属于同一时间区间;然后依次从各个文件排序器组获取排序结果。
集群级
集群级保序通过集群排序器(ClusterSorter)实现。集群排序器的输入是各个节点排序器的输出结果,通过对各个节点的检索结果进行归并排序,得到最终保序的检索结果。由于节点排序器的输出是保序的,因此集群排序器在获得各个节点排序器的首批排序结果后即可进行排序(实际上,不用等每个节点的首批结果都返回),排序结果可作为最终结果返回给用户。
上级与下级的具体关系描述
图2展示了排序流程的上级排序器与下级排序器的关系,该结构既可以适用于节点级与文件级关系的描述,也可以适用于集群级与节点级关系的描述,这里假定了下级节点的个数为4个。如图2所示,下级节点将排好序的部分数据放入该下级节点的缓冲区中等待,上级节点通过拉取模式不断从下级节点的缓冲区中获取数据存入上级节点的待排序缓冲区中,并将排好的部分数据放入上级节点缓冲区的输出流中,从这个工作流程可以看出,每一个文件级节点维护了一块保序数据的缓冲区,集群级节点维护了一块待排序数据的缓冲区,该缓冲区缓冲了下层节点送来的多个保序数据流,节点级节点同时维护了待排序数据缓冲区以及待输出的保序数据缓冲区。因此各级节点采用维护一部分数据的缓冲区的方法,降低了排序所需的内存资源,缓冲区的大小可由用户根据业务数据特点自行定义,缓冲区在10M~20MB之间即可满足排序需求。
为了进一步加快排序过程和减少缓冲区内存的使用量,上级节点在发送排序命令时会执行剪枝操作。上级节点接收检索请求后,通过分析检索条件中的时间范围及分区条件,确定下层命中的节点范围,并将时间范围和分区条件改写后包装成新的检索送入下层命中节点。(上级节点采用剪枝策略,根据检索条件中的时间范围及分区条件过滤掉时间范围没有命中的下层节点,并将时间范围和分区条件改写后包装成新的检索送入下层命中节点。)例如图2中,上级节点发送的需要排序的数据包括的时序区间为t1~t’(t’<t2),t4~t”(t”<t5),则下级节点中只有下级节点1和下级节点4参与该过程的排序,上层节点针对每个下层节点发送不同的改写后的检索条件,由于该检索条件仅包含时间范围,因此节点1接收的检索条件为<t’,而节点4接收的检索条件为<t”。采用该剪枝策略使得上层节点使用内存更少,处理速度更快。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。

Claims (5)

1.一种海量数据实时排序优化方法,其步骤为:
1)设置一集群级节点、若干节点级节点和若干文件级节点;其中,集群级节点为接入检索排序请求的服务器节点,节点级节点为响应检索排序请求的服务器节点,文件级节点为节点级节点内部的文件排序进程;每一文件级节点维护一缓冲区,每一节点级节点维护一待排序数据缓冲区和一待输出数据缓冲区,所述集群级节点维护一缓冲区;
2)集群级节点将收到的检索排序请求发送给各节点级节点,各节点级节点将该检索排序请求发送给本节点的文件级节点;
3)各文件级节点根据该检索排序请求,将与本节点相关的日志文件排序后输出有序数据给节点级节点;其中,各文件级节点将排好序的数据放入其缓冲区中,所述节点级节点通过拉取模式不断从文件级节点的缓冲区中获取数据存入自己的待排序缓冲区中,并将排好序的数据放入自己的待输出数据缓冲区的输出流中;
4)各节点级节点根据该检索排序请求将本节点上符合时间范围和分区条件的日志数据排序后输出给该集群级节点;
5)该集群级节点将各节点级节点发送过来的有序数据流进行排序汇总。
2.如权利要求1所述的方法,其特征在于,所述节点级节点根据该检索排序请求确定需要排序的文件集合,然后为该文件集合中每一待排序文件分配一文件级节点;然后该文件级节点查询对应待排序文件中符合该检索排序请求的日志数据,并将其排序后发送给所述节点级节点。
3.如权利要求2所述的方法,其特征在于,所述节点级节点将其包含的文件级节点按时间区间合并成多个组,同一组文件级节点对应的文件属于同一时间区间;所述节点级节点依次从各组文件级节点获取所述有序数据进行排序后发送给所述集群级节点。
4.如权利要求1或2或3所述的方法,其特征在于,所述集群级节点将各节点级节点发送过来的有序数据流进行实时排序汇总后输出。
5.如权利要求1或2或3所述的方法,其特征在于,所述节点级节点根据该检索排序请求中的时间范围及分区条件,确定出文件级节点,并根据确定出的文件级节点采用剪枝策略对该时间范围和分区条件进行改写后生成新的检索排序请求发送给确定出的对应文件级节点。
CN201710043943.6A 2017-01-19 2017-01-19 一种海量数据实时排序优化方法 Active CN106909624B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710043943.6A CN106909624B (zh) 2017-01-19 2017-01-19 一种海量数据实时排序优化方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710043943.6A CN106909624B (zh) 2017-01-19 2017-01-19 一种海量数据实时排序优化方法

Publications (2)

Publication Number Publication Date
CN106909624A CN106909624A (zh) 2017-06-30
CN106909624B true CN106909624B (zh) 2020-05-22

Family

ID=59206945

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710043943.6A Active CN106909624B (zh) 2017-01-19 2017-01-19 一种海量数据实时排序优化方法

Country Status (1)

Country Link
CN (1) CN106909624B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107729375B (zh) * 2017-09-13 2021-11-23 微梦创科网络科技(中国)有限公司 一种日志数据排序的方法及装置
CN110147944B (zh) * 2019-04-30 2023-08-01 创新先进技术有限公司 排名方法及装置
CN112925809A (zh) * 2021-02-24 2021-06-08 浙江大华技术股份有限公司 数据的存储方法、装置和系统
CN114218164A (zh) * 2021-12-17 2022-03-22 微梦创科网络科技(中国)有限公司 一种基于时序向量检索的数据异常检测方法及系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103399944A (zh) * 2013-08-14 2013-11-20 曙光信息产业(北京)有限公司 数据去重查询的实现方法和实现装置
CN105740264A (zh) * 2014-12-10 2016-07-06 北大方正集团有限公司 一种分布式xml数据库的排序方法及装置
CN105868023A (zh) * 2016-03-24 2016-08-17 联想(北京)有限公司 一种分布式系统中的数据处理方法及计算节点

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160203422A1 (en) * 2015-01-14 2016-07-14 Nextop Italia Srl Semplificata Method and electronic travel route building system, based on an intermodal electronic platform

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103399944A (zh) * 2013-08-14 2013-11-20 曙光信息产业(北京)有限公司 数据去重查询的实现方法和实现装置
CN105740264A (zh) * 2014-12-10 2016-07-06 北大方正集团有限公司 一种分布式xml数据库的排序方法及装置
CN105868023A (zh) * 2016-03-24 2016-08-17 联想(北京)有限公司 一种分布式系统中的数据处理方法及计算节点

Also Published As

Publication number Publication date
CN106909624A (zh) 2017-06-30

Similar Documents

Publication Publication Date Title
CN106909624B (zh) 一种海量数据实时排序优化方法
CN103345514A (zh) 大数据环境下的流式数据处理方法
CN107391719A (zh) 一种云环境中分布式流数据处理方法及系统
CN107077513B (zh) 用于数据的高效重新分区的通信
CN106815260B (zh) 一种索引建立方法及设备
CN103678520A (zh) 一种基于云计算的多维区间查询方法及其系统
CN104778188A (zh) 一种分布式设备日志采集方法
WO2014145092A2 (en) Hierarchical, parallel models for extracting in real time high-value information from data streams and system and method for creation of same
CN103177035A (zh) 一种在数据库中查询数据的装置及方法
CN106873945A (zh) 基于批处理和流式处理的数据处理架构及数据处理方法
CN106570145B (zh) 一种基于分层映射的分布式数据库结果缓存方法
CN103886508A (zh) 海量农田数据的监控方法和系统
CN107193898A (zh) 基于分级复用的日志数据流的查询共享方法和系统
CN109726225A (zh) 一种基于Storm的分布式流数据存储与查询方法
CN109117426A (zh) 分布式数据库查询方法、装置、设备及存储介质
CN116628028A (zh) 仿真过程数据实时采集处理存储系统及方法
CN109165096A (zh) web集群的缓存利用系统及方法
CN103810223A (zh) 一种基于数据分组的内存数据组织查询方法
CN105550180B (zh) 数据处理的方法、装置及系统
US20150293971A1 (en) Distributed queries over geometric objects
Wang et al. Waterwheel: Realtime indexing and temporal range query processing over massive data streams
CN109657018B (zh) 一种分布式车辆行驶数据查询方法及终端设备
CN110941836A (zh) 一种分布式垂直爬虫方法及终端设备
Deng et al. Spatial-keyword skyline publish/subscribe query processing over distributed sliding window streaming data
CN113421131B (zh) 基于大数据内容智能营销系统

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