[发明专利]应用于单机服务器的日志存储和查询方法在审
申请号: | 201611093276.4 | 申请日: | 2016-12-01 |
公开(公告)号: | CN106599127A | 公开(公告)日: | 2017-04-26 |
发明(设计)人: | 何雪煜 | 申请(专利权)人: | 深圳市风云实业有限公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 深圳市中知专利商标代理有限公司44101 | 代理人: | 吕晓蕾,景志轩 |
地址: | 518057 广东省深圳市南山区*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 应用于 单机 服务器 日志 存储 查询 方法 | ||
技术领域
本发明涉及一种用于服务器的日志存储和查询方法,特别涉及一种可快速查询的应用于单机服务器中的日志存储和查询方法。
背景技术
对于一个简单的单机关系型数据库系统来说,数据的查询是通过把查询条件组合成SQL语句,输入数据库中进行查询。
这种简单的表项设计,在以下应用环境中,能够做到快速响应查询请求:
1、比较简单的查询条件;
2、同时数据量比较小。
但是当系统面对如下比较复杂的应用环境时,响应速度则大大降低:
1、日志的数据量相当大;
2、查询条件比较多,每个条件都有一定量的取值。
现有技术中大部分的单机服务器,单纯依靠数据库来分析SQL语句当中的查询语句,然后在表项里面进行数据的查询,数据库引擎需要遍历该表项中的所有的数据(即指对整个表项中的所有数据进行搜索),因此,其查询耗时相当长。比如,如果数据条目是百万级别,查询条件是多个条件或参数的复杂组合,在响应查询请求的时候,数据库引擎需要从磁盘中读取大量的数据,并且逐个进行分析,查询耗时可达到20分钟以上,因此,其不能满足用户期望获得较快响应的需求。
现有技术中的Mysql数据库,也引入了“分区”的概念,Mysql划设分区的具体方法如下:
其是在若干日志所具有的各属性(属性是日志所属的特性,如电脑IP、包含web访问、邮件及语音在内的通信协议类型、访问IP、流量记录、源地址、目的地址、源端口和目的端口中的多种组合)中,选择其中一个属性下对应的若干个不同条件或参数分别作为所划分区中各分区的首要查询条件,如图1和后附的表4所示,即将所有日志中所述首要查询条件相同的日志均存放在一个分区中,以此,将所有日志存放在若干个分区中且同一分区中的日志的所述首要查询条件均相同。
每个分区都是独立的文件。用户所选择的、实现数据分割的规则被称为分区函数,该函数返回一个整数,对应一个分区编号。在数据库分区的情况下,某些SQL语句可以在查询之前,把需要查询的数据,定位到某一个分区里,缩小查询的范围(比如需要遍历的数据量,从百万级别,降低到数万条),提高了查询的效率,由此,在大量的日志数据情况下,较大地提高了查询的响应速度。
但Mysql数据库中所述的分区结构存在以下不足:
在日志所具有的属性为若干项的情况下,其只能根据某一属性下的某个条件或参数(即所述的首要查询条件)来分区,结果可能是用户在输入某几个属性下对应的多个条件或参数组合的时候,仍然需要在所有的分区当中进行查询(相当于不分区,对整个分表进行遍历查询),导致查询的效率仍然得不到提高)。即,如果用户的查询请求,涉及多种查询条件的自由组合,该数据库则无法根据这些自由组合的查询条件,把查询请求快速精确定位到某一个分区,其仍然需要遍历大部分数据,从而大大降低响应速度。
发明内容
本发明要解决的技术问题是提供一种存储方便且查询响应速度快的应用于单机服务器的日志存储和查询方法。
为了解决上述技术问题,本发明采用的技术方案为:
本发明的应用于单机服务器的日志存储和查询方法,由以下步骤构成:
日志存储
1)建立一个日志总表,按设定时间段分别写入若干个包含该时间段存储的日志的日志条数、日志分表的表名和日志分区映射表的表名在内的记录;
2)在对应的日志分表中建立若干个日志分区,各日志分区按以下规则存放日志:
a.各日志分区存放该时间段内产生的满足以下条件的日志:针对若干属性下对应的各条件或参数组合的日志,将相同条件或参数组合的日志和该相同组合中每条日志对应的时间戳以及每条日志对应的日志内容记载于该日志分区中;
b.或者,各日志分区中存放该时间段内产生的满足以下条件的日志:针对若干属性下对应的各条件或参数组合的日志,将相近时间戳内产生的不同条件或参数组合的日志和该不同组合中每条日志对应的时间戳以及每条日志对应的日志内容记载于该日志分区中;
c.或者,一部分日志分区采用上述a规则,另一部分日志分区采用b规则;
d.或者,在某些日志分区中采用上述a规则与b规则的组合;
3)每个所述的日志分表对应一个所述的日志分区映射表,该日志分区映射表存放该日志分表中出现的不同的条件或参数组合和该组合中各条件或参数组合对应的日志所在的日志分区编号;
日志查询
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于深圳市风云实业有限公司,未经深圳市风云实业有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201611093276.4/2.html,转载请声明来源钻瓜专利网。