应用于单机服务器的日志存储和查询方法技术

技术编号:15250995 阅读:40 留言:0更新日期:2017-05-02 14:12
一种存储方便且查询响应速度快的应用于单机服务器的日志存储和查询方法。其步骤如下:1)建立包含某时间段存储的日志的日志条数、日志分表的表名和日志分区映射表的表名在内的记录的日志总表;2)在对应的日志分表中建立若干个日志分区:3)每个日志分表对应一个日志分区映射表。本发明专利技术将日志按照其产生的时间段及该日志多个属性下的条件或参数的组合,按照一定的规则分布于若干个日志分表和该日志分表下设的若干个分区中,当用户查询某个日志时,输入查询条件,系统则按照时间段通过对应的日志分区映射表很快查询到与该条件或参数组合对应的日志数据。本发明专利技术能够高效、快速地查询存放在单机服务器中的日志数据。

Log storage and query method for single server

A method for storing and querying log files applied to stand-alone server with convenient storage and fast query response. The steps are as follows: 1) the number of log, the log includes the establishment of a period of time to store log table table name and the log partition mapping table table name, log table; 2) the establishment of a number of log partition in the corresponding log table: 3) each table corresponds to a log the log partition mapping table. The invention will be in accordance with the time of the combination of log and the log multiple attributes under conditions or parameters, according to certain rules of several partitions distributed in several log table and the log table under, when a user query log, enter the query, the system is in accordance with the time through the corresponding log partition mapping table to quickly query log data corresponding to the conditions or combinations of parameters. The invention can efficiently and quickly query log data stored in a single server.

【技术实现步骤摘要】

本专利技术涉及一种用于服务器的日志存储和查询方法,特别涉及一种可快速查询的应用于单机服务器中的日志存储和查询方法。
技术介绍
对于一个简单的单机关系型数据库系统来说,数据的查询是通过把查询条件组合成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)每个所述的日志分表对应一个所述的日志分区映射表,该日志分区映射表存放该日志分表中出现的不同的条件或参数组合和该组合中各条件或参数组合对应的日志所在的日志分区编号;日志查询1)用户输入目标日志对应的存放时间段及其具有若干属性下对应的条件或参数组合的查询条件;2)系统首先根据所述目标日志存储的时间段查找该时间段对应的日志分表;3)再在与该日志分表对应的日志分区映射表中,查找与该目标日志具有的条件或参数组合相同的条件或参数组合对应记载的目标日志分区编号;4)之后,在所述的目标日志分区编号指示的目标日志分区中,最终查找到符合条件的目标日志。所述时间段为小时、日或周的整数倍。所述的若干属性包括日志所属的时间戳、电脑IP、包含web访问、邮件及语音在内的通信协议类型、访问IP、流量记录、源地址、目的地址、源端口、目的端口、身高、性别、年龄、体重、学历和籍贯中的多项组合。将产生的日志各属性下的条件或参数的32位bit位之和除以该日志产生时间段对应的日志分表划设的分区的总数,所获之余数作为该日志存放的日志分区的编号。本专利技术在单机服务器的数据库中,将所存放的日志按照该日志产生的时间段及该日志所属的多个属性下的条件或参数的组合,按照一定的规则分布于若干个日志分表和该日志分表下设的若干个分区中,同时,每个日志分表对应一个日志分区映射表,在该日志分区映射表中存放对应日志分表中不同的所述条件或参数的组合及该组合对应的日志存放的分区编号,如此,当用户查询某个日志时,输入所述的条件或参数组合,系统则按照时间段通过对应的日志分区映射表很快查询到与该条件或参数组合对应的日志数据。本专利技术提供一种数据的存储方法,在该存储方法的基础之上,能够高效、快速地查询存放在单机服务器中的日志数据。附图说明图1为现有技术中Mysql数据库划设分区的结构框图。图2为本专利技术的数据库划设分区的结构框图。具体实施方式如图2所示,本专利技术的应用于单机服务器的日志存储和查询方法是在数据库中建立以时间段为首要信息的数据库,之后在此基础上存储或查询所需的日志,其具体步骤如下:1、建立数据库和存储日志1)按以时间段为小时、日或周的整数倍的时间划分时间段,建立一个日志总表,该日志总表中包含各时间段信息、每个时间段内存储的日志的日志条数、赋予每个时间段内的所有日志对应的日志分表的表名和与该日志分表对应的日志分区映射表的表名。2)在对应的日志分表中建立若干个日志分区,将该日志分表中的日志按照以下几种规则存放在设定的日志分区中:规则1:日志分区存放的日志满足以下条件:针对日志所属的若干属性(如电脑IP、包含web访问、邮件及语音在内的通信协议类型、访问IP、流量记录、源地址、目的地址、源端口、目的端口、身高、性别、年龄、体重、学历和籍贯中的多种,即)对应的各条件或参数组合,将相同条件或参数组合的日志和该相同组合中每条日志对应的时间戳以及每条日志对应的日志内容(该日志内容是对该日志详细信息进行的描述,例如,涉及的日志属于安全、运营以及调试范畴的日志,则日志内容描述的详细信息可以为:变更管理、身份认证和授权、数据和系统的访问、威胁管理、性能+容量管理、业务持续性+可用性管理、杂项错误和失败、杂项调试消息等)记载于该日志分区中。规则2:日志分区存放的日志或者满足以下条件:针对日志所属的若干属性(本文档来自技高网
...

【技术保护点】
一种应用于单机服务器的日志存储和查询方法,由以下步骤构成:日志存储1)建立一个日志总表,按设定时间段分别写入若干个包含该时间段存储的日志的日志条数、日志分表的表名和日志分区映射表的表名在内的记录;2)在对应的日志分表中建立若干个日志分区,各日志分区按以下规则存放日志:a.各日志分区存放该时间段内产生的满足以下条件的日志:针对若干属性下对应的各条件或参数组合的日志,将相同条件或参数组合的日志和该相同组合中每条日志对应的时间戳以及每条日志对应的日志内容记载于该日志分区中;b.或者,各日志分区中存放该时间段内产生的满足以下条件的日志:针对若干属性下对应的各条件或参数组合的日志,将相近时间戳内产生的不同条件或参数组合的日志和该不同组合中每条日志对应的时间戳以及每条日志对应的日志内容记载于该日志分区中;c.或者,一部分日志分区采用上述a规则,另一部分日志分区采用b规则;d.或者,在某些日志分区中采用上述a规则与b规则的组合;3)每个所述的日志分表对应一个所述的日志分区映射表,该日志分区映射表存放该日志分表中出现的不同的条件或参数组合和该组合中各条件或参数组合对应的日志所在的日志分区编号;日志查询1)用户输入目标日志对应的存放时间段及其具有若干属性下对应的条件或参数组合的查询条件;2)系统首先根据所述目标日志存储的时间段查找该时间段对应的日志分表;3)再在与该日志分表对应的日志分区映射表中,查找与该目标日志具有的条件或参数组合相同的条件或参数组合对应记载的目标日志分区编号;4)之后,在所述的目标日志分区编号指示的目标日志分区中,最终查找到符合条件的目标日志。...

【技术特征摘要】
1.一种应用于单机服务器的日志存储和查询方法,由以下步骤构成:日志存储1)建立一个日志总表,按设定时间段分别写入若干个包含该时间段存储的日志的日志条数、日志分表的表名和日志分区映射表的表名在内的记录;2)在对应的日志分表中建立若干个日志分区,各日志分区按以下规则存放日志:a.各日志分区存放该时间段内产生的满足以下条件的日志:针对若干属性下对应的各条件或参数组合的日志,将相同条件或参数组合的日志和该相同组合中每条日志对应的时间戳以及每条日志对应的日志内容记载于该日志分区中;b.或者,各日志分区中存放该时间段内产生的满足以下条件的日志:针对若干属性下对应的各条件或参数组合的日志,将相近时间戳内产生的不同条件或参数组合的日志和该不同组合中每条日志对应的时间戳以及每条日志对应的日志内容记载于该日志分区中;c.或者,一部分日志分区采用上述a规则,另一部分日志分区采用b规则;d.或者,在某些日志分区中采用上述a规则与b规则的组合;3)每个所述的日志分表对应一个所述的日志分区映射表,该日志分区映射表存放该日志分表中出现的不同的条件或参数组合和该组合中各条件或参数组合对应的日志所在的日...

【专利技术属性】
技术研发人员:何雪煜
申请(专利权)人:深圳市风云实业有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1