一种日志采集数据压缩方法、解压缩方法及装置与流程

文档序号:12005257阅读:212来源:国知局
一种日志采集数据压缩方法、解压缩方法及装置与流程
本发明涉及通信技术领域中的网络日志采集技术领域,尤其涉及一种日志采集数据压缩方法、解压缩方法及装置。

背景技术:
随着互联网的发展,根据用户的实际偏好进行业务优化和个性化信息服务已经成为业内的普遍共识。实际应用情况表明,采用个性化服务后,通常会带来超过20%的业务量提升。实现个性化服务的前提是获取用户的访问偏好信息,例如,可以通过在应用系统/Web页面中植入采集代码实现的。采集代码将用户访问网站的行为以日志形式记录,并发送到日志采集服务器,从而实现用户行为的汇总分析。这种偏好数据的获取方法的局限在于只能获取用户在一个或几个指定网站中的访问偏好,难以得到用户较为完整的互联网访问行为记录,进而限制了对用户的访问偏好分析的准确性和应用效果。此外,在应用系统/Web页面中植入代码进行访问网站的日志采集,会带来额外的开发和维护成本。目前,现有技术中还提出一种从用户网络接入的网关设备上进行网络日志采集的方案。当用户使用2G/3G移动通讯网络,或使用PPPoE(point-to-pointprotocoloverethemet)等协议连入有线网络后,可以由网关设备侧的网络日志服务器,从网关设备上获得用户的上网日志,例如,典型的日志信息包括:UID(UserIdentifier,用户标识)、URL(Uniform/UniversalResourceLocator,统一资源定位符)、时间戳、以及其它属性字段等。这些日志信息汇总到日志采集服务器后,可用于分析用户偏好,实现业务优化和个性化服务。由于网络中网关设备的数量较多,且分布不均的特点,用于从网关设备上获取网络日志的各网络日志服务器在物理上是分布式的,并需要将各自得到的日志采集数据通过网络传送至日志采集服务器,由于日志采集数据的数据量较大,将日志采集数据传送至日志采集服务器则需要较高的网络带宽资源,且当日志采集数据在保存时,也需要较多的存储资源。

技术实现要素:
本发明实施例提供一种日志采集数据压缩方法、解压缩方法及装置,用以解决现有技术中存在的传输日志采集数据所需的网络带宽资源较多,存储日志采集数据所需的存储资源较多的问题。本发明实施例提供一种日志采集数据压缩方法,包括:获取日志采集数据;分别对所述日志采集数据中各属性字段的各属性值进行编码,得到与每个属性值对应的压缩编码;使用得到的所述压缩编码,替换所述日志采集数据中对应的属性值,得到压缩后的日志采集数据。本发明实施例还提供一种日志采集数据解压缩方法,包括:获取压缩后的日志采集数据,和未压缩的日志采集数据中各属性字段的各属性值的编码表;使用所述编码表中与各压缩编码分别对应的属性值,替换所述压缩后的日志采集数据中对应的压缩编码,得到解压缩后的日志采集数据。本发明实施例还提供一种日志采集数据压缩装置,包括:第一获取单元,用于获取日志采集数据;第一压缩处理单元,用于分别对所述日志采集数据中各属性字段的各属性值进行编码,得到与每个属性值对应的压缩编码;第二压缩处理单元,用于使用得到的所述压缩编码,替换所述日志采集数据中对应的属性值,得到压缩后的日志采集数据。本发明实施例还提供一种日志采集数据解压缩装置,包括:第二获取单元,用于获取压缩后的日志采集数据,和未压缩的日志采集数据中各属性字段的各属性值的编码表;解压缩单元,用于使用所述编码表中与各压缩编码分别对应的属性值,替换所述压缩后的日志采集数据中对应的压缩编码,得到解压缩后的日志采集数据。本发明有益效果包括:本发明实施例提供的方法中,在对日志采集数据进行压缩时,首先分别对日志采集数据中各属性字段的各属性值进行编码,得到与每个属性值对应的压缩编码,然后使用得到的压缩编码,替换日志采集数据中对应的属性值,得到压缩后的日志采集数据。相应的,在解压缩时,可以使用未压缩的日志采集数据中各属性字段的各属性值的编码表中,与各压缩编码分别对应的属性值,替换压缩后的日志采集数据中对应的压缩编码,得到解压缩后的日志采集数据。由于压缩编码的数据量小于对应的属性值的数据量,所以,采用本发明实施例提供的日志采集数据的压缩方法,通过压缩能够减少日志采集数据的数据量,从而使得在保存时减少所需的存储资源,在传输时可以减少所需的网络带宽资源,并且提高传输效率。附图说明附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:图1为本发明实施例提供的日志采集数据压缩方法的流程图;图2为本发明实施例提供的日志采集数据解压缩方法的流程图;图3为本发明实施例1中提供的对日志采集数据中属性字段的属性值进行编码的处理流程图;图4为本发明实施例1中建立的二叉树的结构示意图之一;图5为本发明实施例1中建立的二叉树的结构示意图之二;图6为本发明实施例1中建立的二叉树的结构示意图之三;图7为本发明实施例1中建立的二叉树的结构示意图之四;图8为本发明实施例1中建立的二叉树的结构示意图之五;图9为本发明实施例2中提供的日志采集数据解压缩方的流程图;图10为本发明实施例3中提供的日志采集数据压缩装置的结构示意图;图11为本发明实施例4中提供的日志采集数据解压缩装置的结构示意图。具体实施方式为了给出减少传输日志采集数据所需的网络带宽资源,以及减少存储日志采集数据所需的存储资源的实现方案,本发明实施例提供了一种日志采集数据压缩方法、解压缩方法及装置,以下结合说明书附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。并且在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。本发明实施例提供一种日志采集数据压缩方法,如图1所示,包括:步骤101、获取日志采集数据。步骤102、分别对日志采集数据中各属性字段的各属性值进行编码,得到与每个属性值对应的压缩编码。步骤103、使用得到的压缩编码,替换日志采集数据中对应的属性值,得到压缩后的日志采集数据。相应的,本发明实施例还提供一种日志采集数据解压缩方法,如图2所示,包括:步骤201、获取压缩后的日志采集数据,和未压缩的日志采集数据中各属性字段的各属性值的编码表。步骤202、使用该编码表中与各压缩编码分别对应的属性值,替换压缩后的日志采集数据中对应的压缩编码,得到解压缩后的日志采集数据。下面结合附图,用具体实施例对本发明提供的方法及装置进行详细描述。实施例1:本发明实施例1中针对上述日志采集数据压缩方法,提出一种具体实施方式。在上述步骤101中获取的日志采集数据可以为一段时间内,采用日志处理规则,对从网关设备获取的原始日志数据进行处理得到的。日志采集数据可以通过一定格式的平面文件保存,其中每条记录可以对应一个用户标识,并包括该用户标识对应的各属性字段的属性值,例如,各属性字段可以包括:接入点名称、归属基站ID、IP、URL等。在获取到日志采集数据后,即可以执行上述步骤102,分别对日志采集数据中各属性字段的各属性值进行编码,得到与每个属性值对应的压缩编码。例如,以URL域名字段为例,日志采集数据中URL域名字段的属性值可以包括很多具体的URL域名,如“WWW.sina.com”、“WWW.qq.com”、“WWW.sohu.com”、“WWW.163.com”、“www.baidu.com”、“WWW.google.cn”和“WWW.3g.cn”等,上述步骤102即针对每个具体的属性值进行编码,得到与该属性值对应的压缩编码,且该压缩编码的数据量小于该对应属性值的数据量。具体可以采用现有技术中的各种编码方式,例如,比较简单的,针对一个属性字段的各属性值的编码,可以根据该属性字段的各属性值的数量,采用足够数量的比特位进行二进制编码,以上述7个属性值为例,可以采用4个比特位进行二进制编码,每个编码对应一个属性值。较佳的,考虑到在日志采集数据中,每个属性值一般均具有重复出现的特性,即针对不同的用户标识,同一属性字段的属性值可能是相同的,且一个属性字段的各属性值分别在日志采集数据中出现的次数,通常符合幂率分布的特性,所以,针对一个属性字段的各属性值,可以根据各属性值在日志采集数据中出现的次数,对该属性字段的各属性值进行编码,得到与各属性值分别对应的压缩编码,并且,优先使用数据量小的压缩编码,并保证出现的次数大的属性值对应的压缩编码的数据量,不大于出现的次数小的属性值对应的压缩编码的数据量,从而使得后续得到的压缩后的日志采集数据的数据量更少。具体的,本发明实施例1中提出如下一种具体编码处理方式,针对日志采集数据中的一个属性字段的各属性值,如图3所示,具体采用如下方式进行编码:步骤301、分别统计该属性字段的各属性值在日志采集数据中出现的次数。后续可以根据该属性字段的各属性值在日志采集数据中出现的次数,构建二叉树,其中,该二叉树中的各叶子节点,分别对应表征各属性值在日志采集数据中出现的次数,且该二叉树中的父节点表征的数值,为该父节点的两个子节点表征数值的和值,且该二叉树中每个节点表征的数值,不小于该节点所属等级的下一级节点表征的数值。具体的,可以采用如下步骤实现:步骤302、首先按照出现次数从低到高的顺序,将各属性值出现的次数进行排列,相同次数的可以随机确定先后顺序。步骤303、然后从当前排列的各数值(包括各属性值出现的次数,和后续计算得到和值)中,选择最小的两个值,作为二叉树的两个节点,且这两个节点分别对应表征这两个值。步骤304、将这两个数值的和值,作为这两个节点的父节点,该父节点表征该和值。步骤305、将所选的最小的这两个值排除,然后判断排列的各数值中是否存在剩余的数值(可以是属性值对应的出现次数,也可以是已建立的父节点表征的数值),如果存在,进入步骤306,如果不存在,进入步骤307。步骤306、按照数值从低到高的顺序,将剩余的数值和最新建立的该父节点表征的和值进行排列,作为当前排列的各数值,然后进入步骤303。步骤307、将最新建立的该父节点作为该二叉树的根节点,完成二叉树的构建。下面以5个属性值分别出现的次数为1、2、3、3和5为例,对采用上述步骤301-步骤306所示的二叉树的构建进行举例描述:首先选择最小的次数1和次数2作为二叉树的两个节点(即叶子节点),并将次数1和次数2的和值3,作为次数1对应节点和次数2对应节点的父节点,如图4所示;排除次数1和次数2后,从剩余次数3、3和4,以及数值3(最新建立的父节点)中,选择最小的两个值,例如,选择次数3与数值3,并将次数3作为二叉树的一个节点(即叶子节点),并将与数值3的和值6,作为该次数3对应节点与数值3对应节点的父节点,如图5所示;排除已建立对应节点的次数3和数值3,从剩余次数3和4,以及数值6(最新建立的父节点)中,选择最小的次数3和次数4,并将该次数3和次数4作为二叉树的两个节点(即叶子节点),并将该次数3和次数4的和值7,作为该次数3对应节点和次数4对应节点的父节点,如图6所示;排除已建立对应节点的次数3和次数4,从剩余的数值6和数值7(最新建立的父节点)中,选择最小的两个值,即选择数值6和数值7,并将数值6和数值7的和值13,作为数值6对应节点与数值7对应节点的父节点,此时没有剩余的次数或数值,则最后建立的表征数值13的父节点,即为建立的二叉树的根节点,完成二叉树的建立,如图7所示。从图7中可见,二叉树的各叶子节点分别对应表征次数1、2、3、3和4,且该二叉树中的每个节点表征的数值,不小于该节点所属等级的下一级节点表征的数值。步骤308、在针对该属性字段建立对应的上述二叉树后,即可以根据该二叉树确定该属性字段的各属性值的压缩编码,具体为:确定二叉树中叶子节点对应的属性值的压缩编码为,将从根节点到该叶子节点的路径所包括的各子树分别对应的弧值,进行排列得到的二进制编号;其中,二叉树中节点的左子树的弧值为0,右子树的弧值为1;或者二叉树中节点的左子树的弧值为1,右子树的弧值为0。以二叉树中节点的左子树的弧值为0,右子树的弧值为1为例,如图8所示,为图7所示的二叉树中各子树的弧值示意图,则可以确定次数4对应属性值的压缩编码为11,一个次数3对应属性值的压缩编码为10,另一个次数3对应属性值的压缩编码为01,次数2对应属性值的压缩编码为001,次数1对应属性值的压缩编码为000。从中可见,采用上述编码方式对同一属性字段的各属性值进行编码后,出现次数多的属性值的压缩编码的数据量,不会大于出现次数少的属性值的压缩编码的数据量,从而使得后续压缩后的日志采集数据的数据量更少,从而进一步更有效的减少日志采集数据保存所需的存储资源,以及减少日志采集数据传送所需要的网络带宽资源,并且可以提高传送效率。步骤309、在通过上述步骤301-步骤308的处理流程,对日志采集数据中各属性字段的各属性值进行编码后,即可以使用得到的压缩编码,替换日志采集数据中对应的属性值,得到压缩后的日志采集数据。并且,为了后续解压缩的需要,还可以生成各属性值的编码表,编码表中携带了各属性值分别与对应压缩编码的对应关系。具体的,编码表中可以包括上述二叉树的信息,以及该二叉树的各叶子节点分别与各属性值的对应关系。例如,编码表中包括与各压缩字段分别对应的二叉树,且每个二叉树中的各叶子节点,分别对应该二叉树对应属性字段的各属性值,且该二叉树中节点的左子树的弧值为0,右子树的弧值为1,或者该二叉树中节点的左子树的弧值为1,右子树的弧值为0。当采用上述通过构建二叉树的方式进行编码时,编码表中可以直接包括构建的二叉树,和各叶子节点分别与对应属性值的对应关系,相比采用字典方式的编码表,包括二叉树的该编码表的数据量更少,从而能够在后续将编码表传送给日志采集服务器时,使用更少的网络带宽资源。在对日志采集数据进行上述压缩后,可以保存该压缩后的日志采集数据和编码表;也可以向日志采集服务器发送该压缩后的日志采集数据和该编码表。较佳的,在发送时,可以对该压缩后的日志采集数据和编码表,使用通用的压缩算法进行再次压缩后传输,例如,使用GZIP、RAR、ZIP或TAR等压缩算法。实施例2:针对本发明实施例1中提出的日志采集数据压缩方法,本发明实施例2中提出如下日志采集数据解压缩方法,如图9所示,包括:步骤901、获取压缩后的日志采集数据,和未压缩的日志采集数据中各属性字段的各属性值的编码表。其中,该编码表中包括与各压缩字段分别对应的二叉树,且每个二叉树中的各叶子节点,分别对应该二叉树对应属性字段的各属性值,且该二叉树中节点的左子树的弧值为0,右子树的弧值为1,或者该二叉树中节点的左子树的弧值为1,右子树的弧值为0。步骤902、针对该压缩后的日志采集数据中的每个属性字段的每个压缩编码,具体采用如下方式确定该压缩编码对应的叶子节点:查询该属性字段对应的二叉树,确定该属性字段的该压缩编码对应的叶子节点,其中,将从根节点到该对应的叶子节点的路径所包括的各子树分别对应的弧值,进行排列得到的二进制编号,与该压缩编码相同。具体可以根据组成该压缩编码的各二进制数值从前到后的顺序,以及该二叉树中各子树的弧值,从该二叉树的根节点开始,对二叉树的节点路径进行查询,得到该压缩编码对应的叶子节点。例如,以图8所示二叉树为例,针对压缩编码001,首先根据第一个二进制数值0,从根节点的左子树(左子树弧值为0)查询到数值6对应节点,然后根据第二个二进制数值0,从数值6对应节点的左子树查询到数值3对应节点,然后根据第三个二进制数值1,从数值3对应节点的右子树(右子树弧值为1)查询到次数2对应的叶子节点,从而确定该压缩编码001对应的叶子节点为,次数2对应的叶子节点。步骤903、查询编码表中叶子节点与属性值的对应关系,确定该压缩编码对应的叶子节点对应的属性值,将该属性值确定为该压缩编码对应的属性值。步骤904、使用该压缩编码对应的属性值,替换该压缩后的日志采集数据中的该压缩编码。在针对日志采集数据中的所有压缩编码,完成上述替换的处理流程后,得到解压缩后的日志采集数据,即未压缩的日志采集数据。实施例3:基于同一发明构思,根据本发明上述实施例提供的日志采集数据压缩方法,相应地,本发明实施例3还提供了一种日志采集数据压缩装置,该装置可应用于网络日志服务器中,其结构示意图如图10所示,具体包括:第一获取单元1001,用于获取日志采集数据;第一压缩处理单元1002,用于分别对所述日志采集数据中各属性字段的各属性值进行编码,得到与每个属性值对应的压缩编码;第二压缩处理单元1003,用于使用得到的所述压缩编码,替换所述日志采集数据中对应的属性值,得到压缩后的日志采集数据。进一步的,第一压缩处理单元1002,具体用于针对所述日志采集数据中的每个属性字段的各属性值,采用如下方式进行编码:分别统计该属性字段的各属性值在所述日志采集数据中出现的次数;根据各属性值在所述日志采集数据中出现的次数,对该属性字段的各属性值进行编码,得到与各属性值分别对应的压缩编码,其中,出现的次数大的属性值对应的压缩编码的数据量,不大于出现的次数小的属性值对应的压缩编码的数据量。进一步的,第一压缩处理单元1002,具体用于根据各属性值在所述日志采集数据中出现的次数,构建二叉树,其中,所述二叉树中的各叶子节点,分别对应表征各属性值在所述日志采集数据中出现的次数,且所述二叉树中的父节点表征的数值,为该父节点的两个子节点表征数值的和值,且所述二叉树中每个节点表征的数值,不小于该节点所属等级的下一级节点表征的数值;确定所述二叉树中叶子节点对应的属性值的压缩编码为,将从根节点到该叶子节点的路径所包括的各子树分别对应的弧值,进行排列得到的二进制编号;其中,所述二叉树中节点的左子树的弧值为0,右子树的弧值为1;或者所述二叉树中节点的左子树的弧值为1,右子树的弧值为0。进一步的,还包括:生成单元1004,用于生成该属性字段的各属性值的编码表,所述编码表中包括所述二叉树的信息,以及所述二叉树的各叶子节点分别与各属性值的对应关系。实施例4:基于同一发明构思,根据本发明上述实施例提供的日志采集数据解压缩方法,相应地,本发明实施例4还提供了一种日志采集数据解压缩装置,该装置可应用于网络日志服务器中,也可以应用于日志采集服务器中,其结构示意图如图11所示,具体包括:第二获取单元1101,用于获取压缩后的日志采集数据,和未压缩的日志采集数据中各属性字段的各属性值的编码表;解压缩单元1102,用于使用所述编码表中与各压缩编码分别对应的属性值,替换所述压缩后的日志采集数据中对应的压缩编码,得到解压缩后的日志采集数据。进一步的,第二获取单元1101获取的所述编码表中包括与各压缩字段分别对应的二叉树,且每个二叉树中的各叶子节点,分别对应该二叉树对应属性字段的各属性值,且该二叉树中节点的左子树的弧值为0,右子树的弧值为1,或者该二叉树中节点的左子树的弧值为1,右子树的弧值为0;解压缩单元1102,具体用于针对所述压缩后的日志采集数据中的每个属性字段的每个压缩编码,具体采用如下方式进行解压缩处理:查询该属性字段对应的二叉树,确定该属性字段的该压缩编码对应的叶子节点,其中,将从根节点到该对应的叶子节点的路径所包括的各子树分别对应的弧值,进行排列得到的二进制编号,与该压缩编码相同;使用该压缩编码对应的叶子节点对应的属性值,替换该压缩后的日志采集数据中的该压缩编码。综上所述,本发明实施例提供的方案,包括:获取日志采集数据;并分别对日志采集数据中各属性字段的各属性值进行编码,得到与每个属性值对应的压缩编码;以及使用得到的压缩编码,替换日志采集数据中对应的属性值,得到压缩后的日志采集数据。采用本发明实施例提供的方案,减少了传输日志采集数据所需的网络带宽资源,以及减少了存储日志采集数据所需的存储资源。显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1