CN107220287A - 用于日志查询的索引管理方法、装置、存储介质及设备 - Google Patents
用于日志查询的索引管理方法、装置、存储介质及设备 Download PDFInfo
- Publication number
- CN107220287A CN107220287A CN201710272219.0A CN201710272219A CN107220287A CN 107220287 A CN107220287 A CN 107220287A CN 201710272219 A CN201710272219 A CN 201710272219A CN 107220287 A CN107220287 A CN 107220287A
- Authority
- CN
- China
- Prior art keywords
- index
- target
- temperature
- ranking
- cache
- 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
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
- G06F16/2455—Query execution
- G06F16/24552—Database cache management
-
- 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/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2272—Management thereof
-
- 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/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2462—Approximate or statistical queries
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Software Systems (AREA)
- Probability & Statistics with Applications (AREA)
- Fuzzy Systems (AREA)
- Mathematical Physics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本公开涉及一种用于日志查询的索引管理方法、装置、存储介质及设备,该方法包括:通过分析当前查询中涉及的查询模式,确定与查询模式对应的目标索引,随后将目标索引的索引热度增加一个单位热度,得到目标索引的更新后的索引热度;再根据更新后的索引热度获取目标索引的当前热度排名;在当前热度排名确定目标索引满足预设条件时,将目标索引写入高速缓存。能够根据索引的搜索热度对高速缓存中的索引进行动态更新,从而搜索热度较高的索引能够较长时间的存储在高速缓存中,从而在保证搜索热度较高的索引能够被快速查询的同时,也保证了该索引不会再被频繁的交换于高速缓存和低速缓存之间,避免了容易导致***性能严重下降的问题。
Description
技术领域
本公开涉及互联网技术领域,尤其涉及一种用于日志查询的索引管理方法、装置、存储介质及设备。
背景技术
目前,日志文件的存储通常是采用分布式存储,并进行集中管理的,但是由于日志文件中的每条日志中都包含着大量的信息,其中大部分的信息都并非是具有价值的信息,因此将日志文件进行集中管理会占用大量的存储空间,造成存储资源的浪费,并且直接对大量分布式日志的内容进行搜索会造成***的性能低下,甚至是无法实现。现有技术中对日志文件进行的集中管理通常包括数据预处理、建立索引的操作,目前对于高速缓存中的索引的管理方式通常是基于命中原则,该管理方式缺乏灵活性,容易造成索引在高速缓存和低速缓存之间频繁的交换,当数据量较大时会导致***性能严重下降。
发明内容
本公开提供一种用于日志查询的索引管理方法、装置、存储介质及设备,用于解决日志索引的管理性缺乏灵活性,易导致***性能下降的问题。
第一方面,提供一种用于日志查询的索引管理方法,所述方法包括:
通过分析当前查询中涉及的查询模式,确定与所述查询模式对应的目标索引;
将所述目标索引的索引热度增加一个单位热度,得到所述目标索引的更新后的索引热度;
根据所述更新后的索引热度获取所述目标索引的当前热度排名;
当根据所述当前热度排名确定所述目标索引满足预设条件时,将所述目标索引写入高速缓存。
可选的,所述通过分析当前查询中涉及的查询模式,确定与所述查询模式对应的目标索引,包括:
通过分析当前查询中涉及的查询模式,获取所述查询模式所要查询的目标字段;
根据所述目标字段确定与所述查询模式对应的目标索引。
可选的,所述根据所述目标字段确定与所述查询模式对应的目标索引,包括:
根据所述目标字段确定是否存在包含所述目标字段的索引;
当存在包含所述目标字段的一个或多个索引时,将所述一个或多个索引确定为所述目标索引;
当不存在包含所述目标字段的一个或多个索引时,通过根据所述目标字段遍历日志文件来创建包含所述目标字段的一个或多个索引作为所述目标索引。
可选的,所述根据所述更新后的索引热度获取所述目标索引的当前热度排名,包括:
根据所述更新后的索引热度,将所有索引按照索引热度由高到低的顺序进行排名,得到所述目标索引的当前热度排名;
其中,当存在多个索引热度相同的索引时,将所述多个索引热度相同的索引按照索引热度的更新时间由后向前的顺序进行排名。
可选的,所述当根据所述当前热度排名确定所述目标索引满足预设条件时,将所述目标索引写入高速缓存,包括:
确定所述目标索引是否位于高速缓存中;
当所述目标索引没有位于所述高速缓存中时,确定所述当前热度排名是否大于或等于预设排名;
当所述当前热度排名大于或等于所述预设排名时,确定所述目标索引满足所述预设条件,并将所述目标索引写入高速缓存;
当所述当前热度排名小于所述预设排名时,确定所述目标索引不满足所述预设条件,拒绝将所述目标索引写入高速缓存。
可选的,所述当所述当前热度排名大于或等于所述预设排名时,确定所述目标索引满足所述预设条件,并将所述目标索引写入高速缓存,包括:
当所述当前热度排名大于或等于所述预设排名时,确定所述高速缓存中的用于存储索引的缓存容量是否足够;
当确定所述缓存容量足够时,将所述目标索引写入高速缓存;
当确定所述缓存容量不足时,将所述高速缓存中存储的所有索引中热度排名为最后一位的索引从所述高速缓存中删除;
在将所述热度排名为最后一位的索引从所述高速缓存中删除后,再次执行所述确定所述高速缓存中的用于存储索引的缓存容量是否足够的步骤,直至确定所述缓存容量足够时将所述目标索引写入高速缓存;
其中,当所述目标索引为所述热度排名为最后一位的索引时,拒绝将所述目标索引写入高速缓存。
可选的,所述将所述目标索引写入高速缓存,包括:
当所述目标索引是首次创建的索引时,在所述高速缓存建立所述目标索引;
当所述目标索引存在于低速缓存时,从所述低速缓存中读取所述目标索引后,将所述目标索引写入高速缓存。
可选的,所述方法还包括:
当根据所述当前热度排名确定所述目标索引不满足预设条件时,将所述目标索引保留在低速缓存。
可选的,所述方法还包括:
当所述目标索引位于所述高速缓存时,从所述高速缓存中利用所述目标索引获取所述查询模式所要查询的内容;
当所述目标索引位于所述低速缓存时,从所述低速缓存中利用所述目标索引获取所述查询模式所要查询的内容。
第二方面,提供一种用于日志查询的索引管理装置,所述装置包括:
索引确定模块,用于通过分析当前查询中涉及的查询模式,确定与所述查询模式对应的目标索引;
索引热度更新模块,用于将所述目标索引的索引热度增加一个单位热度,得到所述目标索引的更新后的索引热度;
热度排名获取模块,用于根据所述更新后的索引热度获取所述目标索引的当前热度排名;
索引管理模块,用于当根据所述当前热度排名确定所述目标索引满足预设条件时,将所述目标索引写入高速缓存。
可选的,所述索引确定模块,包括:
字段获取子模块,用于通过分析当前查询中涉及的查询模式,获取所述查询模式所要查询的目标字段;
索引确定子模块,用于根据所述目标字段确定与所述查询模式对应的目标索引。
可选的,所述索引确定子模块,包括:
字段识别子模块,用于根据所述目标字段确定是否存在包含所述目标字段的索引;
索引创建子模块,用于当存在包含所述目标字段的一个或多个索引时,将所述一个或多个索引确定为所述目标索引;
所述索引创建子模块,还用于当不存在包含所述目标字段的一个或多个索引时,通过根据所述目标字段遍历日志文件来创建包含所述目标字段的一个或多个索引作为所述目标索引。
可选的,所述热度排名获取模块,用于:
根据所述更新后的索引热度,将所有索引按照索引热度由高到低的顺序进行排名,得到所述目标索引的当前热度排名;
其中,当存在多个索引热度相同的索引时,将所述多个索引热度相同的索引按照索引热度的更新时间由后向前的顺序进行排名。
可选的,所述索引管理模块,包括:
索引位置确定子模块,用于确定所述目标索引是否位于高速缓存中;
热度排名确定子模块,用于当所述目标索引没有位于所述高速缓存中时,确定所述当前热度排名是否大于或等于预设排名;
缓存管理子模块,用于当所述当前热度排名大于或等于所述预设排名时,确定所述目标索引满足所述预设条件,并将所述目标索引写入高速缓存;
所述缓存管理子模块,还用于当所述当前热度排名小于所述预设排名时,确定所述目标索引不满足所述预设条件,拒绝将所述目标索引写入高速缓存。
可选的,所述缓存管理子模块,包括:
缓存容量确定子模块,用于当所述当前热度排名大于或等于所述预设排名时,确定所述高速缓存中的用于存储索引的缓存容量是否足够;
写入管理子模块,用于当确定所述缓存容量足够时,将所述目标索引写入高速缓存;
索引删除子模块,用于当确定所述缓存容量不足时,将所述高速缓存中存储的所有索引中热度排名为最后一位的索引从所述高速缓存中删除;
所述缓存容量确定子模块,还用于在将所述热度排名为最后一位的索引从所述高速缓存中删除后,再次执行所述确定所述高速缓存中的用于存储索引的缓存容量是否足够的步骤,直至确定所述缓存容量足够时将所述目标索引写入高速缓存;
所述写入管理子模块,还用于当所述目标索引为所述热度排名为最后一位的索引时,拒绝将所述目标索引写入高速缓存。
可选的,所述索引管理模块,用于:
当所述目标索引是首次创建的索引时,在所述高速缓存建立所述目标索引;
当所述目标索引存在于低速缓存时,从所述低速缓存中读取所述目标索引后,将所述目标索引写入高速缓存。
可选的,所述索引管理模块还用于:
当根据所述当前热度排名确定所述目标索引不满足预设条件时,将所述目标索引保留在低速缓存。
可选的,所述装置还包括:查询模块,用于:
当所述目标索引位于所述高速缓存时,从所述高速缓存中利用所述目标索引获取所述查询模式所要查询的内容;
当所述目标索引位于所述低速缓存时,从所述低速缓存中利用所述目标索引获取所述查询模式所要查询的内容。
第三方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现第一方面所述方法的步骤。
第四方面,提供一种电子设备,包括:
第三方面中所述的计算机可读存储介质;以及一个或者多个处理器,用于执行所述计算机可读存储介质中的计算机程序。
本公开提供的用于日志查询的索引管理方法、装置、存储介质及设备,通过分析当前查询中涉及的查询模式,确定与所述查询模式对应的目标索引;将所述目标索引的索引热度增加一个单位热度,得到所述目标索引的更新后的索引热度;根据所述更新后的索引热度获取所述目标索引的当前热度排名;当根据所述当前热度排名确定所述目标索引满足预设条件时,将所述目标索引写入高速缓存。能够通过对索引的搜索热度进行排名来判断是否将目标索引写入高速缓存中,从而能够根据索引的搜索热度对高速缓存中的索引进行动态更新,从而搜索热度较高的索引能够较长时间的存储在高速缓存中,从而在保证搜索热度较高的索引能够被快速查询的同时,也保证了该索引不会再被频繁的交换于高速缓存和低速缓存之间,避免了容易导致***性能严重下降的问题。
本公开的其他特征和优点将在随后的具体实施方式部分予以详细说明。
附图说明
附图是用来提供对本公开的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本公开,但并不构成对本公开的限制。在附图中:
图1是根据一示例性实施例示出的一种用于日志查询的索引管理方法的流程图;
图2是根据一示例性实施例示出的另一种用于日志查询的索引管理方法的流程图;
图3是根据一示例性实施例示出的又一种用于日志查询的索引管理方法的流程图;
图4是根据一示例性实施例示出的又一种用于日志查询的索引管理方法的流程图;
图5是根据一示例性实施例示出的又一种用于日志查询的索引管理方法的流程图;
图6是根据一示例性实施例示出的一种用于日志查询的索引管理装置的框图;
图7是根据一示例性实施例示出的一种索引确定模块的框图;
图8是根据一示例性实施例示出的一种索引确定子模块的框图;
图9是根据一示例性实施例示出的一种索引管理模块的框图;
图10是根据一示例性实施例示出的一种缓存管理子模块的框图;
图11是根据一示例性实施例示出的另一种用于日查询的索引管理装置的框图;
图12是根据一示例性实施例示出的一种电子设备的框图;
图13是根据一示例性实施例示出的另一种电子设备的框图。
具体实施方式
以下结合附图对本公开的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本公开,并不用于限制本公开。
图1是根据一示例性实施例示出的一种用于日志查询的索引管理方法的流程图,如图1所示,该方法包括以下步骤:
步骤110,通过分析当前查询中涉及的查询模式,确定与查询模式对应的目标索引。
日志是***运行时生成的具有一定规律的文件,通常计算机、网络设备、***及服务程序等,在运行时都会产生的历史事件记录,每一行日志都记载着日期、时间、使用者及动作等相关操作的描述。在计算机***生成了日志后,可以通过查询的方式对已生成的日志文件(日志文件中可以包含多条日志)的内容进行调取,以便对计算机***中特定的某个日志文件中的某个特定内容进行重新读取,从而获得该日志记录下的计算机***的运行状态的相关信息。示例地,在对日志内容执行查询之前,可以遍历所有分布式存储的日志文件,并按照日志的模式建立对应的日志映射表,其中日志映射表的内容包括:日志在映射表中的身份标识(如ID)、字段信息、该日志所在的位置信息,而位置信息包括该日志路径(例如日志所在的主机、磁盘、文件夹等路径信息)、该日志的偏移量以及该日志的长度。通过上述的建立映射表的方法,可以降低集中管理的信息量,从而降低对日志管理所需的存储空间。之后再根据该日志映射表建立每条映射所对应的索引,并且为各个索引建立索引热度排序表,该索引热度排序表中记录了当前的所有索引的搜索热度的排名,在任意一个索引被查询一次后都需要更新这个索引的搜索热度,以便下面对更新后的索引热度进行热度的重新排名,以便依据该索引最新的搜索热度的排名在后续操作中在缓存中对该索引进行管理。上述方法在降低集中管理的信息量,降低日志管理所需的存储空间的同时,通过对索引进行动态的管理,加快了查询速度,减少了高速/低速缓存之间的交换开销。
因此本步骤中,查询模式可以理解为用户定义的查询语句,即用户基于要查询的某几个目标字段编写的一段用于查询与这些目标字段相关的内容的语句。关于目标索引的确定可以包括:首先根据日志的查询模式确定该目标索引是否已经存在,若存在则直接对目标索引进行下一步骤120的操作,反之,当该目标索引不存在时,则需要先新建一个目标索引,而此时的目标索引的索引热度,应当为预设的初始热度,例如可以设置为0,之后再进行步骤120。
步骤120,将目标索引的索引热度增加一个单位热度,得到目标索引的更新后的索引热度。
当在步骤110中确定了查询模式所对应的目标索引后,则需要对该目标索引的搜索热度次数进行增加。例如,可以用1表示一个单位热度。当在执行查询时,发现存在该目标索引时,则对该目标索引的索引热度加1,获得该目标索引的更新后的索引热度,再进行步骤130进行热度排名的更新;或者,当该目标索引是在步骤110中新建的索引时,此时该目标索引的热度应为1。
步骤130,根据更新后的索引热度获取目标索引的当前热度排名。
由于在步骤120中对本次查询操作中对应的目标索引的索引热度进行了更新,因此对应的目标索引的当前热度排名也需要重新更新再获取目标索引的当前热度排名。
根据更新后的索引热度,将索引按照索引热度由高到低的顺序进行排名,得到目标索引的当前热度排名。其中,当存在多个索引热度相同的索引时,将多个索引热度相同的索引按照索引热度的更新时间由后向前的顺序进行排名。当多个索引存在并列排名时,位于该并列位置的所有并列索引的顺序是根据其索引热度的更新时间由后向前进行排名的,越后更新的索引的排名越前,也就是当存在多个索引热度相同的索引时,最后更新的索引排在并列排序的第一位,随后依次按时间顺序由后向前排名。
步骤140,当根据当前热度排名确定目标索引满足预设条件时,将目标索引写入高速缓存。
其中,高速缓存是用于存储经常使用的索引的缓存空间,类似于内存或者SSD(英文:Solid-State Disk,中文:固态硬盘),通常高速缓存中用于存储索引的空间具有一定的容量限制。
本实施例中的,将目标索引写入高速缓存包括:在目标缓存已存在并且位于低俗缓存中时,将目标索引从低速缓存写入高速缓存,或者在目标缓存不存在(此时索引热度排序表中已添加刚创建的目标索引,但缓存中不存在),是第一次创建时,则需要同步在高速缓存中创建该目标缓存。但是由于每个索引需要占用一定的存储空间,因此在写入高速缓存中之前,需要首先进行判断,该目标缓存是否满足写入的预设条件,再进行写入的操作,判断此时是否满足写入高速缓存的预设条件的步骤参见下面的实施例的说明。这样在高速缓存中存储的索引将是索引中具有较高热度排名的索引,通过各个索引的搜索热度动态地对高速缓存中的索引进行更新,从而优化索引的管理。
综上所述,本公开提供的用于日志查询的索引管理方法,通过分析当前查询中涉及的查询模式,确定与查询模式对应的目标索引,随后将目标索引的索引热度增加一个单位热度,得到目标索引的更新后的索引热度;再根据更新后的索引热度获取目标索引的当前热度排名;在当前热度排名确定目标索引满足预设条件时,将目标索引写入高速缓存。能够通过对索引的搜索热度进行排名来判断是否将目标索引写入高速缓存中,从而能够根据索引的搜索热度对高速缓存中的索引进行动态更新,从而搜索热度较高的索引能够较长时间的存储在高速缓存中,从而在保证搜索热度较高的索引能够被快速查询的同时,也保证了该索引不会再被频繁的交换于高速缓存和低速缓存之间,避免了容易导致***性能严重下降的问题。
进一步的,图2是根据一示例性实施例示出的另一种用于日志查询的索引管理方法的流程图,如图2所示,图1中的步骤110所述的通过分析当前查询中涉及的查询模式,确定与查询模式对应的目标索引包括:
步骤111,通过分析当前查询中涉及的查询模式,获取查询模式所要查询的目标字段。
示例地,查询模式的确定是建立在生成日志的规律的基础上,对于查询应是仅对某一部分内容进行一个规则的提取,可以是带过滤条件的,也可以是正则的。而查询模式所对应的目标字段的表述应当是唯一的,因此对根据查询模式即可确定要查询的目标字段,从而进行步骤112的操作,以确定是否存在对应的目标索引。
步骤112,根据目标字段确定与查询模式对应的目标索引。
示例的,在步骤111中确定了所要查询的目标字段之后再根据该目标字段确定是否存在包含目标字段的索引,其中本实施例中,查找是否存在包含目标字段的索引是指在上述的索引热度排序表中查找;之后确定目标索引,也就是:当(索引热度排序表中)存在包含目标字段的一个或多个索引时,将一个或多个索引确定为目标索引;或者,当(索引热度排序表中)不存在包含目标字段的一个或多个索引时,通过根据目标字段遍历日志文件来创建包含目标字段的一个或多个索引作为目标索引,并且在创建目标索引后,将该目标索引添加到该索引热度排序表中,另外创建的索引包括该目标字段,日志文件所在的主机路径,日志文件中的偏移量,日志的长度等信息。
示例的,假设需要在日志文件中查找ip为10.4.45.129的日志,则可以在索引热度排序表中查询是否存在包含ip字段的索引,其中查询模式的描述例如可以为:^(?<ip>\d+\.\d+\.\d+)[\s\S]。当存在包含ip字段的索引时,该索引就是我们需要的目标索引,当不存在包含ip字段的索引时,需要创建该目标索引,创建过程可以包括:遍历指定范围内所有的分布式日志文件,按照上述的查询模式^(?<ip>\d+\.\d+\.\d+)[\s\S]提取每条日志的值并建立索引,索引包括:ip的值,日志文件所在的主机路径,日志文件中的偏移量,日志的长度等信息。
而后,执行步骤141至145所述的索引管理方法,之后无论该目标索引是否位于高速缓存上,都在该目标索引上过滤ip=10.4.45.129的日志。
可选的,图3是根据一示例性实施例示出的又一种用于日志查询的索引管理方法的流程图,如图3所示,图1中的步骤140所述的当根据当前热度排名确定目标索引满足预设条件时,将目标索引写入高速缓存包括:
步骤141,确定目标索引是否位于高速缓存中。
判断目标索引是否位于高速缓存中,当该目标索引已经位于高速缓存中时,说明不需要再次写入高速缓存中;否则就进行步骤142的操作。
步骤142,当目标索引没有位于高速缓存中时,确定当前热度排名是否大于或等于预设排名。
当判断该目标索引没有位于高速缓存中时,再根据其当前热度排名,进行步骤143或者步骤144的操作。
步骤143,在当前热度排名大于或等于预设排名时,判断目标索引是否满足预设条件。
示例的,当该目标索引的当前热度排名为第20位,而预设排名为30位,则说明可以进行下一步的判断是否满足预设条件的步骤,判断目标索引满足预设条件的步骤参见下面图4的实施例。
本步骤的判断结果也存在两种情况,第一种:当满足目标索引满足预设条件时,将目标索引写入高速缓存。其中,将目标索引写入高速缓存还包括:在第一种情况中:当目标索引是首次创建的索引时,在高速缓存建立目标索引;在第二种情况中:当目标索引存在于低速缓存时,从低速缓存中读取目标索引后,将目标索引写入高速缓存。也就是说,该查询操作对应的目标索引并不存在于缓存中时,需要新建时,可以直接将该目标索引建立在高速缓存上;另外一种情况就是该目标索引已经建立过,但是之前的索引热度排名靠后,因此被存储在低速缓存中,而此时当对应更新后的热度排名后该目标索引热度排名的热度排名又满足了预设条件,因此可以从低速缓存中读取后再写入高速缓存。
第二种,当不满足目标索引满足预设条件时,进行步骤145的操作,也就是将该目标索引留在低速缓存中。
步骤144,在当前热度排名小于预设排名时,确定目标索引不满足预设条件,拒绝将目标索引写入高速缓存。
示例的,当预设排名为30位,而目标索引的当前热度排名为35位时,即当前热度排名小于预设排名,确定不能将该目标索引写入高速缓存,则继续步骤145的操作。
步骤145,当根据当前热度排名确定目标索引不满足预设条件时,将目标索引保留在低速缓存。
当目标索引不满足写入高速缓存的预设条件时,也可以分为两种情况,当目标索引是首次创建的索引时,则将目标索引创建在低速缓存中,当目标索引已经存在于低速缓存中,则该目标索引还保留在原位置,即低速缓存中,直到根据其热度排名满足预设条件后,才可以写入高速缓存。
进一步的,图4是根据一示例性实施例示出的又一种用于日志查询的索引管理方法的流程图,在判断目标索引是否满足预设条件时,除了考虑目标索引的当前热度排名,还可以考虑高速缓存中用于存储索引的缓存容量是否足够,如图4所示,图3中的步骤144所述的在当前热度排名大于或等于预设排名时,确定目标索引满足预设条件,并将目标索引写入高速缓存包括:
步骤1441,在当前热度排名大于或等于预设排名时,确定高速缓存中的用于存储索引的缓存容量是否足够。
示例的,该缓存容量可以选取所有索引所占总容量的百分之三十与***所分配的最大缓存容量限制的二者中的最小值。判断此时的高速缓存中的用于存储索引的缓存中是否已经存储满,其剩余缓存容量是否还足够写入新的索引,再判断是进行步骤1442还是步骤1443的操作。
步骤1442,当确定缓存容量足够时,将目标索引写入高速缓存。
步骤1443,当确定缓存容量不足时,将高速缓存中存储的所有索引中热度排名为最后一位的索引从高速缓存中删除。
在步骤1441中判断该高速缓存中的缓存容量不够继续存储时,需要删除已经存储在高速缓存上的索引,得到足够缓存容量用以存入目标索引,选择将索引热度排名最后的索引删除。之后再进行步骤1444的判断。
步骤1444,确定是否缓存容量足够将目标索引写入高速缓存中。
当在步骤1443删除了排名最后的索引后,确定此时高速缓存上有足够容量进行目标索引的写入时,可以结束该判断过程,直接将目标索引写入高速缓存。否则需从步骤1441重新开始,直至步骤1444确定满足为止。也就是,在将热度排名为最后一位的索引从高速缓存中删除后,再次执行确定高速缓存中的用于存储索引的缓存容量是否足够的步骤,直至确定缓存容量足够时将目标索引写入高速缓存。其中,当目标索引为热度排名为最后一位的索引时,拒绝将目标索引写入高速缓存。
由于不同索引所占用的空间不一致且高速缓存的缓存容量有限,因此在写入过程中需确定高速缓存中的缓存容量是否满足将要写入的目标索引所需的容量大小的要求,在不满足时,则首先进行缓存容量的清理,依次删除热度排名最后的索引,直到缓存容量大小满足该目标索引所占用的空间大小为止。例如,高速缓存中的缓存容量可以存储30个索引,目标索引在此时排名为高速缓存上所有索引的索引热度排名的第20位,因此要写入的目标索引时,需删除加上目标索引在内一共31个索引的索引热度排名为第31位,即原本热度排名为第30位的索引。而如果在删除了索引热度排名最后的索引之后,高速缓存的缓存容量仍然不够该目标索引所需的,则仍需继续进行步骤1443的操作,删除热度排名在第30位的索引,以此类推,直到能够将目标索引完全写入高速缓存中为止。但是,如果当删除了排名为第21位的目标索引后,仍然在高速缓存中没有足够的缓存容量,则也要停止写入,因为此时该目标索引的排名已经为最后一位了。
可选的,图5是根据一示例性实施例示出的又一种用于日志查询的索引管理方法的流程图,如图5所示,在图1的实施例所示的步骤之后还包括以下步骤:
步骤150,当目标索引位于高速缓存时,从高速缓存中利用目标索引获取查询模式所要查询的内容。
步骤160,当目标索引位于低速缓存时,从低速缓存中利用目标索引获取查询模式所要查询的内容。
另外,针对数据统计类型的查询,例如查询金额等场景,可以预先根据相关的字段内容创建索引,在查询时从索引中即可提取出统计结果,无需查询原日志,能够提高查询效率。
综上所述,本公开提供的用于日志查询的索引管理方法,通过分析当前查询中涉及的查询模式,确定与查询模式对应的目标索引,随后将目标索引的索引热度增加一个单位热度,得到目标索引的更新后的索引热度;再根据更新后的索引热度获取目标索引的当前热度排名;在当前热度排名确定目标索引满足预设条件时,将目标索引写入高速缓存。能够通过对索引的搜索热度进行排名来判断是否将目标索引写入高速缓存中,从而能够根据索引的搜索热度对高速缓存中的索引进行动态更新,从而搜索热度较高的索引能够较长时间的存储在高速缓存中,从而在保证搜索热度较高的索引能够被快速查询的同时,也保证了该索引不会再被频繁的交换于高速缓存和低速缓存之间,避免了容易导致***性能严重下降的问题。
图6是根据一示例性实施例示出的一种用于日志查询的索引管理装置的框图,该装置600可以用于执行图1-图5任一所述的方法。参见图6,该装置600包括:
索引确定模块610,用于通过分析当前查询中涉及的查询模式,确定与查询模式对应的目标索引。
索引热度更新模块620,用于将目标索引的索引热度增加一个单位热度,得到目标索引的更新后的索引热度。
热度排名获取模块630,用于根据更新后的索引热度获取目标索引的当前热度排名。
索引管理模块640,用于当根据当前热度排名确定目标索引满足预设条件时,将目标索引写入高速缓存。
可选的,图7是根据一示例性实施例示出的一种索引确定模块的框图,如图7所示,该索引确定模块610,包括:
字段获取子模块611,用于通过分析当前查询中涉及的查询模式,获取查询模式所要查询的目标字段。
索引确定子模块612,用于根据目标字段确定与查询模式对应的目标索引。
可选的,图8是根据一示例性实施例示出的一种索引确定子模块的框图,如图8所示,该索引确定子模块612,包括:
字段识别子模块6121,用于根据目标字段确定是否存在包含目标字段的索引。
索引创建子模块6122,用于当存在包含目标字段的一个或多个索引时,将一个或多个索引确定为目标索引。
所述索引创建子模块6122,还用于当不存在包含目标字段的一个或多个索引时,通过根据目标字段遍历日志文件来创建包含目标字段的一个或多个索引作为目标索引。
可选的,热度排名获取模块630,用于:
根据更新后的索引热度,将所有索引按照索引热度由高到低的顺序进行排名,得到目标索引的当前热度排名。
其中,当存在多个索引热度相同的索引时,将多个索引热度相同的索引按照索引热度的更新时间由后向前的顺序进行排名。
可选的,图9是根据一示例性实施例示出的一种索引管理模块的框图,如图9所示,该索引管理模块640,包括:
索引位置确定子模块641,用于确定目标索引是否位于高速缓存中。
热度排名确定子模块642,用于当目标索引没有位于高速缓存中时,确定当前热度排名是否大于或等于预设排名。
缓存管理子模块643,用于在当前热度排名大于或等于预设排名时,确定目标索引满足预设条件,并将目标索引写入高速缓存。
缓存管理子模块643,还用于在当前热度排名小于预设排名时,确定目标索引不满足预设条件,拒绝将目标索引写入高速缓存。
可选的,图10是根据一示例性实施例示出的一种缓存管理子模块的框图,如图10所示,该缓存管理子模块643,包括:
缓存容量确定子模块6431,用于在当前热度排名大于或等于预设排名时,确定高速缓存中的用于存储索引的缓存容量是否足够。
写入管理子模块6432,用于当确定缓存容量足够时,将目标索引写入高速缓存。
索引删除子模块6433,用于当确定缓存容量不足时,将高速缓存中存储的所有索引中热度排名为最后一位的索引从高速缓存中删除。
缓存容量确定子模块6431,用于在将热度排名为最后一位的索引从高速缓存中删除后,再次执行确定高速缓存中的用于存储索引的缓存容量是否足够的步骤,直至确定缓存容量足够时将目标索引写入高速缓存。
写入管理子模块6432,还用于当目标索引为热度排名为最后一位的索引时,拒绝将目标索引写入高速缓存。
可选的,索引管理模块640,用于:
当目标索引是首次创建的索引时,在高速缓存建立目标索引。
当目标索引存在于低速缓存时,从低速缓存中读取目标索引后,将目标索引写入高速缓存。
可选的,该索引管理模块640还用于:
当根据当前热度排名确定目标索引不满足预设条件时,将目标索引保留在低速缓存。
可选的,图11是根据一示例性实施例示出的一种用于日查询的索引管理装置的框图,如图11所示,该装置600还包括查询模块650,用于:
当目标索引位于高速缓存时,从高速缓存中利用目标索引获取查询模式所要查询的内容;以及当目标索引位于低速缓存时,从低速缓存中利用目标索引获取查询模式所要查询的内容。
综上所述,本公开提供的用于日志查询的索引管理装置,通过分析当前查询中涉及的查询模式,确定与查询模式对应的目标索引,随后将目标索引的索引热度增加一个单位热度,得到目标索引的更新后的索引热度;再根据更新后的索引热度获取目标索引的当前热度排名;在当前热度排名确定目标索引满足预设条件时,将目标索引写入高速缓存。因此,本公开所提供的技术方案能够通过对索引的搜索热度进行排名,确定是否将目标索引写入高速缓存中,实时对高速缓存中的索引进行更新,实现在日志查询的操作过程中对索引的动态管理。
图12是根据一示例性实施例示出的一种电子设备1200的框图。如图12所示,该电子设备1200可以包括:处理器1201,存储器1202,多媒体组件1203,输入/输出(I/O)接口1204,以及通信组件1205。
其中,处理器1201用于控制该电子设备1200的整体操作,以完成上述的用于日志查询的索引管理方法中的全部或部分步骤。存储器1202用于存储各种类型的数据以支持在该电子设备1200的操作,这些数据例如可以包括用于在该电子设备1200上操作的任何应用程序或方法的指令,以及应用程序相关的数据,例如联系人数据、收发的消息、图片、音频、视频等等。该存储器1202可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,例如静态随机存取存储器(Static Random Access Memory,简称SRAM),电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,简称EEPROM),可擦除可编程只读存储器(Erasable Programmable Read-Only Memory,简称EPROM),可编程只读存储器(Programmable Read-Only Memory,简称PROM),只读存储器(Read-OnlyMemory,简称ROM),磁存储器,快闪存储器,磁盘或光盘。多媒体组件1203可以包括屏幕和音频组件。其中屏幕例如可以是触摸屏,音频组件用于输出和/或输入音频信号。例如,音频组件可以包括一个麦克风,麦克风用于接收外部音频信号。所接收的音频信号可以被进一步存储在存储器1202或通过通信组件1205发送。音频组件还包括至少一个扬声器,用于输出音频信号。I/O接口1204为处理器1201和其他接口模块之间提供接口,上述其他接口模块可以是键盘,鼠标,按钮等。这些按钮可以是虚拟按钮或者实体按钮。通信组件1205用于该电子设备1200与其他设备之间进行有线或无线通信。无线通信,例如Wi-Fi,蓝牙,近场通信(Near Field Communication,简称NFC),2G、3G或4G,或它们中的一种或几种的组合,因此相应的该通信组件1205可以包括:Wi-Fi模块,蓝牙模块,NFC模块。
在一示例性实施例中,电子设备1200可以被一个或多个应用专用集成电路(Application Specific Integrated Circuit,简称ASIC)、数字信号处理器(DigitalSignal Processor,简称DSP)、数字信号处理设备(Digital Signal Processing Device,简称DSPD)、可编程逻辑器件(Programmable Logic Device,简称PLD)、现场可编程门阵列(Field Programmable Gate Array,简称FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述的用于日志查询的索引管理方法。
在另一示例性实施例中,还提供了一种包括程序指令的计算机可读存储介质,例如包括程序指令的存储器1202,上述程序指令可由电子设备1200的处理器1201执行以完成上述的用于日志查询的索引管理方法。
图13是根据一示例性实施例示出的另一种电子设备1300的框图。例如,电子设备1300可以被提供为一服务器。参照图13,电子设备1300包括处理器1322,其数量可以为一个或多个,以及存储器1332,用于存储可由处理器1322执行的计算机程序。存储器1332中存储的计算机程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理器1322可以被配置为执行该计算机程序,以执行上述的用于日志查询的索引管理方法。
另外,电子设备1300还可以包括电源组件1326和通信组件1350,该电源组件1326可以被配置为执行电子设备1300的电源管理,该通信组件1350可以被配置为实现电子设备1300的通信,例如,有线或无线通信。此外,该电子设备1300还可以包括输入/输出(I/O)接口1358。电子设备1300可以操作基于存储在存储器1332的操作***,例如WindowsServerTM,Mac OS XTM,UnixTM,LinuxTM等等。
在另一示例性实施例中,还提供了一种包括程序指令的计算机可读存储介质,例如包括程序指令的存储器1332,上述程序指令可由电子设备1300的处理器1322执行以完成上述的用于日志查询的索引管理方法。
以上结合附图详细描述了本公开的优选实施方式,但是,本公开并不限于上述实施方式中的具体细节,在本公开的技术构思范围内,可以对本公开的技术方案进行多种简单变型,这些简单变型均属于本公开的保护范围。
另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合。为了避免不必要的重复,本公开对各种可能的组合方式不再另行说明。
此外,本公开的各种不同的实施方式之间也可以进行任意组合,只要其不违背本公开的思想,其同样应当视为本公开所公开的内容。
Claims (10)
1.一种用于日志查询的索引管理方法,其特征在于,所述方法包括:
通过分析当前查询中涉及的查询模式,确定与所述查询模式对应的目标索引;
将所述目标索引的索引热度增加一个单位热度,得到所述目标索引的更新后的索引热度;
根据所述更新后的索引热度获取所述目标索引的当前热度排名;
当根据所述当前热度排名确定所述目标索引满足预设条件时,将所述目标索引写入高速缓存。
2.根据权利要求1所述的方法,其特征在于,所述通过分析当前查询中涉及的查询模式,确定与所述查询模式对应的目标索引,包括:
通过分析当前查询中涉及的查询模式,获取所述查询模式所要查询的目标字段;
根据所述目标字段确定与所述查询模式对应的目标索引。
3.根据权利要求2所述的方法,其特征在于,所述根据所述目标字段确定与所述查询模式对应的目标索引,包括:
根据所述目标字段确定是否存在包含所述目标字段的索引;
当存在包含所述目标字段的一个或多个索引时,将所述一个或多个索引确定为所述目标索引;
当不存在包含所述目标字段的一个或多个索引时,通过根据所述目标字段遍历日志文件来创建包含所述目标字段的一个或多个索引作为所述目标索引。
4.根据权利要求1所述的方法,其特征在于,所述根据所述更新后的索引热度获取所述目标索引的当前热度排名,包括:
根据所述更新后的索引热度,将所有索引按照索引热度由高到低的顺序进行排名,得到所述目标索引的当前热度排名;
其中,当存在多个索引热度相同的索引时,将所述多个索引热度相同的索引按照索引热度的更新时间由后向前的顺序进行排名。
5.根据权利要求1所述的方法,其特征在于,所述当根据所述当前热度排名确定所述目标索引满足预设条件时,将所述目标索引写入高速缓存,包括:
确定所述目标索引是否位于高速缓存中;
当所述目标索引没有位于所述高速缓存中时,确定所述当前热度排名是否大于或等于预设排名;
当所述当前热度排名大于或等于所述预设排名时,确定所述目标索引满足所述预设条件,并将所述目标索引写入高速缓存;
当所述当前热度排名小于所述预设排名时,确定所述目标索引不满足所述预设条件,拒绝将所述目标索引写入高速缓存。
6.根据权利要求5所述的方法,其特征在于,所述当所述当前热度排名大于或等于所述预设排名时,确定所述目标索引满足所述预设条件,并将所述目标索引写入高速缓存,包括:
当所述当前热度排名大于或等于所述预设排名时,确定所述高速缓存中的用于存储索引的缓存容量是否足够;
当确定所述缓存容量足够时,将所述目标索引写入高速缓存;
当确定所述缓存容量不足时,将所述高速缓存中存储的所有索引中热度排名为最后一位的索引从所述高速缓存中删除;
在将所述热度排名为最后一位的索引从所述高速缓存中删除后,再次执行所述确定所述高速缓存中的用于存储索引的缓存容量是否足够的步骤,直至确定所述缓存容量足够时将所述目标索引写入高速缓存;
其中,当所述目标索引为所述热度排名为最后一位的索引时,拒绝将所述目标索引写入高速缓存。
7.根据权利要求5或6所述的方法,其特征在于,所述将所述目标索引写入高速缓存,包括:
当所述目标索引是首次创建的索引时,在所述高速缓存建立所述目标索引;
当所述目标索引存在于低速缓存时,从所述低速缓存中读取所述目标索引后,将所述目标索引写入高速缓存。
8.一种用于日志查询的索引管理装置,其特征在于,所述装置包括:
索引确定模块,用于通过分析当前查询中涉及的查询模式,确定与所述查询模式对应的目标索引;
索引热度更新模块,用于将所述目标索引的索引热度增加一个单位热度,得到所述目标索引的更新后的索引热度;
热度排名获取模块,用于根据所述更新后的索引热度获取所述目标索引的当前热度排名;
索引管理模块,用于当根据所述当前热度排名确定所述目标索引满足预设条件时,将所述目标索引写入高速缓存。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1-7中任一项所述方法的步骤。
10.一种电子设备,其特征在于,包括:
权利要求9中所述的计算机可读存储介质;以及
一个或者多个处理器,用于执行所述计算机可读存储介质中的计算机程序。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710272219.0A CN107220287A (zh) | 2017-04-24 | 2017-04-24 | 用于日志查询的索引管理方法、装置、存储介质及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710272219.0A CN107220287A (zh) | 2017-04-24 | 2017-04-24 | 用于日志查询的索引管理方法、装置、存储介质及设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107220287A true CN107220287A (zh) | 2017-09-29 |
Family
ID=59943917
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710272219.0A Pending CN107220287A (zh) | 2017-04-24 | 2017-04-24 | 用于日志查询的索引管理方法、装置、存储介质及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107220287A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110209969A (zh) * | 2019-05-08 | 2019-09-06 | 口碑(上海)信息技术有限公司 | 菜谱信息的缓存预热方法及装置 |
CN110704436A (zh) * | 2019-09-26 | 2020-01-17 | 郑州阿帕斯科技有限公司 | 基于Hbase的索引生成方法及装置 |
CN112000885A (zh) * | 2020-08-14 | 2020-11-27 | 广州市百果园信息技术有限公司 | 榜单服务***、榜单生成方法、服务器及存储介质 |
CN113918606A (zh) * | 2021-12-15 | 2022-01-11 | 湖北亿咖通科技有限公司 | 日志查询方法及装置 |
WO2023179414A1 (zh) * | 2022-03-22 | 2023-09-28 | 阿里云计算有限公司 | 一种热点识别方法及一种限流方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102508913A (zh) * | 2011-11-17 | 2012-06-20 | 张真 | 一种带有数据立方存储索引结构的云计算*** |
CN102779185A (zh) * | 2012-06-29 | 2012-11-14 | 浙江大学 | 一种高可用分布式全文索引方法 |
CN102929936A (zh) * | 2012-09-26 | 2013-02-13 | 东软集团股份有限公司 | 日志记录方法、日志查询方法及*** |
CN104092670A (zh) * | 2014-06-25 | 2014-10-08 | 北京蓝汛通信技术有限责任公司 | 网络缓存服务器处理文件的方法及处理缓存文件的设备 |
CN105912696A (zh) * | 2016-04-25 | 2016-08-31 | 中国互联网络信息中心 | 一种基于对数归并的dns索引创建方法及查询方法 |
-
2017
- 2017-04-24 CN CN201710272219.0A patent/CN107220287A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102508913A (zh) * | 2011-11-17 | 2012-06-20 | 张真 | 一种带有数据立方存储索引结构的云计算*** |
CN102779185A (zh) * | 2012-06-29 | 2012-11-14 | 浙江大学 | 一种高可用分布式全文索引方法 |
CN102929936A (zh) * | 2012-09-26 | 2013-02-13 | 东软集团股份有限公司 | 日志记录方法、日志查询方法及*** |
CN104092670A (zh) * | 2014-06-25 | 2014-10-08 | 北京蓝汛通信技术有限责任公司 | 网络缓存服务器处理文件的方法及处理缓存文件的设备 |
CN105912696A (zh) * | 2016-04-25 | 2016-08-31 | 中国互联网络信息中心 | 一种基于对数归并的dns索引创建方法及查询方法 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110209969A (zh) * | 2019-05-08 | 2019-09-06 | 口碑(上海)信息技术有限公司 | 菜谱信息的缓存预热方法及装置 |
CN110704436A (zh) * | 2019-09-26 | 2020-01-17 | 郑州阿帕斯科技有限公司 | 基于Hbase的索引生成方法及装置 |
CN112000885A (zh) * | 2020-08-14 | 2020-11-27 | 广州市百果园信息技术有限公司 | 榜单服务***、榜单生成方法、服务器及存储介质 |
WO2022033291A1 (zh) * | 2020-08-14 | 2022-02-17 | 百果园技术(新加坡)有限公司 | 榜单服务***、榜单生成方法、服务器及存储介质 |
CN113918606A (zh) * | 2021-12-15 | 2022-01-11 | 湖北亿咖通科技有限公司 | 日志查询方法及装置 |
WO2023179414A1 (zh) * | 2022-03-22 | 2023-09-28 | 阿里云计算有限公司 | 一种热点识别方法及一种限流方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107220287A (zh) | 用于日志查询的索引管理方法、装置、存储介质及设备 | |
CN104301360B (zh) | 一种日志数据记录的方法、日志服务器及*** | |
CN102542052B (zh) | 优先散列索引 | |
KR102036419B1 (ko) | 그래프 처리 성능 향상을 위한 복수 계층 캐싱 방법 및 복수 계층 캐싱 시스템 | |
CN110291518A (zh) | 合并树无用单元指标 | |
CN110268394A (zh) | Kvs树 | |
CN110268399A (zh) | 用于维护操作的合并树修改 | |
CN107943718B (zh) | 一种清理缓存文件的方法和装置 | |
CN110383261A (zh) | 用于多流存储装置的流选择 | |
CN109271355A (zh) | 一种清理日志文件缓存的方法及装置 | |
CN104424219B (zh) | 一种数据文件的管理方法及装置 | |
CN108614837B (zh) | 文件存储和检索的方法及装置 | |
CN101673192A (zh) | 时序化的数据处理方法、装置及*** | |
CN110737682A (zh) | 一种缓存操作方法、装置、存储介质和电子设备 | |
CN105512283A (zh) | 数据质量管理控制方法及装置 | |
CN103020175B (zh) | 一种获取聚合数据的方法和装置 | |
CN106776823A (zh) | 一种时序数据管理方法、设备和装置 | |
CN108280162A (zh) | 一种基于缓存的位置隐私保护方法 | |
CN105224560A (zh) | 缓存数据的查找方法和装置 | |
CN112262379A (zh) | 存储数据项并且标识存储的数据项 | |
CN114020790A (zh) | 一种数据查询的方法及装置 | |
CN101576854A (zh) | 文件访问的方法、装置及*** | |
CN109871338B (zh) | 一种数据存储方法、装置及计算机设备 | |
CN106815232A (zh) | 目录管理方法、装置及*** | |
CN113641681A (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20170929 |
|
RJ01 | Rejection of invention patent application after publication |