一种日志查询方法和系统的制作方法

文档序号:9727477阅读:661来源:国知局
一种日志查询方法和系统的制作方法
【技术领域】
[0001 ]本发明涉及数据处理技术领域,尤其涉及一种日志查询方法和系统。
【背景技术】
[0002]随着移动通信网、互联网、物联网等信息技术的飞速发展,信息技术已经融入到人们的生活,遍布世界各地的各种通信终端、传感设备等产生了超过以往任何时代的巨量数据。与此同时,电子商务、社交网络的兴起每时每刻都在生成各种各样的数据。
[0003]海量的数据中蕴含着大量信息,从信息中可以提取大量有用价值。其中,网站采集的日志一般包含了大量人们一特别是产品分析人员感兴趣的信息,其记录了服务器接收处理请求以及运行时错误等各种原始信息,通过对这些日志进行分析和统计,能够有效掌握系统运行情况以及网站内容的受访问情况、加强对整个网站及其内容的维护与管理。而这些海量的日志数据通常为小文件,面对海量零散小文件的日志数据,如何高效的进行存储以及查询十分关键。
[0004]由于目前普遍使用的基于关系型数据库的存储查询方案在海量小文件数据存储和查询的条件下加载效率低、检索速度慢,因此需要一种能够适应海量小文件数据存储、查询等应用需求、提高数据查询效率的日志查询方案。

【发明内容】

[0005]鉴于此,本发明提供了一种新的日志查询方案,以力图解决或至少缓解上面存在的问题。
[0006]根据本发明的一个方面,提供了一种日志查询方法,该方法包括:接收采集的至少一条日志,日志包括日志来源、日志生成日期和日志生成时间;将接收的每一条日志存储为一个第一文件,该第一文件以该条日志的日志来源、日志生成日期和日志生成时间为存储路径;读取日志来源相同、日志生成日期相同和日志生成时间所属的时间段相同的存储路径下的至少一个第一文件;将该至少一个第一文件按照其中日志生成时间有序排列后合并为一个第二文件,该第二文件以第一文件中日志生成时间为索引,并以日志来源、日志生成日期和日志生成时间所属的时间段为存储路径;接收用户的日志分页查询请求,获取相应存储路径下的第二文件,对获取的第二文件进行分页查询后将查询结果返回至用户。
[0007]可选地,在根据本发明的方法中,在将接收的每一条日志存储为一个第一文件的步骤之前,还包括:解析日志内容,判断日志是否为无效日志,若是则将该条日志删除。
[0008]可选地,在根据本发明的方法中,该日志分页查询请求包括日志来源、日志生成日期、日志生成时间、页起始行和每页日志条数,获取相应存储路径下的第二文件,对获取的第二文件进行分页查询后将查询结果返回至用户的步骤包括:根据日志分页查询请求中的日志来源、日志生成日期和日志生成时间确定第二文件的存储路径,读取该存储路径下的第二文件;读取第二文件中该日志生成时间对应的一条日志,并以该条日志作为行号为第I行的日志;根据该页起始行和每页日志条数确定该页的页结束行;读取并存储第二文件中第I行日志后行号为该页起始行至页结束行的所有日志为查询结果。
[0009]可选地,在根据本发明的方法中,读取第二文件中日志生成时间对应的一条日志的步骤包括:查询第二文件的索引,若索引中存在该日志生成时间,则读取第二文件中该日志生成时间对应的一条日志;以及若索引中不存在该日志生成时间,则查询索引中与该日志生成时间最接近的日志生成时间,读取第二文件中最接近的日志生成时间对应的一条日
V1、1、O
[0010]可选地,在根据本发明的方法中,在读取并存储第二文件中第I行日志后行号为该页起始行至页结束行的所有日志为查询结果的步骤之前,还包括:根据每页日志条数判断该页起始行是否位于第一页。
[0011 ]可选地,在根据本发明的方法中,若页起始行位于第一页,则令该页起始行为第I行,读取并存储第二文件中第I行日志后行号为该页起始行至页结束行的所有日志为查询结果的步骤包括:将第I行的日志存储至查询结果;以第二文件中该第I行的日志为起始,重复读取下一条日志、将该条日志存储至查询结果,直至重复次数为每页日志条数减去I。
[0012]可选地,在根据本发明的方法中,若页起始行不是位于第一页,则读取并存储第二文件中第I行日志后行号为该页起始行至页结束行的所有日志为查询结果的步骤包括:以第二文件中第I行的日志为起始,重复读取下一条日志直至重复次数为页起始行减去2;继续重复读取下一条日志、将该条日志存储至查询结果,直至重复次数为每页日志条数。
[0013]可选地,在根据本发明的方法中,还包括:根据页起始行和每页日志条数确定下一页的页起始行,将该下一页的页起始行存储至查询结果。
[0014]可选地,在根据本发明的方法中,其中每一条日志为一行,页结束行为页起始行加上每页日志条数后减去I,下一页的页起始行为该页起始行加上每页日志条数。
[0015]可选地,在根据本发明的方法中,第二文件为MapfiIe文件。
[0016]根据本发明的另一个方面,还提供了一种日志查询系统,该系统包括:接收模块,适于接收采集的至少一条日志,该日志包括日志来源和日志时间;还适于将接收的每一条日志存储为一个第一文件,该第一文件以该条日志的日志来源、日志生成日期和日志生成时间为存储路径;合并模块,适于读取日志来源相同、日志生成日期相同和日志生成时间所属的时间段相同的存储路径下的至少一个第一文件;还适于将至少一个第一文件按照其中日志生成时间有序排列后合并为一个第二文件,该第二文件以第一文件中日志生成时间为索引,并以日志来源、日志生成日期和日志生成时间所属的时间段为存储路径;查询模块,适于接收用户的日志分页查询请求,获取相应存储路径下的第二文件,对获取的第二文件进行分页查询后将查询结果返回至用户;以及存储模块,适于存储第一文件和第二文件。
[0017]可选地,在根据本发明的系统中,接收模块还适于在将接收的每一条日志存储为一个第一文件之前,解析日志内容,判断日志是否为无效日志,若是则将该条日志删除。
[0018]可选地,在根据本发明的系统中,日志分页查询请求包括日志来源、日志生成日期、日志生成时间、页起始行和每页日志条数,查询模块适于根据日志分页查询请求中的日志来源、日志生成日期和日志生成时间确定第二文件的存储路径,读取该存储路径下的第二文件;还适于读取第二文件中该日志生成时间对应的一条日志,并以该条日志作为行号为第I行的日志;还适于根据页起始行和每页日志条数确定该页的页结束行,读取并存储第二文件中第I行日志后行号为该页起始行至页结束行的所有日志为查询结果。
[0019]可选地,在根据本发明的系统中,查询模块还适于查询第二文件的索引,若索引中存在该日志生成时间,则读取第二文件中该日志生成时间对应的一条日志;若索引中不存在该日志生成时间,则查询索引中与该日志生成时间最接近的日志生成时间,读取第二文件中最接近的日志生成时间对应的一条日志。
[0020]可选地,在根据本发明的系统中,查询模块还适于在读取并存储第二文件中第I行日志后行号为该页起始行至页结束行的所有日志为查询结果之前,根据每页日志条数判断该页起始行是否位于第一页。
[0021]可选地,在根据本发明的系统中,查询模块还适于若页起始行位于第一页,则令该页起始行为第I行,将第I行的日志存储至查询结果,并以第二文件中该第I行的日志为起始,重复读取下一条日志、将该条日志存储至查询结果,直至重复次数为每页日志条数减去
1
[0022]可选地,在根据本发明的系统中,查询模块还适于若页起始行不是位于第一页,则以第二文件中第I行的日志为起始,重复读取下一条日志直至重复次数为页起始行减去2;继续重复读取下一条日志、将该条日志存储至查询结果,直至重复次数为每页日志条数。
[0023]可选地,在根据本发明的系统中,查询模块还适于根据页起始行和每页日志条数确定下一页的页起始行,将下一页的页起始行存储至查询结果。
[0024]可选地,在根据本发明的系统中,其中每一条日志为一行,页结束行为页起始行加上每页日志条数后减去I,下一页的页起始行为该页起始行加上每页日志条数。
[0025]可选地,在根据本发明的系统中,第二文件为Mapfile文件。
[0026]根据本发明的日志查询方案,通过对海量的小文件日志进行合并后存储为第二文件,节省了系统资源,同时设置具体的查询条件,并以日志时间为索引查询第二文件,可以实现对第二文件中日志的分页查询,提高了查询效率。
【附图说明】
[0027]为了实现上述以及相关目的,本文结合下面的描述和附图来描述某些说明性方面,这些方面指示了可以实践本文所公开的原理的各种方式,并且所有方面及其等效方面旨在落入所要求保护的主题的范围内。通过结合附图阅读下面的详细描述,本公开的上述以及其它目的、特征和优势将变得更加明显。遍及本公开,相同的附图标记通常指代相同的部件或元素。
[0028]图1示出了根据本发明一个示例性实施例的日志查询系统100的结构框
[0029]图;以及
[0030]图2示出
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1