CN111767252A - 日志查询方法、装置、计算机设备和存储介质 - Google Patents
日志查询方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN111767252A CN111767252A CN202010613920.6A CN202010613920A CN111767252A CN 111767252 A CN111767252 A CN 111767252A CN 202010613920 A CN202010613920 A CN 202010613920A CN 111767252 A CN111767252 A CN 111767252A
- Authority
- CN
- China
- Prior art keywords
- query
- log
- determining
- complexity
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 40
- 238000004458 analytical method Methods 0.000 claims abstract description 18
- 238000004590 computer program Methods 0.000 claims description 25
- 239000012634 fragment Substances 0.000 claims description 15
- 238000004364 calculation method Methods 0.000 claims description 6
- 238000000354 decomposition reaction Methods 0.000 claims description 4
- 238000012545 processing Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 230000008569 process Effects 0.000 description 4
- 238000004422 calculation algorithm Methods 0.000 description 3
- 238000004817 gas chromatography Methods 0.000 description 3
- 238000011161 development Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000013467 fragmentation Methods 0.000 description 1
- 238000006062 fragmentation reaction Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
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/10—File systems; File servers
- G06F16/13—File access structures, e.g. distributed indices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/14—Details of searching files based on file metadata
- G06F16/148—File search 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/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/1734—Details of monitoring file system events, e.g. by the use of hooks, filter drivers, logs
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
技术领域
本申请涉及云技术领域,特别是涉及一种日志查询方法、装置、计算机设备和存储介质。
背景技术
随着互联网技术与业务的发展,应用系统和环境越来越复杂,在管理和维护大型复杂应用系统的过程中,日志的作用也越来越显著,通过日志可以快速地查找问题和故障,也可以通过日志对业务进行深度分析,因此,日志系统得到快速发展,出现了多款支持日志查询的商业软件和开源软件。
目前,大多数企业选择了开源方案,在日志的处理和存贮上使用开源索引引擎为底层方案,并在上层开发适合自身企业的业务分析系统。大型企业由于产品数量多业务量大,产生日志量也相应较大,且分析场景复杂,在查询分析中,特别是在超长时间范围的查询分析中,采用直接交由底层索引引擎进行查询,极易引起垃圾数据冗余,或者触发相关断路器限制,影响整个日志平台的日志查询效率。
发明内容
基于此,有必要针对上述技术问题,提供一种能够提高日志查询效率的日志查询方法、装置、计算机设备和存储介质。
一种日志查询方法,所述方法包括:
获取日志查询请求;
分析日志查询请求对应的查询时间规模、查询数据规模和查询复杂度,确定查询熵;
获取当前查询承载量、并根据当前查询承载量和查询熵,确定时间分片长度,其中,当前查询承载量基于剩余总内存分析得到;
分解日志查询请求携带的查询语句,得到目标查询语句;
根据时间分片长度,执行目标查询语句,得到日志查询结果。
在其中一个实施例中,分析日志查询请求对应的查询时间规模、查询数据规模和查询复杂度,确定查询熵包括:
提取日志查询请求携带的查询时间范围、查询分组数据以及查询语句;
根据查询时间范围确定查询时间规模、根据查询分组数据确定查询数据规模以及根据查询语句确定查询复杂度;
基于查询时间规模、查询数据规模和查询复杂度,计算查询熵。
在其中一个实施例中,查询分组数据包括待查询分组名称以及待查询分组数;根据查询分组数据确定查询数据规模包括:
根据待查询分组数,确定索引数量、并根据待查询分组名称,查找对应的索引大小;
根据索引数量以及索引大小,确定查询数据规模。
在其中一个实施例中,根据查询语句确定查询复杂度包括:
按照预设的查询命令复杂度确定规则,分析查询语句中的查询命令字段,得到查询命令复杂度;
分析查询语句中的目标字段数量,按照预设查询桶复杂度计算方式,确定查询桶复杂度;
根据查询命令复杂度和查询桶复杂度,确定查询复杂度。
在其中一个实施例中,获取当前查询承载量包括:
获取剩余总内存数据和查询并发数据;
根据剩余总内存数据和查询并发数据,结合预设承载参数,得到当前查询承载量。
在其中一个实施例中,根据当前查询承载量和查询熵,确定时间分片长度包括:
根据当前查询承载量和查询熵,得到查询分片数;
根据查询时间规模和查询分片数,确定时间分片长度。
在其中一个实施例中,根据时间分片长度,执行目标查询语句,得到日志查询结果之后,还包括:
按照预设的查询语句对应的汇总逻辑,汇总日志查询结果;
推送汇总后的日志查询结果。
一种日志查询装置,所述装置包括:
查询请求获取模块,用于获取日志查询请求;
查询熵确定模块,用于分析日志查询请求对应的查询时间规模、查询数据规模和查询复杂度,确定查询熵;
时间分片确定模块,用于获取当前查询承载量、并根据当前查询承载量和查询熵,确定时间分片长度,其中,当前查询承载量基于剩余总内存分析得到;
语句分解模块,用于分解日志查询请求携带的查询语句,得到目标查询语句;
日志分片查询模块,用于根据时间分片长度,执行目标查询语句,得到日志查询结果。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
获取日志查询请求;
分析日志查询请求对应的查询时间规模、查询数据规模和查询复杂度,确定查询熵;
获取当前查询承载量、并根据当前查询承载量和查询熵,确定时间分片长度,其中,当前查询承载量基于剩余总内存分析得到;
分解日志查询请求携带的查询语句,得到目标查询语句;
根据时间分片长度,执行目标查询语句,得到日志查询结果。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
获取日志查询请求;
分析日志查询请求对应的查询时间规模、查询数据规模和查询复杂度,确定查询熵;
获取当前查询承载量、并根据当前查询承载量和查询熵,确定时间分片长度,其中,当前查询承载量基于剩余总内存分析得到;
分解日志查询请求携带的查询语句,得到目标查询语句;
根据时间分片长度,执行目标查询语句,得到日志查询结果。
上述日志查询方法、装置、计算机设备和存储介质,分析日志查询需求涉及的查询时间规模、查询数据规模和查询复杂度,得到用户查询需求,再结合剩余内存即实际承载能力,根据查询熵算法进行时间分片,同时,将查询语句进行分解,根据时间分片长度执行查询语句,可将用户的每次查询分解成可承载的查询,极大程度的降低了单次查询的资源消耗,提升了日志查询效率。
附图说明
图1为一个实施例中日志查询方法的应用环境图;
图2为一个实施例中日志查询方法的流程示意图;
图3为另一个实施例中日志查询方法的流程示意图;
图4为一个实施例中查询复杂度确定步骤的流程示意图;
图5为一个实施例中日志查询装置的结构框图;
图6为另一个实施例中日志查询装置的结构框图;
图7为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供的日志查询方法,可以应用于如图1所示的应用环境中。其中,终端102通过网络与服务器104进行通信。具体可以是用户于终端102的日志系统的日志查询操作界面输入相应的日志查询字段,点击“查询”按钮,终端102生成日志查询请求,将日志查询请求发送至服务器104,服务器104获取该日志查询请求,获取日志查询请求,分析日志查询请求对应的查询时间规模、查询数据规模和查询复杂度,确定查询熵,获取当前查询承载量、并根据当前查询承载量和查询熵,确定时间分片长度,其中,当前查询承载量基于剩余总内存分析得到,分解日志查询请求携带的查询语句,得到目标查询语句,根据时间分片长度,执行目标查询语句,得到日志查询结果。其中,终端102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备,服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
在一个实施例中,如图2所示,提供了一种日志查询方法,以该方法应用于图1中的服务器104为例进行说明,包括以下步骤:
步骤202,获取日志查询请求。
在实际应用中,可以是用户在基于ES(ElasticSearch)集群索引开发业务系统中,进行日志查询操作。ES集群即一个基于Lucene构建的开源、分布式、RESTful接口的全文搜索引擎(以下简称ES集群)。具体的,可以是用户于终端登录上述业务系统,于系统的日志查询操作界面输入相应的日志查询字段,如查询的时间范围、查询的系统分组名称以及相应的查询(搜索)语句,点击“查询”按钮,生成相应的日志查询请求,并将日志查询请求发送至服务器。
步骤204,分析日志查询请求对应的查询时间规模、查询数据规模和查询复杂度,确定查询熵。
本实施例中,查询熵(SearchEntropy)即与当前的用户查询需求所对应的熵。查询时间规模即指查询时间范围的小时数,查询数据规模指查询涉及的索引总GB数量。如上述实施例所述,日志查询请求中携带相应的用户查询需求数据,可以根据日志查询请求中携带的需求数据,分析得到用户查询需求涉及的查询时间规模、查询数据规模和查询复杂度,进而根据查询时间规模、查询数据规模和查询复杂度,计算相应的查询熵。
步骤206,获取当前查询承载量、并根据当前查询承载量和查询熵,确定时间分片长度,其中,当前查询承载量基于剩余总内存分析得到。
本实施例中,当前查询承载量是指集群当前剩余的查询承载量。时间分片即时间片(Timeslice),其是分时操作系统分配给每个正在运行的进程微观上的一段CPU(CentralProcessing Unit,中央处理器)时间,简单来说,时间片即指CPU分配给各个线程的时间,其本质是将长任务分割成一个个时间很短的任务,再一个个执行。本实施例中,时间分片长度可以理解为拆分后的查询时间长度。本实施例中,集群可以是指Elastcisearch集群。具体实施时,时间分片长度可以是将用户查询时间范围为1小时的日志查询请求,分割成时间分片长度为10分钟的请求,即一次查询10分钟的日志数据。在确定时间分片长度时,本实施例中,考虑了ES集群的实际承载能力和平安的并发查询情况,获取ES集群的总剩余内存数量,然后,根据集群的剩余内存数量,结合查询并发数,确定当前查询承载量。根据当前查询承载量和查询熵,确定时间分片长度。
步骤208,分解日志查询请求携带的查询语句,得到目标查询语句。
在实际应用中,用户用于搜索的查询语句为SPL(Search processing Language,搜索处理语言),其中,用户提交的查询语句可称为一级查询语句,由于一级查询语句可能涉及较多处理,系统响应用户的请求的需要较长的时间,为了缩短用户等待查询结果的时间,可以将一级查询语句分解为易处理的二级语句,得到目标语句,然后执行二级查询语句,缩短查询时间。具体的,需要分解的一级查询语句包括但不限于类型是Stats/count、distinct_count、avg、sum、min、max,Eval/max、min、Tranpose、MovingAVG、Rollingstd以及Transaction等语句。例如,以统计平均相应时间为例,一级查询查询语句可以为:statsavg()by response,可将上述一级查询语句分解为二级查询语句:stats avg(),count()by response。其中,平均相应时间=(每个分片的平均相应时间X每个分片的总数)/所有分片的总数。
步骤210,根据时间分片长度,执行目标查询语句,得到日志查询结果。
如上述实施例所示,将一级查询语句分解为二级查询语句之后,可按照时间分片长度,依次执行二级查询语句。具体的,可以是将二级查询语句封装成ESAPI(ApplicationProgramming Interface,应用程序接口)提交给ES集群进行查询,或者是通过聚合函数进行查询,得到日志查询结果,进一步的,还可以实时保存日志查询结果。
上述日志查询方法中,分析日志查询需求涉及的查询时间规模、查询数据规模和查询复杂度,得到用户查询需求,再结合剩余内存即实际承载能力考虑,根据查询熵算法进行时间分片,同时,将查询语句进行分解,根据时间分片长度执行查询语句,可将用户的每次查询分解成可承载的查询,极大程度的降低了单次查询的资源消耗,提高了日志查询效率。且进一步的,因为单次查询资源消耗的降低,能够减少了集群出现Full GC以及触发断路器的次数,降低了整个集群可用性的风险,可解决长期以来困扰大规模日志平台稳定性的问题。
在其中一个实施例中,分析日志查询请求对应的查询时间规模、查询数据规模和查询复杂度,确定查询熵包括:
步骤224,提取日志查询请求携带的查询时间范围、查询分组数据以及查询语句;根据查询时间范围确定查询时间规模、根据查询分组数据确定查询数据规模以及根据查询语句确定查询复杂度;基于查询时间规模、查询数据规模和查询复杂度,计算查询熵。
具体实施时,用户提交的日志查询请求携带用户日志查询需求,具体包括查询时间范围、查询分组数据以及查询语句,可以是根据提取的查询时间范围确定查询时间规模、根据查询分组数据确定查询数据规模以及根据查询语句确定查询复杂度,进而计算相应的查询熵。
具体的,日志查询请求涉及的查询时间范围通常包括查询近期某一天(即24小时)的日志数据、或是具体某几小时的时间段的数据,又或者是覆盖较长时间范围的日志数据,可以是将用户查询的时间范围都统一以小时为单位核算,得到相应的查询时间规模(Hour)=查询时间范围的小时数。在另一个实施例中,查询分组数据包括待查询分组名称以及待查询分组数;根据查询分组数据确定查询数据规模包括:根据待查询分组数,确定索引数量,根据待查询分组名称,查找对应的索引大小,根据索引数量以及索引大小,确定查询数据规模。具体的,查询分组数据包括查询具体的某个系统名称以及查询的系统数量,且单个系统都对应预设有相应的索引大小,可以根据用户查询的系统数量,确定相应的索引数量,如用户想要查询2个系统的日志数据,则索引数量为2,基于此,可确定查询数据规模(Size,查询涉及的索引总GB数量)=索引数量*索引大小。查询复杂度的确定可以是查询复杂度(O)=查询命令复杂度*查询桶复杂度。得到查询时间规模(Hour)、查询数据规模(Size)以及查询复杂度(O)后,对应用户本次日志查询请求的查询熵的计算可以是:查询熵(SearchEntropy)=时间规模(Hour)*数据规模(Size)*查询复杂度(O)。本实施例中,通过查询熵算法能够便于将用户日志查询请求的分解成相应的时间分片。
如图4所示,在其中一个实施例中,根据查询语句确定查询复杂度包括:
步骤240,按照预设的查询命令复杂度确定规则,分析查询语句中的查询命令字段,得到查询命令复杂度;
步骤241,分析查询语句中的目标字段数量,按照预设查询桶复杂度计算方式,确定查询桶复杂度;
步骤242,根据查询命令复杂度和查询桶复杂度,确定查询复杂度。
在实际应用中,开发人员可根据项目试验情况和个人经验,预设查询命令复杂度确定规则,为不同类型的查询命令添加相应的查询命令复杂度,查询命令复杂度可以包括1、5和10。例如,查询命令复杂度为1的命令包括但不限于:Stats/count、distinct_count、avg、sum、min、max、Eval/abs、case、ceil、floor、len、if、low、substring、max、tolong、trim、upper、isnum、issrt、now、Fields、Rename、Limit、Top、Save;查询命令复杂度为5的命令包括但不限于Tranpose、MovingAVG、Rollingstd、Transaction;查询命令复杂度为10的命名包括但不限于parse。具体实施时,可以是按照预设的查询命令复杂度确定规则,分析查询语句中的查询命令字段,如分析查询语句中是否包括如distinct_count、avg等查询命令字段,若存在相关查询命令字段,则对应为其添加相应的查询复杂度,然后,统计所有查询语句添加的查询命令复杂度,得到最终的查询命令复杂度。本实施例中,查询桶复杂度的确定可以是查询桶复杂度=10^桶数量,其中,桶(Bucket)数量的确定可以是分析查询语句中by身后紧跟的字段数量,得到目标字段数量,例如stats count()by user,url,by身后紧跟user和url两个字段,则确定相应的桶数量为2。按照上述方式得到查询命令方式和查询桶数量后,可通过查询复杂度(O)=查询命令复杂度*查询桶复杂度,计算得到查询复杂度。本实施例中,自行定义了查询语句的查询复杂度的概念,有利于对日志查询请求进行分片处理。
在其中一个实施例中,获取当前查询承载量包括:获取剩余总内存数据和查询并发数据;根据剩余总内存数据和查询并发数据,结合预设承载参数,得到当前查询承载量。
具体实施时,开发人员需要事先预设好当前查询承载量,在预设当前查询承载量时,不仅考虑了集群的实际承载能力还考虑了系统平台的并发查询情况。实际应用中,当前查询承载量承载参数按照每1GB内存承载1000查询熵计算,且根据开发人员多次试验结果和工作经验,预估查询并发数为10。可以理解的是,查询并发数可根据不同的实际情况设定为不同的数值,在此不做限定。本实施例中,获取集群剩余总内存数量和查询并发数,结合当前查询承载量承载参数,可得到当前查询承载量=集群总剩余内存数量*1000/10。本实施例中,当前查询承载量的获取,考虑了集群内存实际承载能力和平台查询并发数,能够有效避免集群实际承载能力不佳且同时又产生大量查询并发情况,减少集群出现Full GC以及触发断路器的次数。
如图3所示,在其中一个实施例中,根据当前查询承载量和查询熵,确定时间分片长度包括:步骤226,根据当前查询承载量和查询熵,得到查询分片数;根据查询时间规模和查询分片数,确定时间分片长度。
具体实施时,在获取集群的单位当前查询承载量后,可结合计算出的查询熵,拆分用户的查询长度,确定查询分片数和时间分片长度。具体的,查询分片数为:查询分片数=查询熵/当前查询承载量。在得到查询分片数之后,时间分片长度的确定可以是:时间分片长度=查询时间规模/查询分片数。本实施例中,结合查询熵和当前查询承载量,确定时间分片,能够有效将查询分解成集群可承载的查询,提高单次查询的成功率。
如图3所示,在其中一个实施例中,根据时间分片长度,执行目标查询语句,得到日志查询结果之后,还包括:步骤212,按照预设的查询语句对应的汇总逻辑,汇总日志查询结果,推送汇总后的日志查询结果。
在实际应用中,得到日志查询结果之后,为了提高日志查询结果的可视性,可按照预设的数据计算逻辑即查询语句对应的汇总逻辑,预设的查询语句对应的汇总逻辑包括标准的Elasticsearch的查询统计语法。如若查询语句为平均数相关的查询,则按照平均数处理逻辑,统计汇总日志查询结果,并进一步推送汇总后的日志查询结果。具体的,推送汇总后的日志查询结果可以是若用户的查询时间规模为24小时,则可以倒序的方式动态展示查询结果,从最近的一小时的查询结果开始进行展示,再展示最近的第二个小时范围内的日志查询结果,以此类推,将24小时范围的查询结果分24批次进行展示,避免用户等待时间过长,且能够降低单次查询的资源消耗。
应该理解的是,虽然图2-4的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2-4中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
在其中一个实施例中,如图5所示,提供了一种日志查询装置,包括:查询请求获取模块510、查询熵确定模块520、时间分片确定模块530、语句分解模块540和日志分片查询模块550,其中:
查询请求获取模块510,用于获取日志查询请求;
查询熵确定模块520,用于分析日志查询请求对应的查询时间规模、查询数据规模和查询复杂度,确定查询熵;
时间分片确定模块530,用于获取当前查询承载量、并根据当前查询承载量和查询熵,确定时间分片长度,其中,当前查询承载量基于剩余总内存分析得到;
语句分解模块540,用于分解日志查询请求携带的查询语句,得到目标查询语句;
日志分片查询模块550,用于根据时间分片长度,执行目标查询语句,得到日志查询结果。
在其中一个实施例中,查询熵确定模块520还用于提取日志查询请求携带的查询时间范围、查询分组数据以及查询语句,根据查询时间范围确定查询时间规模、根据查询分组数据确定查询数据规模以及根据查询语句确定查询复杂度,基于查询时间规模、查询数据规模和查询复杂度,计算查询熵。
在其中一个实施例中,查询熵确定模块520包括查询数据规模确定单元,用于还用于根据待查询分组数,确定索引数量,根据待查询分组名称,查找对应的索引大小,根据索引数量以及索引大小,确定查询数据规模。
在其中一个实施例中,查询熵确定模块520还包括查询复杂度确定单元,用于按照预设的查询命令复杂度确定规则,分析查询语句中的查询命令字段,得到查询命令复杂度,分析查询语句中的目标字段数量,按照预设查询桶复杂度计算方式,确定查询桶复杂度,根据查询命令复杂度和查询桶复杂度,确定查询复杂度。
如图6所示,在其中一个实施例中,装置还包括当前查询承载量确定模块560,用于获取剩余总内存数据和查询并发数据,根据剩余总内存数据和查询并发数据,结合预设承载参数,得到当前查询承载量。
在其中一个实施例中,时间分片长度确定模块530还用于根据当前查询承载量和查询熵,得到查询分片数,根据查询时间规模和查询分片数,确定时间分片长度。
如图6所示,在其中一个实施例中,装置还包括查询结果处理模块570,用于按照预设的查询语句对应的汇总逻辑,汇总日志查询结果,推送汇总后的日志查询结果。
关于日志查询装置的具体限定可以参见上文中对于日志查询方法的限定,在此不再赘述。上述日志查询装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图7所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储日志数据、当前查询承载量等数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种日志查询方法。
本领域技术人员可以理解,图7中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在其中一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:获取日志查询请求,分析日志查询请求对应的查询时间规模、查询数据规模和查询复杂度,确定查询熵,获取当前查询承载量、并根据当前查询承载量和查询熵,确定时间分片长度,其中,当前查询承载量基于剩余总内存分析得到,分解日志查询请求携带的查询语句,得到目标查询语句,根据时间分片长度,执行目标查询语句,得到日志查询结果。
在其中一个实施例中,处理器执行计算机程序时还实现以下步骤:提取日志查询请求携带的查询时间范围、查询分组数据以及查询语句;根据查询时间范围确定查询时间规模、根据查询分组数据确定查询数据规模以及根据查询语句确定查询复杂度;基于查询时间规模、查询数据规模和查询复杂度,计算查询熵。
在其中一个实施例中,查询分组数据包括待查询分组名称以及待查询分组数,处理器执行计算机程序时还实现以下步骤:根据待查询分组数,确定索引数量;根据待查询分组名称,查找对应的索引大小;根据索引数量以及索引大小,确定查询数据规模。
在其中一个实施例中,处理器执行计算机程序时还实现以下步骤:按照预设的查询命令复杂度确定规则,分析查询语句中的查询命令字段,得到查询命令复杂度;分析查询语句中的目标字段数量,按照预设查询桶复杂度计算方式,确定查询桶复杂度;根据查询命令复杂度和查询桶复杂度,确定查询复杂度。
在其中一个实施例中,处理器执行计算机程序时还实现以下步骤:获取剩余总内存数据和查询并发数据;根据剩余总内存数据和查询并发数据,结合预设承载参数,得到当前查询承载量。
在其中一个实施例中,处理器执行计算机程序时还实现以下步骤:根据当前查询承载量和查询熵,得到查询分片数;根据查询时间规模和查询分片数,确定时间分片长度。
在其中一个实施例中,处理器执行计算机程序时还实现以下步骤:按照预设的查询语句对应的汇总逻辑,汇总日志查询结果;推送汇总后的日志查询结果。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:获取日志查询请求,分析日志查询请求对应的查询时间规模、查询数据规模和查询复杂度,确定查询熵,获取当前查询承载量、并根据当前查询承载量和查询熵,确定时间分片长度,其中,当前查询承载量基于剩余总内存分析得到,分解日志查询请求携带的查询语句,得到目标查询语句,根据时间分片长度,执行目标查询语句,得到日志查询结果。
在其中一个实施例中,计算机程序被处理器执行时还实现以下步骤:提取日志查询请求携带的查询时间范围、查询分组数据以及查询语句;根据查询时间范围确定查询时间规模、根据查询分组数据确定查询数据规模以及根据查询语句确定查询复杂度;基于查询时间规模、查询数据规模和查询复杂度,计算查询熵。
在其中一个实施例中,查询分组数据包括待查询分组名称以及待查询分组数,计算机程序被处理器执行时还实现以下步骤:根据待查询分组数,确定索引数量;根据待查询分组名称,查找对应的索引大小;根据索引数量以及索引大小,确定查询数据规模。
在其中一个实施例中,计算机程序被处理器执行时还实现以下步骤:按照预设的查询命令复杂度确定规则,分析查询语句中的查询命令字段,得到查询命令复杂度;分析查询语句中的目标字段数量,按照预设查询桶复杂度计算方式,确定查询桶复杂度;根据查询命令复杂度和查询桶复杂度,确定查询复杂度。
在其中一个实施例中,计算机程序被处理器执行时还实现以下步骤:获取剩余总内存数据和查询并发数据;根据剩余总内存数据和查询并发数据,结合预设承载参数,得到当前查询承载量。
在其中一个实施例中,计算机程序被处理器执行时还实现以下步骤:根据当前查询承载量和查询熵,得到查询分片数;根据查询时间规模和查询分片数,确定时间分片长度。
在其中一个实施例中,计算机程序被处理器执行时还实现以下步骤:按照预设的查询语句对应的汇总逻辑,汇总日志查询结果;推送汇总后的日志查询结果。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-Only Memory,ROM)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic Random Access Memory,DRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种日志查询方法,其特征在于,所述方法包括:
获取日志查询请求;
分析所述日志查询请求对应的查询时间规模、查询数据规模和查询复杂度,确定查询熵;
获取当前查询承载量、并根据所述当前查询承载量和所述查询熵,确定时间分片长度,其中,所述当前查询承载量基于剩余总内存分析得到;
分解所述日志查询请求携带的查询语句,得到目标查询语句;
根据所述时间分片长度,执行所述目标查询语句,得到日志查询结果。
2.根据权利要求1所述的方法,其特征在于,所述分析所述日志查询请求对应的查询时间规模、查询数据规模和查询复杂度,确定查询熵包括:
提取所述日志查询请求携带的查询时间范围、查询分组数据以及查询语句;
根据所述查询时间范围确定查询时间规模、根据所述查询分组数据确定查询数据规模以及根据所述查询语句确定查询复杂度;
基于所述查询时间规模、所述查询数据规模和所述查询复杂度,计算查询熵。
3.根据权利要求2所述的方法,其特征在于,所述查询分组数据包括待查询分组名称以及待查询分组数;根据所述查询分组数据确定查询数据规模包括:
根据所述待查询分组数,确定索引数量、并根据所述待查询分组名称,查找对应的索引大小;
根据所述索引数量以及所述索引大小,确定查询数据规模。
4.根据权利要求2所述的方法,其特征在于,根据所述查询语句确定查询复杂度包括:
按照预设的查询命令复杂度确定规则,分析所述查询语句中的查询命令字段,得到查询命令复杂度;
分析所述查询语句中的目标字段数量,按照预设查询桶复杂度计算方式,确定查询桶复杂度;
根据所述查询命令复杂度和所述查询桶复杂度,确定查询复杂度。
5.根据权利要求1至4任意一项所述的方法,其特征在于,所述获取当前查询承载量包括:
获取剩余总内存数据和查询并发数据;
根据所述剩余总内存数据、所述查询并发数据以及预设承载参数,得到当前查询承载量。
6.根据权利要求1至4任意一项所述的方法,其特征在于,根据所述当前查询承载量和所述查询熵,确定时间分片长度包括:
根据所述当前查询承载量和所述查询熵,得到查询分片数;
根据所述查询时间规模和所述查询分片数,确定时间分片长度。
7.根据权利要求1至4任意一项所述的方法,其特征在于,所述根据所述时间分片长度,执行所述目标查询语句,得到日志查询结果之后,还包括:
按照预设的查询语句对应的汇总逻辑,汇总所述日志查询结果;
推送汇总后的所述日志查询结果。
8.一种日志查询装置,其特征在于,所述装置包括:
查询请求获取模块,用于获取日志查询请求;
查询熵确定模块,用于分析所述日志查询请求对应的查询时间规模、查询数据规模和查询复杂度,确定查询熵;
时间分片确定模块,用于获取当前查询承载量、并根据所述当前查询承载量和所述查询熵,确定时间分片长度,其中,所述当前查询承载量基于剩余总内存分析得到;
语句分解模块,用于分解所述日志查询请求携带的查询语句,得到目标查询语句;
日志分片查询模块,用于根据所述时间分片长度,执行所述目标查询语句,得到日志查询结果。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述的方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010613920.6A CN111767252A (zh) | 2020-06-30 | 2020-06-30 | 日志查询方法、装置、计算机设备和存储介质 |
PCT/CN2020/117888 WO2021143199A1 (zh) | 2020-06-30 | 2020-09-25 | 日志查询方法、装置、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010613920.6A CN111767252A (zh) | 2020-06-30 | 2020-06-30 | 日志查询方法、装置、计算机设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111767252A true CN111767252A (zh) | 2020-10-13 |
Family
ID=72723420
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010613920.6A Pending CN111767252A (zh) | 2020-06-30 | 2020-06-30 | 日志查询方法、装置、计算机设备和存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN111767252A (zh) |
WO (1) | WO2021143199A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115935090A (zh) * | 2023-03-10 | 2023-04-07 | 北京锐服信科技有限公司 | 一种基于时间分片的数据查询方法及系统 |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1205852A2 (en) * | 2000-10-25 | 2002-05-15 | International Business Machines Corporation | Including grammars within a statistical parser |
US20030140018A1 (en) * | 2002-01-22 | 2003-07-24 | International Business Machines Corporation | Method of tuning a decision network and a decision tree model |
JP2013054606A (ja) * | 2011-09-05 | 2013-03-21 | Nippon Telegr & Teleph Corp <Ntt> | 文書検索装置及び方法及びプログラム |
CN103905456A (zh) * | 2014-04-08 | 2014-07-02 | 上海交通大学 | 基于熵模型的dns反解攻击的检测系统和方法 |
CN104050297A (zh) * | 2014-07-03 | 2014-09-17 | 中国工商银行股份有限公司 | 一种查询事务分配方法及装置 |
US20140279995A1 (en) * | 2013-03-14 | 2014-09-18 | Microsoft Corporation | Query simplification |
US20170169056A1 (en) * | 2015-12-15 | 2017-06-15 | Picscout (Israel) Ltd. | Logo detection system for automatic image search engines |
US9892125B1 (en) * | 2014-05-23 | 2018-02-13 | MapD Technologies, Inc. | Method for logging update queries |
CN109033123A (zh) * | 2018-05-31 | 2018-12-18 | 康键信息技术(深圳)有限公司 | 基于大数据的查询方法、装置、计算机设备和存储介质 |
US20190079943A1 (en) * | 2017-09-11 | 2019-03-14 | Blackfynn Inc. | Real time and retrospective query integration |
CN110321214A (zh) * | 2018-03-29 | 2019-10-11 | 阿里巴巴集团控股有限公司 | 一种数据查询方法、装置及设备 |
CN110427390A (zh) * | 2019-08-01 | 2019-11-08 | 北京明略软件系统有限公司 | 数据查询方法及装置、存储介质、电子装置 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8386508B2 (en) * | 2008-04-28 | 2013-02-26 | Infosys Technologies Limited | System and method for parallel query evaluation |
CN102521405B (zh) * | 2011-12-26 | 2014-06-25 | 中国科学院计算技术研究所 | 支持高速加载的海量结构化数据存储、查询方法和系统 |
CN108021618B (zh) * | 2017-11-13 | 2020-10-16 | 北京天元创新科技有限公司 | 一种数据查询方法及系统 |
-
2020
- 2020-06-30 CN CN202010613920.6A patent/CN111767252A/zh active Pending
- 2020-09-25 WO PCT/CN2020/117888 patent/WO2021143199A1/zh active Application Filing
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1205852A2 (en) * | 2000-10-25 | 2002-05-15 | International Business Machines Corporation | Including grammars within a statistical parser |
US20030140018A1 (en) * | 2002-01-22 | 2003-07-24 | International Business Machines Corporation | Method of tuning a decision network and a decision tree model |
JP2013054606A (ja) * | 2011-09-05 | 2013-03-21 | Nippon Telegr & Teleph Corp <Ntt> | 文書検索装置及び方法及びプログラム |
US20140279995A1 (en) * | 2013-03-14 | 2014-09-18 | Microsoft Corporation | Query simplification |
CN103905456A (zh) * | 2014-04-08 | 2014-07-02 | 上海交通大学 | 基于熵模型的dns反解攻击的检测系统和方法 |
US9892125B1 (en) * | 2014-05-23 | 2018-02-13 | MapD Technologies, Inc. | Method for logging update queries |
CN104050297A (zh) * | 2014-07-03 | 2014-09-17 | 中国工商银行股份有限公司 | 一种查询事务分配方法及装置 |
US20170169056A1 (en) * | 2015-12-15 | 2017-06-15 | Picscout (Israel) Ltd. | Logo detection system for automatic image search engines |
US20190079943A1 (en) * | 2017-09-11 | 2019-03-14 | Blackfynn Inc. | Real time and retrospective query integration |
CN110321214A (zh) * | 2018-03-29 | 2019-10-11 | 阿里巴巴集团控股有限公司 | 一种数据查询方法、装置及设备 |
CN109033123A (zh) * | 2018-05-31 | 2018-12-18 | 康键信息技术(深圳)有限公司 | 基于大数据的查询方法、装置、计算机设备和存储介质 |
CN110427390A (zh) * | 2019-08-01 | 2019-11-08 | 北京明略软件系统有限公司 | 数据查询方法及装置、存储介质、电子装置 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115935090A (zh) * | 2023-03-10 | 2023-04-07 | 北京锐服信科技有限公司 | 一种基于时间分片的数据查询方法及系统 |
CN115935090B (zh) * | 2023-03-10 | 2023-06-16 | 北京锐服信科技有限公司 | 一种基于时间分片的数据查询方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
WO2021143199A1 (zh) | 2021-07-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10877987B2 (en) | Correlating log data with performance measurements using a threshold value | |
US11782989B1 (en) | Correlating data based on user-specified search criteria | |
US10614132B2 (en) | GUI-triggered processing of performance data and log data from an information technology environment | |
NL2011613B1 (en) | System and method for batch evaluation programs. | |
US10019496B2 (en) | Processing of performance data and log data from an information technology environment by using diverse data stores | |
US11119982B2 (en) | Correlation of performance data and structure data from an information technology environment | |
US10225136B2 (en) | Processing of log data and performance data obtained via an application programming interface (API) | |
US10997191B2 (en) | Query-triggered processing of performance data and log data from an information technology environment | |
US9471370B2 (en) | System and method for stack-based batch evaluation of program instructions | |
US20140324862A1 (en) | Correlation for user-selected time ranges of values for performance metrics of components in an information-technology environment with log data from that information-technology environment | |
US11366809B2 (en) | Dynamic creation and configuration of partitioned index through analytics based on existing data population | |
US9965327B2 (en) | Dynamically scalable data collection and analysis for target device | |
US10191947B2 (en) | Partitioning advisor for online transaction processing workloads | |
Ahmadvand et al. | Big data processing at the edge with data skew aware resource allocation | |
CN111767252A (zh) | 日志查询方法、装置、计算机设备和存储介质 | |
US20150120921A1 (en) | Techniques for workload toxic mapping | |
CN116185578A (zh) | 计算任务的调度方法和计算任务的执行方法 | |
US11025658B2 (en) | Generating summaries of messages associated with assets in an enterprise system | |
US11244007B2 (en) | Automatic adaption of a search configuration | |
CN115599806A (zh) | 一种即席查询方法、装置、电子设备及存储介质 | |
NZ616299B (en) | System and method for batch evaluation programs | |
NZ616212B (en) | System and method for batch evaluation programs |
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 |