CN107943807A - 一种数据处理方法及存储设备 - Google Patents
一种数据处理方法及存储设备 Download PDFInfo
- Publication number
- CN107943807A CN107943807A CN201610895085.3A CN201610895085A CN107943807A CN 107943807 A CN107943807 A CN 107943807A CN 201610895085 A CN201610895085 A CN 201610895085A CN 107943807 A CN107943807 A CN 107943807A
- Authority
- CN
- China
- Prior art keywords
- catalogue
- index value
- level
- target
- daily record
- 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.)
- Granted
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/10—File systems; File servers
- G06F16/18—File system types
- G06F16/1805—Append-only file systems, e.g. using logs or journals to store data
- G06F16/1815—Journaling file systems
-
- 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
- G06F16/134—Distributed indices
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)
- Telephonic Communication Services (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种数据处理方法及存储设备,以至少解决目前管理员在进行会话的日志数据查询时效率低的问题。方法包括:存储设备接收日志存储请求,该日志存储请求携带会话的日志数据;确定该日志数据的第一级目录的索引值,该第一级目录的索引值用E0表示;确定该日志数据的第二级目录的索引值,该第二级目录的索引值用B0表示;确定该日志数据对应的第三级目录的索引值,该第三级目录的索引值用(X0,Y0)表示,(X0,Y0)代表在以(E0,B0)为原点,以会话的结束时间为横坐标系,以会话的开始时间为纵坐标系的第一直角坐标系中横坐标为X0、纵坐标为Y0的一个坐标点;根据E0、B0和(X0,Y0)存储该日志数据。本发明适用于存储技术领域。
Description
技术领域
本发明涉及存储技术领域,尤其涉及一种数据处理方法及存储设备。
背景技术
高级持续性威胁(advanced persistent threat,APT)是一种利用先进的攻击手段对特定目标进行长期持续性网络攻击的攻击形式。从攻击原理分析,APT攻击的高级性体现在攻击者在发动APT攻击之前需要精确地收集攻击对象的业务流程信息。在收集业务流程信息的过程中,攻击者会主动分析被攻击对象所使用的应用程序的漏洞,利用这些漏洞实施攻击。
为了应对APT,对APT攻击实施过程中的信息收集行为进行溯源,现有技术在企业网接入核心网的位置部署采集器。采集器将采集到的日志数据上报给存储服务器。管理员在发生一些关键的安全事件后,可以通过存储服务器安装的查询软件,例如网络安全智能系统(cybersecurity intelligent system,CIS)对这些关键事件进行溯源,例如通过查询会话的日志数据分析攻击者所使用的攻击网络,攻击模式等等。按时间段对会话的日志数据进行查询是最常用的一种查询方式。按时间段查询会话的日志数据的匹配过程是:存储服务器中存储的每条会话的日志数据至少包含该会话的开始时间和结束时间。管理员输入一个时间段作为查询条件,查询软件取出每条会话的日志数据,如果由该日志数据中包含的会话的开始时间和结束时间构成的时间段与管理员输入的时间段有交集,则确定该会话的日志数据为符合查询条件的会话的日志数据。
存储服务器在接收采集器发送的会话的日志数据时,会记录接收时间,存储服务器按照该接收时间来保存日志数据,例如按照将每天收到的日志数据保存到一个单独的目录的方式,将会话的日志数据存储到非关系型(nosql)数据库中。管理员在进行会话的日志数据查询时,在查询软件提供的页面上输入查询时间段发起查询过程。存储服务器根据该查询时间段选择对应的目录,进一步将该目录中保存的日志数据与输入的查询时间段进行匹配,将符合查询条件的日志数据返回给用户。其中,在nosql数据库中查询每一条会话的日志数据时,需要根据管理员输入的时间段和会话的日志数据中包含的会话本身发生的时间进行比较。
一方面,由于存储服务器存储日志数据时,是按照存储服务器接收日志数据的时间存储会话的日志数据。存储服务器接收日志数据的时间和会话本身发生的时间可能并不一致,符合查询条件的日志数据并非全部保存在根据接收时间生成的目录中,因此可能存在查不全的问题。另一方面,在目录中查询会话的日志数据时,需要遍历该目录中每一条会话的日志数据,来判断用户的查询时间和会话本身发生的时间是否存在交集,进而过滤出符合条件的会话的日志数据。这样需要耗费存储服务器的处理器和存储器之间大量的输入输出(input-output,IO)操作,而且查询结果返回的时间不可控。由于在最坏情况下,目录中保存的最后一个会话的日志数据是符合查询条件的会话的日志数据,因此存储服务器需要遍历目录中所有会话的日志数据才能完成查询,查询效率较低。
发明内容
本发明实施例提供一种数据处理方法及存储设备,以至少解决目前管理员在进行会话的日志数据查询时效率低的问题。
为达到上述目的,本发明实施例提供如下技术方案:
一方面,本发明实施例提供一种数据处理方法,该方法包括:存储设备接收日志存储请求,该日志存储请求携带会话的日志数据,该日志数据包含该会话的开始时间和结束时间;确定该日志数据的第一级目录的索引值,该第一级目录的索引值用E0表示,E0=该会话的结束时间-该会话的结束时间%预设时间长度,其中%表示取余运算;确定该日志数据的第二级目录的索引值,该第二级目录的索引值用B0表示,B0=该会话的开始时间-该会话的开始时间%该预设时间长度;确定该日志数据对应的第三级目录的索引值,该第三级目录的索引值用(X0,Y0)表示,其中,该第三级目录的索引值中的第一向量X0=该会话的结束时间%该预设时间长度,该第三级目录的索引值中的第二向量Y0=该会话的开始时间%该预设时间长度,(X0,Y0)代表在以(E0,B0)为原点,以会话的结束时间为横坐标系,以会话的开始时间为纵坐标系的第一直角坐标系中横坐标为X0、纵坐标为Y0的一个坐标点;根据E0、B0和(X0,Y0)存储该日志数据。
基于本发明实施例提供的上述方法,一方面,由于会话的开始时间和会话的结束时间属于会话本身的时间,也就是说,本发明实施例中,存储设备在存储会话的日志数据时,是依据会话本身的发生时间存储会话的日志数据,这样,符合查询条件的日志数据可以全部保存在根据会话本身的发生时间所确定的存储区域中,因此不存在背景技术中查询不全面的问题。另一方面,由于是通过三级索引的方式存储的日志数据,这样,在存储设备从已存储的日志数据中查询特定时间段的日志数据时,就可以通过三级索引的方式准确定位符合特定时间段的查询结果所在的存储区域,不需要遍历每一个会话的日志数据,从而不仅可以节省存储设备的处理器和存储器之间的IO操作,而且使得查询结果返回的时间可控,并且查询速度较快,从而提升了查询的效率。再一方面,由于第一级目录的索引值是根据会话的结束时间确定的,也就是说,在建立会话的日志数据的目录时,是以会话的结束时间建立的第一级目录。这对于目前会话的结束时间大批量相同的防火墙老化特性来说,在存储设备从已存储的日志数据中查询特定的日志数据时,通过查询第一级目录就可以基本过滤出不符合查询条件的日志数据,从而大大缩小了查询的范围,进一步节省了查询的时间,提升了查询的效率。
在一种可能的设计中,该第一直角坐标系中坐标点(X0,Y0)的坐标值代表会话的开始时间为E0+X0,会话的结束时间为B0+Y0的会话的数量;该根据E0、B0和(X0,Y0)存储该日志数据之后,该方法还包括:将该第一直角坐标系中坐标点(X0,Y0)的坐标值加1。
也就是说,本发明实施例中的会话的日志数据可以采用压缩存储方式进行存储。由于该第一直角坐标系中任意一个坐标点(Xi,Yj)的坐标值代表会话的开始时间为E0+Xi,会话的结束时间为B0+Yj的会话的数量,考虑到该第一直角坐标系中可能大部分坐标点都没有会话相对应,即数值为0的元素数目远远多于非0元素的数目,因此该第一直角坐标系矩阵可视为稀疏矩阵。若将该稀疏矩阵采用压缩存储方式进行存储,基于稀疏矩阵压缩率极高的特性,这样可以在索引占用空间很小的情况下,极大加快特定的日志数据的查询速度,从而不仅进一步节省了查询的时间,提升了查询的效率,而且还提升了系统的查询性能。
在一种可能的设计中,该第一直角坐标系中坐标点(X0,Y0)对应的会话的日志数据可以采用批量存储方式存储。
也就是说,本发明实施例中的会话的日志数据可以采用批量存储方式进行存储。这样,可以方便用户在查询特定的日志数据时,根据时间索引批量获取所需的日志数据,进一步加快了特定的日志数据的查询速度。
在一种可能的设计中,该根据E0、B0和(X0,Y0)存储该日志数据,包括:查询预先建立的所有第一级目录中是否包含索引值为E0的第一级目录;若该所有第一级目录中包含索引值为E0的第一级目录,查询该索引值为E0的第一级目录下的所有第二级目录中是否包含索引值为B0的第二级目录;若该索引值为E0的第一级目录下的所有第二级目录中包含索引值为B0的第二级目录,查询该索引值为B0的第二级目录下的所有第三级目录中是否包含索引值为(X0,Y0)的第三级目录;若该索引值为B0的第二级目录下的所有第三级目录中包含索引值为(X0,Y0)的第三级目录,将该日志数据存储在索引值为E0的第一级目录下的、索引值为B0的第二级目录下的、索引值为(X0,Y0)的第三级目录对应的存储区域;若该索引值为B0的第二级目录下的所有第三级目录中不包含索引值为(X0,Y0)的第三级目录,在该索引值为B0的第二级目录下建立索引值为(X0,Y0)的第三级目录,并将该日志数据存储在建立的第三级目录对应的存储区域;若该索引值为E0的第一级目录下的所有第二级目录中不包含索引值为B0的第二级目录,在该索引值为E0的第一级目录下建立索引值为B0的第二级目录,在建立的第二级目录下建立索引值为(X0,Y0)的第三级目录,并将该日志数据存储在建立的第三级目录对应的存储区域;若该所有第一级目录中不包含索引值为E0的第一级目录,建立索引值为E0的第一级目录;在建立的该索引值为E0的第一级目录下建立索引值为B0的第二级目录;在建立的该索引值为B0的第二级目录下建立索引值为(X0,Y0)的第三级目录,并将该日志数据存储在建立的该索引值为(X0,Y0)的第三级目录对应的存储区域。
在一种可能的设计中,该方法还包括:该存储设备接收日志查询请求,该日志查询请求携带查询时间段,该查询时间段用查询开始时间和查询结束时间来表示;确定该查询时间段对应的第一级目录的索引值,该查询时间段对应的第一级目录的索引值用P0表示,P0=该查询开始时间–该查询开始时间%该预设时间长度;确定该查询时间段对应的第二级目录的索引值,该查询时间段对应的第二级目录的索引值用Q0表示,Q0=该查询结束时间-该查询结束时间%该预设时间长度;确定该查询时间段对应的第三级目录的索引值,该查询时间段对应的第三级目录的索引值用(M0,N0)表示,其中,该第三级目录的索引值中的第一向量M0=该查询开始时间%该预设时间长度,该第三级目录的索引值中的第二向量N0=该查询结束时间%该预设时间长度,(M0,N0)代表在以(P0,Q0)为原点,以查询开始时间为横坐标系,以查询结束时间为纵坐标系的第二直角坐标系中横坐标为M0、纵坐标为N0的一个坐标点;根据P0、Q0和(M0,N0),从已存储的日志数据中查找目标日志数据,其中,该目标日志数据包含的会话的开始时间和结束时间构成的时间段与该查询时间段有交集。
在一种可能的设计中,该根据P0、Q0和(M0,N0),从已存储的日志数据中查找目标日志数据,包括:生成目标第一级目录集合,该目标第一级目录集合包括预先建立的所有第一级目录中索引值不小于P0的至少一个第一级目录;生成目标第二级目录集合,该目标第二级目录集合包括每个目标第一级目录下的索引值不大于Q0的第二级目录,该目标第一级目录为目标第一级目录集合中的一个第一级目录;对目标第二级目录,该目标第二级目录为目标第二级目录集合中的一个第二级目录,执行以下步骤:比较目标第二级目录的索引值、该目标第二级目录所在的目标第一级目录的索引值、P0和Q0的大小,其中B1表示该目标第二级目录的索引值,E1表示该目标第二级目录所在的目标第一级目录的索引值;若E1=B1=P0、且P0≠Q0,查询该目标第二级目录下的目标第三级目录,该目标第三级目录的索引值中的第一向量大于M0;将该目标第三级目录对应的存储区域中的日志数据确定为目标日志数据;或者,若E1=B1=Q0、且Q0≠P0,查询该目标第二级目录下的目标第三级目录,该目标第三级目录的索引值中的第二向量小于N0;将该目标第三级目录对应的存储区域中的日志数据确定为目标日志数据;或者,若E1=B1=Q0=P0,查询该目标第二级目录下的目标第三级目录,该目标第三级目录的索引值中的第二向量不小于N0,且该目标第三级目录的索引值中的第一向量不大于M0;将该目标第三级目录对应的存储区域中的日志数据确定为目标日志数据;否则,将该目标第二级目录对应的存储区域中的日志数据确定为目标日志数据。
基于本发明实施例提供的数据处理方法中的查询过程,可以从存储设备采用本发明实施例提供的数据处理方法中的存储过程存储的日志数据中查询到所有符合查询条件的目标日志数据。
另一方面,本发明实施例提供了一种存储设备,该存储设备具有实现上述方法实施例中存储设备行为的功能。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块。
在一个可能的设计中,存储设备的结构中包括通信接口、处理器和存储器,所述处理器被配置为支持存储设备执行上述方法中相应的功能。所述通信接口用于支持存储设备与其它实体设备之间的通信,比如接收采集器发送的日志存储请求。所述存储器用于与所述处理器耦合,其保存存储设备必要的程序指令和数据。
由于本发明实施例提供的存储设备可以用于执行上述的数据处理方法,因此其所能获得的技术效果也可参考上述方法实施例,此处不再赘述。
再一方面,本发明实施例提供了一种计算机存储介质,用于储存为上述处理器所用的计算机软件指令,其包含用于执行上述方面所设计的程序。
基于本发明实施例提供的数据处理方法及存储设备,存储设备在存储会话的日志数据时,是根据日志数据的第一级目录的索引值E0、日志数据的第二级目录的索引值B0和日志数据的第三级目录的索引值(X0,Y0)存储该日志数据的,其中,E0是根据会话的结束时间确定的,B0是根据会话的开始时间确定的,(X0,Y0)是同时根据会话的结束时间和会话的开始时间确定的。一方面,由于会话的开始时间和会话的结束时间属于会话本身的时间,也就是说,本发明实施例中,存储设备在存储会话的日志数据时,是依据会话本身的发生时间存储会话的日志数据,这样,符合查询条件的日志数据可以全部保存在根据会话本身的发生时间所确定的存储区域中,因此不存在背景技术中查询不全面的问题。另一方面,由于是通过三级索引的方式存储的日志数据,这样,在存储设备从已存储的日志数据中查询特定时间段的日志数据时,就可以通过三级索引的方式准确定位符合特定时间段的查询结果所在的存储区域,不需要遍历每一个会话的日志数据,从而不仅可以节省存储设备的处理器和存储器之间的IO操作,而且使得查询结果返回的时间可控,并且查询速度较快,从而提升了查询的效率。再一方面,由于第一级目录的索引值是根据会话的结束时间确定的,也就是说,在建立会话的日志数据的目录时,是以会话的结束时间建立的第一级目录。这对于目前会话的结束时间大批量相同的防火墙老化特性来说,在存储设备从已存储的日志数据中查询特定的日志数据时,通过查询第一级目录就可以基本过滤出不符合查询条件的日志数据,从而大大缩小了查询的范围,进一步节省了查询的时间,提升了查询的效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例所适用的APT场景的示意图;
图2为本发明实施例提供的一种存储设备的硬件结构示意图;
图3为本发明实施例提供的一种数据处理方法流程示意图一;
图4为本发明实施例提供的一种数据处理方法流程示意图二;
图5为本发明实施例提供的会话1的日志数据的存储方式示意图;
图6为本发明实施例提供的会话2的日志数据的存储示意图;
图7为本发明实施例提供的会话3的日志数据的存储示意图;
图8为本发明实施例提供的会话4的日志数据的存储示意图;
图9为本发明实施例提供的会话5的日志数据的存储示意图;
图10为本发明实施例提供的会话6的日志数据的存储示意图;
图11为本发明实施例提供的会话7的日志数据的存储示意图;
图12为本发明实施例提供的会话8的日志数据的存储示意图;
图13为本发明实施例提供的会话1的日志数据-会话8的日志数据的整体存储示意图;
图14为本发明实施例提供的一种数据处理方法流程示意图三;
图15为本发明实施例提供的一种数据处理方法流程示意图四;
图16为本发明实施例提供的会话的日志数据查询的场景示意图;
图17为本发明实施例提供的会话的日志数据查询的结果示意图;
图18为本发明实施例提供的一种存储设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。
需要说明的是,为了便于清楚描述本发明实施例的技术方案,在本发明的实施例中,采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分,本领域技术人员可以理解“第一”、“第二”等字样并不对数量和执行次序进行限定。
如图1所示,为本发明实施例所适用的APT场景的示意图。该APT场景下,在企业网接入核心网的位置部署采集器,采集器对企业网与互联网之间交互的会话进行监控,并生成会话的日志数据。然后,采集器实时地或者定期地将会话的日志数据发送给存储服务器进行存储,以使得管理员在发生一些关键的安全事件后,可以通过查询会话的日志数据分析攻击者所使用的攻击网络,攻击模式等等。其中,如图1所示,企业网内部的主机可以通过安装在企业所在的楼宇中的交换机或者路由器连接至核心网,核心网中部署多级路由器,以使得主机可以通过核心网的路由器访问核心网的数据。
下面将基于图1所示的APT场景,对本发明实施例提供的数据处理方法进行介绍,该数据处理方法可以是由存储设备执行的,存储设备可以是附图1中的存储服务器。如图3所示,为本发明实施例提供的一种数据处理方法,用于在接收日志存储请求之后,存储日志存储请求携带的会话日志。其中,日志存储请求中可以携带一条日志数据或多条日志数据,每条日志数据用于描述一个会话,不同日志数据所描述的会话不同。由于存储设备对各条日志数据执行相类似的处理过程,为简明起见以下步骤S301至S305以一条日志数据为例介绍本申请实施例提供的数据处理方法,具体如下。
S301、存储设备接收日志存储请求,该日志存储请求携带会话的日志数据,该日志数据包含该会话的开始时间和结束时间。
S302、存储设备确定该日志数据的第一级目录的索引值,该第一级目录的索引值用E0表示。
其中,E0=该会话的结束时间-该会话的结束时间%预设时间长度,其中%表示取余运算。
S303、存储设备确定该日志数据的第二级目录的索引值,该第二级目录的索引值用B0表示。
其中,B0=该会话的开始时间-该会话的开始时间%预设时间长度。
S304、存储设备确定该日志数据对应的第三级目录的索引值,该第三级目录的索引值用(X0,Y0)表示。
其中,该第三级目录的索引值中的第一向量X0=该会话的结束时间%预设时间长度,该第三级目录的索引值中的第二向量Y0=该会话的开始时间%预设时间长度,(X0,Y0)代表在以(E0,B0)为原点,以会话的结束时间为横坐标系,以会话的开始时间为纵坐标系的第一直角坐标系中横坐标为X0、纵坐标为Y0的一个坐标点。
S305、存储设备根据E0、B0和(X0,Y0)存储该日志数据。
具体的,本发明实施例步骤S301中:
若存储设备具体可以是图1中的存储服务器,则存储设备接收的日志存储请求可以是图1中的采集器发送的。
其中,会话的日志数据除了包含会话的开始时间和结束时间,还可以包含会话的五元组信息等其它信息,本发明实施例对此不作具体限定。其中,五元组信息具体包括源网络协议(internet protocol,IP)地址,源端口,目的IP地址,目的端口,和传输层协议。
具体的,本发明实施例步骤S302中:
存储设备可以基于第一预设算法,根据会话的结束时间和预设时间长度,确定日志数据的第一级目录的索引值E0。
其中,该第一预设算法为:E=会话的结束时间-会话的结束时间%预设时间长度,E表示日志数据的第一级目录的索引值,%表示取余运算。第一预设算法适用于计算各条日志数据各自的第一级目录的索引值。
具体的,本发明实施例步骤S303中:
存储设备可以基于第二预设算法,根据会话的开始时间和步骤S302中的预设时间长度,确定日志数据的第二级目录的索引值B0。
其中,该第二预设算法为:B=会话的开始时间–会话的开始时间%预设时间长度,B表示日志数据的第二级目录的索引值。第二预设算法适用于计算各条日志数据各自的第二级目录的索引值。
具体的,本发明实施例步骤S304中:
存储设备可以基于第三预设算法,根据会话的结束时间和步骤S302中的预设时间长度,确定日志数据的第三级目录的索引值中的第一向量X0。
其中,该第三预设算法为:X=会话的结束时间%预设时间长度,X表示日志数据的第三级目录的索引值中的第一向量。第三预设算法适用于计算各条日志数据各自的第三级目录的索引值中的第一向量。
存储设备可以基于第四预设算法,根据会话的开始时间和步骤S302中的预设时间长度,确定日志数据的第三级目录的索引值中的第二向量Y0。
其中,该第四预设算法为:Y=会话的开始时间%预设时间长度,Y表示日志数据的第三级目录的索引值中的第二向量。第四预设算法适用于计算各条日志数据各自的第三级目录的索引值中的第二向量。
需要说明的是,上述步骤S302-S304中的预设时间长度可以是任意时间长度值,比如可以为1小时,或者可以为30分钟,等等,本发明实施例对此不作具体限定。
假设该预设时间长度为1小时,也就是3600秒,则步骤S304中的第一直角坐标系中的坐标点可以构成一个3600*3600的矩阵或者自定义的矩阵;假设该预设时间长度为30分钟,也就是1800秒,则步骤S304中的第一直角坐标系中的坐标点可以构成一个1800*1800的矩阵或者自定义的矩阵,本发明实施例对步骤S304中的第一直角坐标系中的坐标点的划分方式不做具体限定。
基于本发明实施例提供的数据处理方法,本发明实施例中,存储设备在存储会话的日志数据时,是根据日志数据的第一级目录的索引值E0、日志数据的第二级目录的索引值B0和日志数据的第三级目录的索引值(X0,Y0)存储该日志数据的,其中,E0是根据会话的结束时间确定的,B0是根据会话的开始时间确定的,(X0,Y0)是同时根据会话的结束时间和会话的开始时间确定的。一方面,由于会话的开始时间和会话的结束时间属于会话本身的时间,也就是说,本发明实施例中,存储设备在存储会话的日志数据时,是依据会话本身的发生时间存储会话的日志数据,这样,符合查询条件的日志数据可以全部保存在根据会话本身的发生时间所确定的存储区域中,因此不存在背景技术中查询不全面的问题。另一方面,由于是通过三级索引的方式存储的日志数据,这样,在存储设备从已存储的日志数据中查询特定时间段的日志数据时,就可以通过三级索引的方式准确定位符合特定时间段的查询结果所在的存储区域,不需要遍历每一个会话的日志数据,从而不仅可以节省存储设备的处理器和存储器之间的IO操作,而且使得查询结果返回的时间可控,并且查询速度较快,从而提升了查询的效率。再一方面,由于第一级目录的索引值是根据会话的结束时间确定的,也就是说,在建立会话的日志数据的目录时,是以会话的结束时间建立的第一级目录。这对于目前会话的结束时间大批量相同的防火墙老化特性来说,在存储设备从已存储的日志数据中查询特定的日志数据时,通过查询第一级目录就可以基本过滤出不符合查询条件的日志数据,从而大大缩小了查询的范围,进一步节省了查询的时间,提升了查询的效率。
可选地,上述步骤S304中的第一直角坐标系中任意一个坐标点(Xi,Yj)代表会话的开始时间为E0+Xi,会话的结束时间为B0+Yj的一个会话,第一直角坐标系中每一个坐标点(Xi,Yj)的坐标值代表开始时间为E0+Xi,结束时间为B0+Yj的会话的数量。
比如,当i=0,j=0时,上述步骤S304中第一直角坐标系中的坐标点(X0,Y0)代表会话的开始时间为E0+X0,会话的结束时间为B0+Y0的一个会话,坐标点(X0,Y0)的坐标值代表会话的开始时间为E0+X0,会话的结束时间为B0+Y0的会话的数量。
进而,在上述步骤S305之后,还可以包括:将第一直角坐标系中坐标点(X0,Y0)的坐标值加1。
也就是说,本发明实施例中的会话的日志数据可以采用压缩存储方式进行存储。由于该第一直角坐标系中任意一个坐标点(Xi,Yj)的坐标值代表会话的开始时间为E0+Xi,会话的结束时间为B0+Yj的会话的数量,考虑到该第一直角坐标系中可能大部分坐标点都没有会话相对应,即数值为0的元素数目远远多于非0元素的数目,因此该第一直角坐标系矩阵可视为稀疏矩阵。若将该稀疏矩阵采用压缩存储方式进行存储,基于稀疏矩阵压缩率极高的特性,这样可以在索引占用空间很小的情况下,极大加快特定的日志数据的查询速度,从而不仅进一步节省了查询的时间,提升了查询的效率,而且还提升了系统的查询性能。
可选地,上述步骤S304中的第一直角坐标系中任意一个坐标点(Xi,Yj)对应的会话的日志数据可以采用批量存储方式存储。具体可以如表一所示,其中,key为整型(int)4字节,低16位代表Y值,高16位代表X值,value为会话数据块。
表一
key | value |
采用批量存储方式存储会话的日志数据可以方便用户在查询特定的日志数据时,根据时间索引批量获取所需的日志数据,进一步加快了特定的日志数据的查询速度。
可选的,如图4所示,上述步骤S305具体可以包括如下步骤S3051-S3057:
S3051、存储设备查询预先建立的所有第一级目录中是否包含索引值为E0的第一级目录。
S3052、若该所有第一级目录中包含索引值为E0的第一级目录,存储设备查询该索引值为E0的第一级目录下的所有第二级目录中是否包含索引值为B0的第二级目录。
S3053、若该索引值为E0的第一级目录下的所有第二级目录中包含索引值为B0的第二级目录,存储设备查询该索引值为B0的第二级目录下的所有第三级目录中是否包含索引值为(X0,Y0)的第三级目录。
S3054、若该索引值为B0的第二级目录下的所有第三级目录中包含索引值为(X0,Y0)的第三级目录,存储设备将该日志数据存储在索引值为E0的第一级目录下的、索引值为B0的第二级目录下的、索引值为(X0,Y0)的第三级目录对应的存储区域。
S3055、若该索引值为B0的第二级目录下的所有第三级目录中不包含索引值为(X0,Y0)的第三级目录,存储设备在该索引值为B0的第二级目录下建立索引值为(X0,Y0)的第三级目录,并将该日志数据存储在建立的第三级目录对应的存储区域。
S3056、若该索引值为E0的第一级目录下的所有第二级目录中不包含索引值为B0的第二级目录,存储设备在该索引值为E0的第一级目录下建立索引值为B0的第二级目录,在建立的第二级目录下建立索引值为(X0,Y0)的第三级目录,并将该日志数据存储在建立的第三级目录对应的存储区域。
S3057、若该所有第一级目录中不包含索引值为E0的第一级目录,建立索引值为E0的第一级目录;在建立的该索引值为E0的第一级目录下建立索引值为B0的第二级目录;在建立的该索引值为B0的第二级目录下建立索引值为(X0,Y0)的第三级目录,并将该日志数据存储在建立的该索引值为(X0,Y0)的第三级目录对应的存储区域。
下面将结合一个具体实例对上述S3051-S3057中存储设备根据E0、B0和(X0,Y0)存储日志数据的方式进行说明。
示例性的,假设存储设备依次接收到会话1的日志数据、会话2的日志数据、会话3的日志数据、会话4的日志数据、会话5的日志数据、会话6的日志数据会话7的日志数据和会话8的日志数据,其中,各条日志数据中分别包含的会话1至会话8的相关信息如表二所示。
表二
假设预设时间长度为1小时,也就是3600秒,在接收会话1的日志数据至会话8的日志数据之前,存储设备中暂未存储任何会话的日志数据,则根据本发明实施例提供的数据处理方法,会话1的日志数据至会话8的日志数据的存储过程可以如下:
考虑到公式计算时单位的一致性,这里首先将表二的会话的开始时间和会话的结束时间分别转化成以秒(s)为单位的时间,如表三所示:
表三
需要说明的是,本发明实施例中表二和表三之间关于时间与秒之间的转换可以通过时间转换计算器得到,依据的原理是将当前的时间转化成存储的某个设定的起点到当前的秒数,此处不予以详细赘述。
若预设时间长度为1小时,也就是3600秒,则存储设备在接收到会话1的日志数据至会话8的日志数据之后,可以分别根据上述的第一预设算法、第二预设算法、第三预设算法和第四预设算法,计算出上述表二中每个会话的日志数据对应的第一级目录的索引值E0、第二级目录的索引值B0和第三级目录的索引值(X0,Y0),如表四所示:
表四
会话标识 | E0 | X0 | B0 | Y0 |
会话1 | 1466726400 | 3030 | 1466722800 | 1830 |
会话2 | 1466733600 | 1200 | 1466730000 | 1230 |
会话3 | 1466737200 | 3030 | 1466733600 | 3030 |
会话4 | 1466740800 | 1800 | 1466737200 | 3120 |
会话5 | 1466744400 | 630 | 1466740800 | 1200 |
会话6 | 1466737200 | 3570 | 1466726400 | 3030 |
会话7 | 1466744400 | 630 | 1466733600 | 1200 |
会话8 | 1466730000 | 2430 | 1466730000 | 30 |
其中,计算每个会话的日志数据对应的第一级目录的索引值E0是为了确定会话的结束时间所在的小时,进而可以小时为粒度对会话的结束时间进行第一级索引存储。
其中,计算每个会话的日志数据对应的第二级目录的索引值B0是为了确定会话的开始时间所在的小时,进而可以小时为粒度对会话的开始时间进行第二级索引存储。
其中,计算每个会话的日志数据对应的第三级目录的索引值(X0,Y0)是为了获得会话的结束时间减去会话的结束时间所在的小时后的秒数,以及获得会话的开始时间减去会话的开始时间所在的小时后的秒数,使得最终可以通过第一直角坐标系中的坐标点表征会话的开始时间和会话的结束时间。其中,如上所述,第一直角坐标系中任意一个坐标点(Xi,Yj)代表会话的开始时间为E0+Xi,会话的结束时间为B0+Yj的一个会话。
然后,对于会话1的日志数据,由于所有第一级目录中不包含索引值为E0=1466726400的第一级目录,因此建立索引值为E0=1466726400的第一级目录;并根据该第二级目录的索引值B0=1466722800,在该索引值为E0=1466726400的第一级目录下建立索引值为B0=1466722800的第二级目录;进而,根据该第三级目录的索引值(X0,Y0)=(3030,1830),在该索引值为B0=1466722800的第二级目录下建立索引值为(X0,Y0)=(3030,1830)的第三级目录,并将该会话1的日志数据存储在该建立的索引值为(X0,Y0)=(3030,1830)的第三级目录对应的存储区域,结果如图5所示。
对于会话2的日志数据,由于所有第一级目录中不包含索引值为E0=1466733600的第一级目录,因此建立索引值为E0=1466733600的第一级目录;并根据该第二级目录的索引值B0=1466730000,在该索引值为E0=1466733600的第一级目录下建立索引值为B0=1466730000第二级目录;进而,根据该第三级目录的索引值(X0,Y0)=(1200,1230),在该索引值为B0=1466730000的第二级目录下建立索引值为(X0,Y0)=(1200,1230)的第三级目录,并将该会话2的日志数据存储在该建立的索引值为(X0,Y0)=(1200,1230)的第三级目录对应的存储区域,结果如图6所示。
对于会话3的日志数据,由于所有第一级目录中不包含索引值为E0=1466737200的第一级目录,因此建立索引值为E0=1466737200的第一级目录;并根据该第二级目录的索引值B0=1466733600,在该索引值为E0=1466737200的第一级目录下建立索引值为B0=1466733600第二级目录;进而,根据该第三级目录的索引值(X0,Y0)=(3030,3030),在该索引值为B0=1466733600的第二级目录下建立索引值为(X0,Y0)=(3030,3030)的第三级目录,并将该会话3的日志数据存储在该建立的索引值为(X0,Y0)=(3030,3030)的第三级目录对应的存储区域,结果如图7所示。
对于会话4的日志数据,由于所有第一级目录中不包含索引值为E0=1466740800的第一级目录,因此建立索引值为E0=1466740800的第一级目录;并根据该第二级目录的索引值B0=1466737200,在该索引值为E0=1466740800的第一级目录下建立索引值为B0=1466737200第二级目录;进而,根据该第三级目录的索引值(X0,Y0)=(1800,3120),在该索引值为B0=1466737200的第二级目录下建立索引值为(X0,Y0)=(1800,3120)的第三级目录,并将该会话4的日志数据存储在该建立的索引值为(X0,Y0)=(1800,3120)的第三级目录对应的存储区域,结果如图8所示。
对于会话5的日志数据,由于所有第一级目录中不包含索引值为E0=1466744400的第一级目录,因此建立索引值为E0=1466744400的第一级目录;并根据该第二级目录的索引值B0=1466740800,在该索引值为E0=1466744400的第一级目录下建立索引值为B0=1466740800第二级目录;进而,根据该第三级目录的索引值(X0,Y0)=(630,1200),在该索引值为B0=1466740800的第二级目录下建立索引值为(X0,Y0)=(630,1200)的第三级目录,并将该会话5的日志数据存储在该建立的索引值为(X0,Y0)=(630,1200)的第三级目录对应的存储区域,结果如图9所示。
对于会话6的日志数据,由于所有第一级目录中包含索引值为E0=1466737200的第一级目录,因此不需要建立索引值为E0=1466740800的第一级目录,但是索引值为E0=1466737200的第一级目录下的所有第二级目录中不包含索引值为B0=1466726400第二级目录,因此,需要在索引值为E0=1466737200的第一级目录下建立索引值为B0=1466726400第二级目录;进而,根据该第三级目录的索引值(X0,Y0)=(3570,3030),在该索引值为B0=1466726400的第二级目录下建立索引值为(X0,Y0)=(3570,3030)的第三级目录,并将该会话6的日志数据存储在该建立的索引值为(X0,Y0)=(3570,3030)的第三级目录对应的存储区域,结果如图10所示。
对于会话7的日志数据,由于所有第一级目录中包含索引值为E0=1466744400的第一级目录,因此不需要建立索引值为E0=1466744400的第一级目录,但是索引值为E0=1466744400的第一级目录下的所有第二级目录中不包含索引值为B0=1466733600第二级目录,因此,需要在索引值为E0=1466744400的第一级目录下建立索引值为B0=1466733600第二级目录;进而,根据该第三级目录的索引值(X0,Y0)=(630,1200),在该索引值为B0=1466733600的第二级目录下建立索引值为(X0,Y0)=(630,1200)的第三级目录,并将该会话7的日志数据存储在该建立的索引值为(X0,Y0)=(630,1200)的第三级目录对应的存储区域,结果如图11所示。
对于会话8的日志数据,由于所有第一级目录中不包含索引值为E0=1466730000的第一级目录,因此建立索引值为E0=1466730000的第一级目录;并根据该第二级目录的索引值B0=1466730000,在该索引值为E0=1466730000的第一级目录下建立索引值为B0=1466730000第二级目录;进而,根据该第三级目录的索引值(X0,Y0)=(2430,30),在该索引值为B0=1466730000的第二级目录下建立索引值为(X0,Y0)=(2430,30)的第三级目录,并将该会话8的日志数据存储在该建立的索引值为(X0,Y0)=(2430,30)的第三级目录对应的存储区域,结果如图12所示。
因此,最终存储设备中存储的日志数据的信息可以如图13所示。
需要说明的是,简单起见,图6至图13所示的第三级目录有的并未以第一直角坐标系中坐标点的方式予以显示,而仅是给出会话的日志数据在第一直角坐标系中对应的坐标点的坐标。本领域技术人员可以理解,该坐标点的坐标即为建立第三级目录时所需的第一直角坐标系中的坐标点的坐标。
另外,如上所述,第一直角坐标系中任意一个坐标点(Xi,Yj)的坐标值代表会话的开始时间为E0+Xi,会话的结束时间为B0+Yj的会话的数量,存储设备根据E0、B0和(X0,Y0)存储日志数据之后,还可以包括:将第一直角坐标系中坐标点(X0,Y0)的坐标值加1。因此,在图5至图13中,第一直角坐标系中坐标点(X0,Y0)的坐标值1表示该坐标点对应的时间范围内发生的会话的数量为1。
另外,在图5至图13中,还分别给出了批量存储第一直角坐标系中任意一个坐标点(Xi,Yj)对应的会话的日志数据的格式,具体如箭头方向所指,此处不再赘述。
需要说明的是,上述示例以第一直角坐标系中的坐标点可以构成一个3600*3600的矩阵为例进行说明,当然,该第一直角坐标系中的坐标点还可以构成一个自定义的矩阵,本发明实施例对此不作具体限定。
需要说明的是,本发明实施例以会话的结束时间为横坐标系,会话的开始时间为纵坐标系为例计算会话的日志数据在第一直角坐标系上的对应坐标点(X0,Y0),当然,也可以以会话的开始时间为横坐标系,会话的结束时间作为纵坐标系为例计算会话的日志数据在直角坐标系上的对应坐标点(X0,Y0),本发明实施例对此不作具体限定。
进一步的,本发明实施例还提供一种数据处理方法,用于从存储设备已存储的日志数据中查询特定的日志数据,存储设备已存储的日志数据可以是采用图3或图4所示的方法存储的。查询过程具体如图14所示,包括步骤S1401-S1405:
S1401、存储设备接收日志查询请求,该日志查询请求携带查询时间段,该查询时间段用查询开始时间和查询结束时间来表示。
S1402、存储设备确定该查询时间段对应的第一级目录的索引值,该查询时间段对应的第一级目录的索引值用P0表示。
其中,P0=该查询开始时间-该查询开始时间%预设时间长度。
S1403、存储设备确定该查询时间段对应的第二级目录的索引值,该查询时间段对应的第二级目录的索引值用Q0表示。
其中,Q0=该查询结束时间-该查询结束时间%预设时间长度;
S1404、存储设备确定该查询时间段对应的第三级目录的索引值,该查询时间段对应的第三级目录的索引值用(M0,N0)表示。
其中,该第三级目录的索引值中的第一向量M0=该查询开始时间%预设时间长度,该第三级目录的索引值中的第二向量N0=该查询结束时间%预设时间长度,(M0,N0)代表在以(P0,Q0)为原点,以查询开始时间为横坐标系,以查询结束时间为纵坐标系的第二直角坐标系中横坐标为M0、纵坐标为N0的一个坐标点。
S1405、存储设备根据P0、Q0和(M0,N0),从已存储的日志数据中查找目标日志数据。
其中,该目标日志数据包含的会话的开始时间和结束时间构成的时间段与该查询时间段有交集。
具体的,本发明实施例步骤S1402中:
存储设备可以基于第五预设算法,根据查询开始时间和预设时间长度,确定该查询时间段对应的第一级目录的索引值P0。
其中,该第五预设算法为:P=查询开始时间–查询开始时间%预设时间长度,P表示查询时间段对应的第一级目录的索引值。
具体的,本发明实施例步骤S1403中:
存储设备可以基于第六预设算法,根据查询结束时间和预设时间长度,确定该查询时间段对应的第二级目录的索引值Q0。
其中,该第六预设算法为:Q=查询结束时间-查询结束时间%预设时间长度,Q表示查询时间段对应的第二级目录的索引值。
具体的,本发明实施例步骤S1404中:
存储设备可以基于第七预设算法,根据查询开始时间和预设时间长度,确定该查询时间段对应的第三级目录的索引值(M0,N0)中的第一向量M0。
其中,该第七预设算法为:M=查询开始时间%预设时间长度,M表示查询时间段对应的第三级目录的索引值(M,N)中的第一向量,(M,N)代表在以(P0,Q0)为原点,以查询开始时间为横坐标系,以查询结束时间为纵坐标系的第二直角坐标系中横坐标为M、纵坐标为N的一个坐标点。
存储设备可以基于第八预设算法,根据查询结束时间和预设时间长度,确定该查询时间段对应的第三级目录的索引值(M0,N0)中的第二向量N0。
其中,该第八预设算法为:N=查询结束时间%预设时间长度,N表示在查询时间段对应的第三级目录的索引值(M,N)中的第二向量。
需要说明的是,上述步骤S1402-S1404中的预设时间长度与上述步骤S302-S304中的预设时间长度相同,以保证能根据建立的三级索引查询到特定的日志数据。
一种可能的实现方式中,如图15所示,步骤S1405具体包括如下步骤S14051-S14053:
S14051、存储设备生成目标第一级目录集合,该目标第一级目录集合包括预先建立的所有第一级目录中索引值不小于P0的至少一个第一级目录。
S14052、存储设备生成目标第二级目录集合,该目标第二级目录集合包括每个目标第一级目录下的索引值不大于Q0的第二级目录。
其中,该目标第一级目录为目标第一级目录集合中的一个第一级目录。
S14053、存储设备对目标第二级目录执行以下步骤T1-T5,其中,该目标第二级目录为目标第二级目录集合中的一个第二级目录:
T1、存储设备比较B1、E1、P0和Q0的大小。
其中,B1表示该目标第二级目录的索引值,E1表示该目标第二级目录所在的目标第一级目录的索引值。
T2、若E1=B1=P0、且P0≠Q0,存储设备查询该目标第二级目录下的目标第三级目录,该目标第三级目录的索引值中的第一向量大于M0;将该目标第三级目录对应的存储区域中的日志数据确定为目标日志数据。
T3、若E1=B1=Q0、且Q0≠P0,存储设备查询该目标第二级目录下的目标第三级目录,该目标第三级目录的索引值中的第二向量小于N0;将该目标第三级目录对应的存储区域中的日志数据确定为目标日志数据。
T4、若E1=B1=Q0=P0,存储设备查询该目标第二级目录下的目标第三级目录,该目标第三级目录的索引值中的第二向量不小于N0,且该目标第三级目录的索引值中的第一向量不大于M0;将该目标第三级目录对应的存储区域中的日志数据确定为目标日志数据。
T5、否则,存储设备将该目标第二级目录对应的存储区域中的日志数据确定为目标日志数据。
基于图15中的数据处理方法中的查询过程,可以查询到所有符合查询条件的目标日志数据。下面通过一个具体示例进行说明。
示例性的,假设预设时间长度为1小时,也就是3600秒(s)。存储设备中目前存储有如表二所示的会话1的日志数据至会话8的日志数据。为了直观起见,用不同的矩形分别表示各个会话与时间轴的相对关系。如图16所示,黑色边框代表管理员输入的查询时间段,其中,输入的查询开始时间为2016/6/24 9:50:30,查询结束时间为2016/6/24 11:59:30。并且假设如表二所示的会话1的日志数据至会话8的日志数据是采用图3或图4所示的方法存储的,也就是说,每个会话的日志数据对应的第一级目录的索引值E0、第二级目录的索引值B0和第三级目录的索引值(X0,Y0)可以如表四所示,最终存储设备中存储的日志数据的信息可以如图13所示。则根据图15中提供的数据处理方法中的查询过程,从已存储的日志数据中查找目标日志数据的过程可以如下:
第一步,考虑到公式计算时单位的一致性,这里首先需要将预设时间长度、查询开始时间和查询结束时间分别转化成以秒(s)为单位的时间,如下:
1小时=3600s;
查询开始时间2016/6/24 9:50:30=1466733030s;
查询结束时间2016/6/24 11:59:30=1466740770s。
第二步,基于第五预设算法确定该查询时间段对应的第一级目录的索引值P0,基于第六预设算法确定该查询时间段对应的第二级目录的索引值Q0,基于第七预设算法和第八预设算法,确定该查询时间对应的第三级目录的索引值(M0,N0),如下:
P0=查询开始时间-查询开始时间%预设时间长度
=1466733030-1466733030%3600=1466730000;
Q0=查询结束时间-查询结束时间%预设时间长度
=1466740770-1466740770%3600=1466737200。
M0=查询开始时间%预设时间长度=1466740770%3600=3030。
N0=查询结束时间%预设时间长度=1466740770%3600=3570。
第三步,根据P0(对应时间为2016/6/24 9:00:00)进行第一级目录索引,生成目标第一级目录集合。
根据步骤S14051可知,该目标第一级目录集合包括预先建立的所有第一级目录中索引值不小于P0的至少一个第一级目录。结合图13可以得出,预先建立的所有第一级目录中索引值不小于P0=1466730000的至少一个第一级目录包括:索引值为1466733600(对应时间为2016/6/24 10:00:00)的第一级目录、索引值为1466737200(对应时间为2016/6/2411:00:00)的第一级目录、索引值为1466710800(对应时间为2016/6/24 12:00:00)的第一级目录、索引值为1466714400(对应时间为2016/6/24 13:00:00)的第一级目录、索引值为1466730000(对应时间为2016/6/24 9:00:00)的第一级目录,因此,该目标第一级目录集合包括{索引值为1466733600第一级目录;索引值为1466737200的第一级目录;索引值为1466710800的第一级目录;索引值为1466714400的第一级目录;索引值为1466730000的第一级目录}。
而对于索引值为1466726400(对应时间为2016/6/24 8:00:00)的第一级目录,由于该第一级目录的索引值1466726400小于P0=1466730000,因此被过滤掉,如图17所示。
结合图16可以看出,该索引值为1466726400的第一级目录下的会话1的日志数据位于查询时间段的左侧,会话的开始时间和结束时间构成的时间段与查询时间段无交集,过滤掉是合理的。
第四步,根据Q0(对应时间为2016/6/24 11:00:00)进行第二级目录索引,生成目标第二级目录集合。
根据步骤S14052可知,该目标第二级目录集合包括每个目标第一级目录下的索引值不大于Q0的第二级目录。其中,该目标第一级目录为目标第一级目录集合中的一个第一级目录。下面依次对第三步中获得的目标第一级目录集合种的目标第一级目录进行分析如下:
对于图17中索引值为1466733600第一级目录,该第一级目录下的索引值不大于Q0=1466737200的第二级目录包括索引值为1466730000(对应时间为2016/6/24 9:00:00)的第二级目录。
对于图17中索引值为1466737200的第一级目录,该第一级目录下的索引值不大于Q0=1466737200的第二级目录包括索引值为1466733600(对应时间为2016/6/24 10:00:00)的第二级目录和索引值为1466726400(对应时间为2016/6/24 8:00:00)的第二级目录。
对于图17中索引值为1466710800的第一级目录,该第一级目录下的索引值不大于Q0=1466737200的第二级目录包括索引值为1466737200(对应时间为2016/6/24 11:00:00)的第二级目录。
对于图17中索引值为1466714400的第一级目录,该第一级目录下的索引值不大于Q0=1466737200的第二级目录包括索引值为1466733600(对应时间为2016/6/24 10:00:00)的第二级目录。
对于图17中索引值为1466730000的第一级目录,该第一级目录下的索引值不大于Q0=1466737200的第二级目录包括索引值为1466730000(对应时间为2016/6/24 9:00:00)的第二级目录。
综上,该目标第二级目录集合包括{索引值为1466733600的第一级目录下的、索引值为1466730000的第二级目录;索引值为1466737200的第一级目录下的、索引值为1466733600的第二级目录和索引值为1466726400的第二级目录;索引值为1466710800的第一级目录下的、索引值为1466737200的第二级目录;索引值为1466714400的第一级目录下的、索引值为1466733600的第二级目录;索引值为1466730000的第一级目录下的、索引值为1466730000的第二级目录}。
而对于图17中索引值为1466714400的第一级目录下的、索引值为1466740800(对应时间为2016/6/24 12:00:00)的第二级目录,由于该第二级目录的索引值1466740800大于Q0=1466737200,因此被过滤掉,如图17所示。
结合图16可以看出,该索引值为1466714400的第一级目录下的、索引值为1466740800的第二级目录下的会话5的日志数据位于查询时间段的右侧,会话的开始时间和结束时间构成的时间段与查询时间段无交集,过滤掉是合理的。
第五步,对目标第二级目录进行分析,确定是否进行第三级索引。其中,该目标第二级目录为目标第二级目录集合中的一个第二级目录。下面依次对第四步中获得的目标第二级目录集合中的目标第二级目录进行分析如下:
对于图17中索引值为1466733600第一级目录下的、索引值为1466730000的第二级目录,由于E1=1466733600,B1=1466730000,P0=1466730000,Q0=1466737200,显然E1≠B1,直接按照上述步骤T5中的方式处理,将该目标第二级目录对应的存储区域中的日志数据确定为目标日志数据,如图17中的会话2的日志数据。
结合图16可以看出,会话2的日志数据位于查询时间段的左边界,会话的开始时间和结束时间构成的时间段与查询时间段有交集,符合查询条件是合理的。
需要说明的是,为了匹配查询过程,此处的E1表示在查询的过程中目标第二级目录所在的目标第一级目录的索引值,B1表示目标第二级目录的索引值,以用于和上述存储过程中存储的所有日志数据的第一级目录的索引值E0和第二级目录的索引值B0进行区分。但是,在依次对第四步中获得的目标第二级目录集合中的目标第二级目录进行分析时,对于该目标第二级目录集合中的某一个索引值为E0第一级目录下的、索引值为B0的第二级目录,从数值上来看,E1=E0,B1=B0。该说明适用于下述每个会话的日志数据,在此进行统一说明,以下不再赘述。
对于图17中索引值为1466737200的第一级目录下的、索引值为1466733600的第二级目录,由于E1=1466737200,B1=1466733600,P0=1466730000,Q0=1466737200,显然E1≠B1,直接按照上述步骤T5中的方式处理,将该目标第二级目录对应的存储区域中的日志数据确定为目标日志数据,如图17中的会话3的日志数据。
结合图16可以看出,会话3的日志数据位于查询时间段的范围内,会话的开始时间和结束时间构成的时间段与查询时间段有交集,符合查询条件是合理的。
对于图17中索引值为1466737200的第一级目录下的、索引值为1466726400的第二级目录,由于E1=1466737200,B1=1466726400,P0=1466730000,Q0=1466737200,显然E1≠B1,直接按照上述步骤T5中的方式处理,将该目标第二级目录对应的存储区域中的日志数据确定为目标日志数据,如图17中的会话6的日志数据。
结合图16可以看出,会话6的日志数据跨越了整个查询时间段,会话的开始时间和结束时间构成的时间段与查询时间段有交集,符合查询条件是合理的。
对于图17中索引值为1466710800的第一级目录下的、索引值为1466737200的第二级目录,由于E1=1466740800,B1=1466737200,P0=1466730000,Q0=1466737200,显然E1≠B1,直接按照上述步骤T5中的方式处理,将该目标第二级目录对应的存储区域中的日志数据确定为目标日志数据,如图17中的会话4的日志数据。
结合图16可以看出,会话4的日志数据位于查询时间段的右边界,会话的开始时间和结束时间构成的时间段与查询时间段有交集,符合查询条件是合理的。
对于图17中索引值为1466714400的第一级目录下的、索引值为1466733600的第二级目录,由于E1=1466744400,B1=1466733600,P=1466730000,Q=1466737200,显然E1≠B1,直接按照上述步骤T5中的方式处理,将该目标第二级目录对应的存储区域中的日志数据确定为目标日志数据,如图17中的会话7的日志数据。
结合图16可以看出,会话7的日志数据位于查询时间段的右边界,会话的开始时间和结束时间构成的时间段与查询时间段有交集,符合查询条件是合理的。
对于图17中索引值为1466730000的第一级目录下的、索引值为1466730000的第二级目录,由于E1=1466730000,B1=1466730000,P0=1466730000,Q0=1466737200,显然E1=B1=P0,且P0≠Q0,因此需要根据上述步骤T2中的方式对该目标第二级目录下的所有第三级目录进行第三级索引,如图17中的会话8的日志数据的第三级目录。
由于会话8的日志数据的第三级目录的索引值(X0,Y0)=(2430,20),该索引值中的第一向量X0=2430,而查询时间段对应的第三级目录的索引值(M0,N0)=(3030,3570),该索引值中的第一向量M0=3030,2430<3030,即X0<M0,不符合上述T2中的查询条件,因此会话8的日志数据被过滤掉,如图17所示。
结合图16可以看出,会话8的日志数据位于查询时间段的左侧,会话的开始时间和结束时间构成的时间段与查询时间段无交集,过滤掉是合理的。
综上,根据图15中提供的数据处理方法中的查询过程查询时间段为2016/6/24 9:50:30—2016/6/24 11:59:30的日志数据,可以查询到目标日志数据包括会话2的日志数据、会话3的日志数据、会话4的日志数据、会话6的日志数据和会话7的日志数据,该结果与图16中所示的情况完全相符。因此可以证明,基于本发明实施例提供的数据处理方法中的查询过程,可以查询到所有符合查询条件的目标日志数据。
上述主要从方法的角度对本发明实施例提供的方案进行了介绍。可以理解的是,本发明方法实施例中的存储设备为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本发明能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
本发明实施例可以根据上述方法实施例对存储设备进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本发明实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
在采用集成单元的情况下,图18示出了上述方法实施例中所涉及的存储设备的一种可能的结构示意图。存储设备1800包括接收模块1801、处理模块1802和存储模块1803。
其中,接收模块1801,用于接收日志存储请求,该日志存储请求携带会话的日志数据,该日志数据包含该会话的开始时间和结束时间。处理模块1802,用于确定该日志数据的第一级目录的索引值,该第一级目录的索引值用E0表示,E0=该会话的结束时间-该会话的结束时间%预设时间长度,其中%表示取余运算。处理模块1802,还用于确定该日志数据的第二级目录的索引值,该第二级目录的索引值用B0表示,B0=该会话的开始时间-该会话的开始时间%该预设时间长度。处理模块1802,还用于确定该日志数据对应的第三级目录的索引值,该第三级目录的索引值用(X0,Y0)表示,其中,该第三级目录的索引值中的第一向量X0=该会话的结束时间%该预设时间长度,该第三级目录的索引值中的第二向量Y0=该会话的开始时间%该预设时间长度,(X0,Y0)代表在以(E0,B0)为原点,以会话的结束时间为横坐标系,以会话的开始时间为纵坐标系的第一直角坐标系中横坐标为X0、纵坐标为Y0的一个坐标点。存储模块1803,用于根据E0、B0和(X0,Y0)存储该日志数据。
可选的,该第一直角坐标系中坐标点(X0,Y0)的坐标值代表会话的开始时间为E0+X0,会话的结束时间为B0+Y0的会话的数量;在存储模块1803根据E0、B0和(X0,Y0)存储该日志数据之后,处理模块1802,还用于将该第一直角坐标系中坐标点(X0,Y0)的坐标值加1。
可选的,存储模块1803,还具体用于支持存储设备1800执行图4中的步骤S3051至步骤S3057,具体可参考图4中的步骤S3051至步骤S3057的描述,此处不再赘述。
进一步的,接收模块1801,还用于接收日志查询请求,该日志查询请求携带查询时间段,该查询时间段用查询开始时间和查询结束时间来表示。
处理模块1802,还用于支持存储设备1800执行图14中的步骤S1402至步骤1405,具体可参考图14中的步骤S1402至步骤1405的描述,此处不再赘述。
可选的,处理模块1802,还具体用于支持存储设备1800执行图15中的步骤S14051至步骤14053,具体可参考图14中的步骤S14051至步骤14053的描述,此处不再赘述。
其中,接收模块1801可以是接收器、通信接口等。
处理模块1802可以是处理器或控制器,例如可以是中央处理器(centralprocessing unit,CPU),通用处理器,数字信号处理器(digital signal processor,DSP),专用集成电路(application-specific integrated circuit,ASIC),现场可编程门阵列(field programmable gate array,FPGA)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本发明公开内容所描述的各种示例性的逻辑方框,模块和电路。所述处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等等。
存储模块1803可以是存储介质,例如可以是存储器、寄存器、硬盘、移动硬盘、只读光盘(compact disc ROM,CD-ROM)或者本领域熟知的任何其它形式的存储介质。存储器可以是随机存取存储器(random access memory,RAM)、闪存、只读存储器(read onlymemory,ROM)、可擦除可编程只读存储器(erasable programmable ROM,EPROM)、电可擦可编程只读存储器(electrically EPROM,EEPROM)等等。
当接收模块1801为通信接口,处理模块1802为处理器,存储模块1803为存储器时,本发明实施例所涉及的存储设备可以为图2所示的存储设备20。
如图2所示,为本发明实施例提供的一种存储设备20的硬件结构示意图,在APT场景下,该存储设备20具体可以是图1中的存储服务器。其中,该存储设备20包括:处理器201、通信接口202、存储器203和总线204。其中,处理器201、通信接口202和存储器203通过总线204连接。总线204可以是外设部件互连标准(peripheral component interconnect,PCI)总线或扩展工业标准结构(extended industry standard architecture,EISA)总线等。该总线可以分为地址总线、数据总线、控制总线等。为便于表示,图2中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
结合本发明公开内容所描述的方法或者算法的步骤可以硬件的方式来实现,也可以是由处理器执行软件指令的方式来实现。软件指令可以由相应的软件模块组成,软件模块可以被存放于存储介质中,一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质中读取信息,且可向该存储介质中写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于存储设备中。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本发明的保护范围之内。
Claims (15)
1.一种数据处理方法,其特征在于,所述方法包括:
存储设备接收日志存储请求,所述日志存储请求携带会话的日志数据,所述日志数据包含所述会话的开始时间和结束时间;
确定所述日志数据的第一级目录的索引值,所述第一级目录的索引值用E0表示,E0=所述会话的结束时间-所述会话的结束时间%预设时间长度,其中%表示取余运算;
确定所述日志数据的第二级目录的索引值,所述第二级目录的索引值用B0表示,B0=所述会话的开始时间-所述会话的开始时间%所述预设时间长度;
确定所述日志数据对应的第三级目录的索引值,所述第三级目录的索引值用(X0,Y0)表示,其中,所述第三级目录的索引值中的第一向量X0=所述会话的结束时间%所述预设时间长度,所述第三级目录的索引值中的第二向量Y0=所述会话的开始时间%所述预设时间长度,(X0,Y0)代表在以(E0,B0)为原点,以会话的结束时间为横坐标系,以会话的开始时间为纵坐标系的第一直角坐标系中横坐标为X0、纵坐标为Y0的一个坐标点;
根据E0、B0和(X0,Y0)存储所述日志数据。
2.根据权利要求1所述的方法,其特征在于,
所述第一直角坐标系中坐标点(X0,Y0)的坐标值代表会话的开始时间为E0+X0,会话的结束时间为B0+Y0的会话的数量;
所述根据E0、B0和(X0,Y0)存储所述日志数据之后,所述方法还包括:
将所述第一直角坐标系中坐标点(X0,Y0)的坐标值加1。
3.根据权利要求1或2所述的方法,其特征在于,所述根据E0、B0和(X0,Y0)存储所述日志数据,包括:
查询预先建立的所有第一级目录中是否包含索引值为E0的第一级目录;
若所述所有第一级目录中包含索引值为E0的第一级目录,查询所述索引值为E0的第一级目录下的所有第二级目录中是否包含索引值为B0的第二级目录;
若所述索引值为E0的第一级目录下的所有第二级目录中包含索引值为B0的第二级目录,查询所述索引值为B0的第二级目录下的所有第三级目录中是否包含索引值为(X0,Y0)的第三级目录;
若所述索引值为B0的第二级目录下的所有第三级目录中包含索引值为(X0,Y0)的第三级目录,将所述日志数据存储在索引值为E0的第一级目录下的、索引值为B0的第二级目录下的、索引值为(X0,Y0)的第三级目录对应的存储区域;
若所述索引值为B0的第二级目录下的所有第三级目录中不包含索引值为(X0,Y0)的第三级目录,在所述索引值为B0的第二级目录下建立索引值为(X0,Y0)的第三级目录,并将所述日志数据存储在建立的第三级目录对应的存储区域;
若所述索引值为E0的第一级目录下的所有第二级目录中不包含索引值为B0的第二级目录,在所述索引值为E0的第一级目录下建立索引值为B0的第二级目录,在建立的第二级目录下建立索引值为(X0,Y0)的第三级目录,并将所述日志数据存储在建立的第三级目录对应的存储区域;
若所述所有第一级目录中不包含索引值为E0的第一级目录,建立索引值为E0的第一级目录;在建立的所述索引值为E0的第一级目录下建立索引值为B0的第二级目录;在建立的所述索引值为B0的第二级目录下建立索引值为(X0,Y0)的第三级目录,并将所述日志数据存储在建立的所述索引值为(X0,Y0)的第三级目录对应的存储区域。
4.根据权利要求1-3任一项所述的方法,其特征在于,所述方法还包括:
所述存储设备接收日志查询请求,所述日志查询请求携带查询时间段,所述查询时间段用查询开始时间和查询结束时间来表示;
确定所述查询时间段对应的第一级目录的索引值,所述查询时间段对应的第一级目录的索引值用P0表示,P0=所述查询开始时间–所述查询开始时间%所述预设时间长度;
确定所述查询时间段对应的第二级目录的索引值,所述查询时间段对应的第二级目录的索引值用Q0表示,Q0=所述查询结束时间-所述查询结束时间%所述预设时间长度;
确定所述查询时间段对应的第三级目录的索引值,所述查询时间段对应的第三级目录的索引值用(M0,N0)表示,其中,所述第三级目录的索引值中的第一向量M0=所述查询开始时间%所述预设时间长度,所述第三级目录的索引值中的第二向量N0=所述查询结束时间%所述预设时间长度,(M0,N0)代表在以(P0,Q0)为原点,以查询开始时间为横坐标系,以查询结束时间为纵坐标系的第二直角坐标系中横坐标为M0、纵坐标为N0的一个坐标点;
根据P0、Q0和(M0,N0),从已存储的日志数据中查找目标日志数据,其中,所述目标日志数据包含的会话的开始时间和结束时间构成的时间段与所述查询时间段有交集。
5.根据权利要求4所述的方法,其特征在于,所述根据P0、Q0和(M0,N0),从已存储的日志数据中查找目标日志数据,包括:
生成目标第一级目录集合,所述目标第一级目录集合包括预先建立的所有第一级目录中索引值不小于P0的至少一个第一级目录;
生成目标第二级目录集合,所述目标第二级目录集合包括每个目标第一级目录下的索引值不大于Q0的第二级目录,所述目标第一级目录为目标第一级目录集合中的一个第一级目录;
对目标第二级目录,所述目标第二级目录为目标第二级目录集合中的一个第二级目录,执行以下步骤:
比较目标第二级目录的索引值、所述目标第二级目录所在的目标第一级目录的索引值、P0和Q0的大小,其中B1表示所述目标第二级目录的索引值,E1表示所述目标第二级目录所在的目标第一级目录的索引值;
若E1=B1=P0、且P0≠Q0,查询所述目标第二级目录下的目标第三级目录,所述目标第三级目录的索引值中的第一向量大于M0;将所述目标第三级目录对应的存储区域中的日志数据确定为目标日志数据;
或者,若E1=B1=Q0、且Q0≠P0,查询所述目标第二级目录下的目标第三级目录,所述目标第三级目录的索引值中的第二向量小于N0;将所述目标第三级目录对应的存储区域中的日志数据确定为目标日志数据;
或者,若E1=B1=Q0=P0,查询所述目标第二级目录下的目标第三级目录,所述目标第三级目录的索引值中的第二向量不小于N0,且所述目标第三级目录的索引值中的第一向量不大于M0;将所述目标第三级目录对应的存储区域中的日志数据确定为目标日志数据;
否则,将所述目标第二级目录对应的存储区域中的日志数据确定为目标日志数据。
6.一种存储设备,其特征在于,所述存储设备包括:接收模块、处理模块和存储模块;
所述接收模块,用于接收日志存储请求,所述日志存储请求携带会话的日志数据,所述日志数据包含所述会话的开始时间和结束时间;
所述处理模块,用于确定所述日志数据的第一级目录的索引值,所述第一级目录的索引值用E0表示,E0=所述会话的结束时间-所述会话的结束时间%预设时间长度,其中%表示取余运算;
所述处理模块,还用于确定所述日志数据的第二级目录的索引值,所述第二级目录的索引值用B0表示,B0=所述会话的开始时间-所述会话的开始时间%所述预设时间长度;
所述处理模块,还用于确定所述日志数据对应的第三级目录的索引值,所述第三级目录的索引值用(X0,Y0)表示,其中,所述第三级目录的索引值中的第一向量X0=所述会话的结束时间%所述预设时间长度,所述第三级目录的索引值中的第二向量Y0=所述会话的开始时间%所述预设时间长度,(X0,Y0)代表在以(E0,B0)为原点,以会话的结束时间为横坐标系,以会话的开始时间为纵坐标系的第一直角坐标系中横坐标为X0、纵坐标为Y0的一个坐标点;
所述存储模块,用于根据E0、B0和(X0,Y0)存储所述日志数据。
7.根据权利要求6所述的存储设备,其特征在于,
所述第一直角坐标系中坐标点(X0,Y0)的坐标值代表会话的开始时间为E0+X0,会话的结束时间为B0+Y0的会话的数量;
在所述存储模块根据E0、B0和(X0,Y0)存储所述日志数据之后,所述处理模块,还用于将所述第一直角坐标系中坐标点(X0,Y0)的坐标值加1。
8.根据权利要求6或7所述的存储设备,其特征在于,所述存储模块具体用于:
查询预先建立的所有第一级目录中是否包含索引值为E0的第一级目录;
若所述所有第一级目录中包含索引值为E0的第一级目录,查询所述索引值为E0的第一级目录下的所有第二级目录中是否包含索引值为B0的第二级目录;
若所述索引值为E0的第一级目录下的所有第二级目录中包含索引值为B0的第二级目录,查询所述索引值为B0的第二级目录下的所有第三级目录中是否包含索引值为(X0,Y0)的第三级目录;
若所述索引值为B0的第二级目录下的所有第三级目录中包含索引值为(X0,Y0)的第三级目录,将所述日志数据存储在索引值为E0的第一级目录下的、索引值为B0的第二级目录下的、索引值为(X0,Y0)的第三级目录对应的存储区域;
若所述索引值为B0的第二级目录下的所有第三级目录中不包含索引值为(X0,Y0)的第三级目录,在所述索引值为B0的第二级目录下建立索引值为(X0,Y0)的第三级目录,并将所述日志数据存储在建立的第三级目录对应的存储区域;
若所述索引值为E0的第一级目录下的所有第二级目录中不包含索引值为B0的第二级目录,在所述索引值为E0的第一级目录下建立索引值为B0的第二级目录,在建立的第二级目录下建立索引值为(X0,Y0)的第三级目录,并将所述日志数据存储在建立的第三级目录对应的存储区域;
若所述所有第一级目录中不包含索引值为E0的第一级目录,建立索引值为E0的第一级目录;在建立的所述索引值为E0的第一级目录下建立索引值为B0的第二级目录;在建立的所述索引值为B0的第二级目录下建立索引值为(X0,Y0)的第三级目录,并将所述日志数据存储在建立的所述索引值为(X0,Y0)的第三级目录对应的存储区域。
9.根据权利要求6-8任一项所述的存储设备,其特征在于,
所述接收模块,还用于接收日志查询请求,所述日志查询请求携带查询时间段,所述查询时间段用查询开始时间和查询结束时间来表示;
所述处理模块,还用于确定所述查询时间段对应的第一级目录的索引值,所述查询时间段对应的第一级目录的索引值用P0表示,P0=所述查询开始时间–所述查询开始时间%所述预设时间长度;
所述处理模块,还用于确定所述查询时间段对应的第二级目录的索引值,所述查询时间段对应的第二级目录的索引值用Q0表示,Q0=所述查询结束时间-所述查询结束时间%所述预设时间长度;
所述处理模块,还用于确定所述查询时间段对应的第三级目录的索引值,所述查询时间段对应的第三级目录的索引值用(M0,N0)表示,其中,所述第三级目录的索引值中的第一向量M0=所述查询开始时间%所述预设时间长度,所述第三级目录的索引值中的第二向量N0=所述查询结束时间%所述预设时间长度,(M0,N0)代表在以(P0,Q0)为原点,以查询开始时间为横坐标系,以查询结束时间为纵坐标系的第二直角坐标系中横坐标为M0、纵坐标为N0的一个坐标点;
所述处理模块,还用于根据P0、Q0和(M0,N0),从已存储的日志数据中查找目标日志数据,其中,所述目标日志数据包含的会话的开始时间和结束时间构成的时间段与所述查询时间段有交集。
10.根据权利要求9所述的存储设备,其特征在于,所述处理模块具体用于:
生成目标第一级目录集合,所述目标第一级目录集合包括预先建立的所有第一级目录中索引值不小于P0的至少一个第一级目录;
生成目标第二级目录集合,所述目标第二级目录集合包括每个目标第一级目录下的索引值不大于Q0的第二级目录,所述目标第一级目录为目标第一级目录集合中的一个第一级目录;
对目标第二级目录,所述目标第二级目录为目标第二级目录集合中的一个第二级目录,执行以下步骤:
比较目标第二级目录的索引值、所述目标第二级目录所在的目标第一级目录的索引值、P0和Q0的大小,其中B1表示所述目标第二级目录的索引值,E1表示所述目标第二级目录所在的目标第一级目录的索引值;
若E1=B1=P0、且P0≠Q0,查询所述目标第二级目录下的目标第三级目录,所述目标第三级目录的索引值中的第一向量大于M0;将所述目标第三级目录对应的存储区域中的日志数据确定为目标日志数据;
或者,若E1=B1=Q0、且Q0≠P0,查询所述目标第二级目录下的目标第三级目录,所述目标第三级目录的索引值中的第二向量小于N0;将所述目标第三级目录对应的存储区域中的日志数据确定为目标日志数据;
或者,若E1=B1=Q0=P0,查询所述目标第二级目录下的目标第三级目录,所述目标第三级目录的索引值中的第二向量不小于N0,且所述目标第三级目录的索引值中的第一向量不大于M0;将所述目标第三级目录对应的存储区域中的日志数据确定为目标日志数据;
否则,将所述目标第二级目录对应的存储区域中的日志数据确定为目标日志数据。
11.一种存储设备,其特征在于,所述存储设备包括:通信接口、处理器和存储器;
所述通信接口,用于接收日志存储请求,所述日志存储请求携带会话的日志数据,所述日志数据包含所述会话的开始时间和结束时间;
所述处理器,用于确定所述日志数据的第一级目录的索引值,所述第一级目录的索引值用E0表示,E0=所述会话的结束时间-所述会话的结束时间%预设时间长度,其中%表示取余运算;
所述处理器,还用于确定所述日志数据的第二级目录的索引值,所述第二级目录的索引值用B0表示,B0=所述会话的开始时间-所述会话的开始时间%所述预设时间长度;
所述处理器,还用于确定所述日志数据对应的第三级目录的索引值,所述第三级目录的索引值用(X0,Y0)表示,其中,所述第三级目录的索引值中的第一向量X0=所述会话的结束时间%所述预设时间长度,所述第三级目录的索引值中的第二向量Y0=所述会话的开始时间%所述预设时间长度,(X0,Y0)代表在以(E0,B0)为原点,以会话的结束时间为横坐标系,以会话的开始时间为纵坐标系的第一直角坐标系中横坐标为X0、纵坐标为Y0的一个坐标点;
所述存储器,用于根据E0、B0和(X0,Y0)存储所述日志数据。
12.根据权利要求11所述的存储设备,其特征在于,
所述第一直角坐标系中坐标点(X0,Y0)的坐标值代表会话的开始时间为E0+X0,会话的结束时间为B0+Y0的会话的数量;
在所述存储器根据E0、B0和(X0,Y0)存储所述日志数据之后,所述处理器,还用于将所述第一直角坐标系中坐标点(X0,Y0)的坐标值加1。
13.根据权利要求11或12所述的存储设备,其特征在于,所述存储器具体用于:
查询预先建立的所有第一级目录中是否包含索引值为E0的第一级目录;
若所述所有第一级目录中包含索引值为E0的第一级目录,查询所述索引值为E0的第一级目录下的所有第二级目录中是否包含索引值为B0的第二级目录;
若所述索引值为E0的第一级目录下的所有第二级目录中包含索引值为B0的第二级目录,查询所述索引值为B0的第二级目录下的所有第三级目录中是否包含索引值为(X0,Y0)的第三级目录;
若所述索引值为B0的第二级目录下的所有第三级目录中包含索引值为(X0,Y0)的第三级目录,将所述日志数据存储在索引值为E0的第一级目录下的、索引值为B0的第二级目录下的、索引值为(X0,Y0)的第三级目录对应的存储区域;
若所述索引值为B0的第二级目录下的所有第三级目录中不包含索引值为(X0,Y0)的第三级目录,在所述索引值为B0的第二级目录下建立索引值为(X0,Y0)的第三级目录,并将所述日志数据存储在建立的第三级目录对应的存储区域;
若所述索引值为E0的第一级目录下的所有第二级目录中不包含索引值为B0的第二级目录,在所述索引值为E0的第一级目录下建立索引值为B0的第二级目录,在建立的第二级目录下建立索引值为(X0,Y0)的第三级目录,并将所述日志数据存储在建立的第三级目录对应的存储区域;
若所述所有第一级目录中不包含索引值为E0的第一级目录,建立索引值为E0的第一级目录;在建立的所述索引值为E0的第一级目录下建立索引值为B0的第二级目录;在建立的所述索引值为B0的第二级目录下建立索引值为(X0,Y0)的第三级目录,并将所述日志数据存储在建立的所述索引值为(X0,Y0)的第三级目录对应的存储区域。
14.根据权利要求11-13任一项所述的存储设备,其特征在于,
所述通信接口,还用于接收日志查询请求,所述日志查询请求携带查询时间段,所述查询时间段用查询开始时间和查询结束时间来表示;
所述处理器,还用于确定所述查询时间段对应的第一级目录的索引值,所述查询时间段对应的第一级目录的索引值用P0表示,P0=所述查询开始时间–所述查询开始时间%所述预设时间长度;
所述处理器,还用于确定所述查询时间段对应的第二级目录的索引值,所述查询时间段对应的第二级目录的索引值用Q0表示,Q0=所述查询结束时间-所述查询结束时间%所述预设时间长度;
所述处理器,还用于确定所述查询时间段对应的第三级目录的索引值,所述查询时间段对应的第三级目录的索引值用(M0,N0)表示,其中,所述第三级目录的索引值中的第一向量M0=所述查询开始时间%所述预设时间长度,所述第三级目录的索引值中的第二向量N0=所述查询结束时间%所述预设时间长度,(M0,N0)代表在以(P0,Q0)为原点,以查询开始时间为横坐标系,以查询结束时间为纵坐标系的第二直角坐标系中横坐标为M0、纵坐标为N0的一个坐标点;
所述处理器,还用于根据P0、Q0和(M0,N0),从已存储的日志数据中查找目标日志数据,其中,所述目标日志数据包含的会话的开始时间和结束时间构成的时间段与所述查询时间段有交集。
15.根据权利要求14所述的存储设备,其特征在于,所述处理器具体用于:
生成目标第一级目录集合,所述目标第一级目录集合包括预先建立的所有第一级目录中索引值不小于P0的至少一个第一级目录;
生成目标第二级目录集合,所述目标第二级目录集合包括每个目标第一级目录下的索引值不大于Q0的第二级目录,所述目标第一级目录为目标第一级目录集合中的一个第一级目录;
对目标第二级目录,所述目标第二级目录为目标第二级目录集合中的一个第二级目录,执行以下步骤:
比较目标第二级目录的索引值、所述目标第二级目录所在的目标第一级目录的索引值、P0和Q0的大小,其中B1表示所述目标第二级目录的索引值,E1表示所述目标第二级目录所在的目标第一级目录的索引值;
若E1=B1=P0、且P0≠Q0,查询所述目标第二级目录下的目标第三级目录,所述目标第三级目录的索引值中的第一向量大于M0;将所述目标第三级目录对应的存储区域中的日志数据确定为目标日志数据;
或者,若E1=B1=Q0、且Q0≠P0,查询所述目标第二级目录下的目标第三级目录,所述目标第三级目录的索引值中的第二向量小于N0;将所述目标第三级目录对应的存储区域中的日志数据确定为目标日志数据;
或者,若E1=B1=Q0=P0,查询所述目标第二级目录下的目标第三级目录,所述目标第三级目录的索引值中的第二向量不小于N0,且所述目标第三级目录的索引值中的第一向量不大于M0;将所述目标第三级目录对应的存储区域中的日志数据确定为目标日志数据;
否则,将所述目标第二级目录对应的存储区域中的日志数据确定为目标日志数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610895085.3A CN107943807B (zh) | 2016-10-13 | 2016-10-13 | 一种数据处理方法及存储设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610895085.3A CN107943807B (zh) | 2016-10-13 | 2016-10-13 | 一种数据处理方法及存储设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107943807A true CN107943807A (zh) | 2018-04-20 |
CN107943807B CN107943807B (zh) | 2020-06-16 |
Family
ID=61928485
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610895085.3A Active CN107943807B (zh) | 2016-10-13 | 2016-10-13 | 一种数据处理方法及存储设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107943807B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111078650A (zh) * | 2019-12-20 | 2020-04-28 | 成都康赛信息技术有限公司 | 一种文件存储方法 |
CN112100184A (zh) * | 2020-10-26 | 2020-12-18 | 上海擎感智能科技有限公司 | 车辆总里程数据存储方法和计算机存储介质 |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101866305A (zh) * | 2010-05-21 | 2010-10-20 | 武汉大学 | 支持数据查询和快速恢复的连续数据保护方法及系统 |
CN102193917A (zh) * | 2010-03-01 | 2011-09-21 | 中国移动通信集团公司 | 一种数据处理和查询方法和装置 |
CN102929936A (zh) * | 2012-09-26 | 2013-02-13 | 东软集团股份有限公司 | 日志记录方法、日志查询方法及系统 |
CN102981944A (zh) * | 2012-12-12 | 2013-03-20 | 青岛海信宽带多媒体技术有限公司 | 一种基于文件系统的日志存储方法 |
CN103177116A (zh) * | 2013-04-08 | 2013-06-26 | 国电南瑞科技股份有限公司 | 一种基于两级索引的分布式日志处理和查询方法 |
CN103942210A (zh) * | 2013-01-21 | 2014-07-23 | 中国移动通信集团上海有限公司 | 海量日志信息的处理方法、装置与系统 |
CN104536849A (zh) * | 2015-01-20 | 2015-04-22 | 成都携恩科技有限公司 | 一种基于云计算的数据备份方法 |
CN104615504A (zh) * | 2015-02-06 | 2015-05-13 | 浪潮(北京)电子信息产业有限公司 | 一种实现数据保护的方法及装置 |
CN104834648A (zh) * | 2014-02-12 | 2015-08-12 | 华为技术有限公司 | 日志查询方法和装置 |
CN105335406A (zh) * | 2014-07-30 | 2016-02-17 | 阿里巴巴集团控股有限公司 | 日志数据处理方法及装置 |
US20160048699A1 (en) * | 2014-02-06 | 2016-02-18 | Google Inc. | Methods and systems for deleting requested information |
CN105468764A (zh) * | 2015-12-02 | 2016-04-06 | 广州华多网络科技有限公司 | 一种数据处理方法、装置及集群服务系统 |
CN105512200A (zh) * | 2015-11-26 | 2016-04-20 | 华为技术有限公司 | 一种分布式数据库处理的方法和设备 |
-
2016
- 2016-10-13 CN CN201610895085.3A patent/CN107943807B/zh active Active
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102193917A (zh) * | 2010-03-01 | 2011-09-21 | 中国移动通信集团公司 | 一种数据处理和查询方法和装置 |
CN101866305A (zh) * | 2010-05-21 | 2010-10-20 | 武汉大学 | 支持数据查询和快速恢复的连续数据保护方法及系统 |
CN102929936A (zh) * | 2012-09-26 | 2013-02-13 | 东软集团股份有限公司 | 日志记录方法、日志查询方法及系统 |
CN102981944A (zh) * | 2012-12-12 | 2013-03-20 | 青岛海信宽带多媒体技术有限公司 | 一种基于文件系统的日志存储方法 |
CN103942210A (zh) * | 2013-01-21 | 2014-07-23 | 中国移动通信集团上海有限公司 | 海量日志信息的处理方法、装置与系统 |
CN103177116A (zh) * | 2013-04-08 | 2013-06-26 | 国电南瑞科技股份有限公司 | 一种基于两级索引的分布式日志处理和查询方法 |
US20160048699A1 (en) * | 2014-02-06 | 2016-02-18 | Google Inc. | Methods and systems for deleting requested information |
CN104834648A (zh) * | 2014-02-12 | 2015-08-12 | 华为技术有限公司 | 日志查询方法和装置 |
CN105335406A (zh) * | 2014-07-30 | 2016-02-17 | 阿里巴巴集团控股有限公司 | 日志数据处理方法及装置 |
CN104536849A (zh) * | 2015-01-20 | 2015-04-22 | 成都携恩科技有限公司 | 一种基于云计算的数据备份方法 |
CN104615504A (zh) * | 2015-02-06 | 2015-05-13 | 浪潮(北京)电子信息产业有限公司 | 一种实现数据保护的方法及装置 |
CN105512200A (zh) * | 2015-11-26 | 2016-04-20 | 华为技术有限公司 | 一种分布式数据库处理的方法和设备 |
CN105468764A (zh) * | 2015-12-02 | 2016-04-06 | 广州华多网络科技有限公司 | 一种数据处理方法、装置及集群服务系统 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111078650A (zh) * | 2019-12-20 | 2020-04-28 | 成都康赛信息技术有限公司 | 一种文件存储方法 |
CN112100184A (zh) * | 2020-10-26 | 2020-12-18 | 上海擎感智能科技有限公司 | 车辆总里程数据存储方法和计算机存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN107943807B (zh) | 2020-06-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10740327B2 (en) | High performance real-time relational database system and methods for using same | |
CN109299174B (zh) | 一种多源情报数据聚合处理方法及装置 | |
EP2883172A1 (en) | High performance real-time relational database system and methods for using same | |
CN110019267A (zh) | 一种元数据更新方法、装置、系统、电子设备及存储介质 | |
CN112468347B (zh) | 一种云平台的安全管理方法、装置、电子设备及存储介质 | |
KR102476126B1 (ko) | 고속 분석을 위한 네트워크 트래픽 준비 시스템 | |
CN104394149B (zh) | 一种基于并行分布式架构的复杂事件处理的方法 | |
WO2015154484A1 (zh) | 流量数据分类方法及装置 | |
CN106815258A (zh) | 一种数据存储方法和协调节点 | |
DE202014010885U1 (de) | Beschleunigung basierend auf zwischengespeicherte Flüsse | |
CN110876072B (zh) | 一种批量注册用户识别方法、存储介质、电子设备及系统 | |
CN106599190A (zh) | 基于云计算的动态Skyline查询方法 | |
CN107943807A (zh) | 一种数据处理方法及存储设备 | |
CN110943883B (zh) | 网络流量统计方法、系统、网关及计算机可读存储介质 | |
CN109067744A (zh) | Acl规则处理方法、装置及通信设备 | |
CN108182204A (zh) | 基于房产交易多维度数据的数据查询的处理方法及装置 | |
CN109726219A (zh) | 数据查询的方法及终端设备 | |
CN106990913B (zh) | 一种大规模流式集合数据的分布式处理方法 | |
CN114363002A (zh) | 一种网络攻击关系图的生成方法及装置 | |
CN111737490B (zh) | 基于银行渠道的知识图谱本体模型生成方法及装置 | |
Bhogal et al. | A review on big data security and handling | |
Ding et al. | Efficient probabilistic skyline query processing in mapreduce | |
CN107609089B (zh) | 一种数据处理方法、装置及系统 | |
CN106446039B (zh) | 聚合式大数据查询方法及装置 | |
CN114116908A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |