一种多维度数据去重方法及系统的制作方法

文档序号:6434890阅读:313来源:国知局
专利名称:一种多维度数据去重方法及系统的制作方法
技术领域
本申请涉及网络数据处理领域,特别涉及一种多维度数据去重方法及系统。
背景技术
网络日志文件可以是一种采用多维度数据记录用户访问网络事件的文件,其中,多维度数据由描述用户访问网络事件的各个属性构成。例如,某大型网站的多维度数据格式可以为{用户id,省,市,域名,浏览器类型},该多维度数据的属性分别为用户id、省、市、域名和浏览器类型,其维度等于5。其中,一维度数据可以为{用户id},二维度数据可以为{用户id,省},三维度数据可以为{用户id,省,市},四维度数据可以为{用户id,省,市,域名},五维度数据可以为{用户id,省,市,域名,浏览器类型}。然而,对于同一用户不同时间段的用户访问网络事件来说,网络日志文件中的多维度数据可能相同,因此,系统在分析网络日志文件记录的同一用户的多个多维度数据时,首先将网络日志文件中相同的多维度数据去重,以避免对相同的多维度数据重复分析。其中多维度数据去重是指删除网络日志文件中相同的多维度数据的重复记录,在网络日志文件中只保留相同的多个多维度数据的其中一个。相同的多维度数据是指由相同属性构成,且属性值也相同的多维度数据。目前现有技术中多维度数据去重方法可以包括如下步骤首先,选取网络日志文件中维度相同的各个多维度数据进行划分。该划分的依据具体为对所选取的各个多维度数据进行Hash计算,得出所选取的各个多维度数据的关键字,将具有完全相同关键字的各个多维度数据划分至同一个子日志文件。

其次,对于子日志文件中的任一个多维度数据,判断是否存在与其属性及属性值都相同的多维度数据,如果是,删除与该任一个多维度数据相同的其他多维度数据。最后,判断所述网络日志文件中是否存在还未进行划分的其他维度的多维度数据,如果是,对还未进行划分的其他维度的多维度数据进行去重处理,如果否,结束多维度数据去重过程。但是,上述去重过程中,需要依次对不同维度的各个多维度数据去重,即按照维度值分多次对多维度数据进行去重,因此,在对具有多个维度的多维度数据的网络日志文件划分时,每个划分过程都需要扫描网络日志文件中的所有维度的多维度数据,这增加了多维度数据的去重时间,降低了去重效率。更进一步地,如果后续还需要对该网络日志文件中的多维度数据进行分析,也会因为去重效率低而延迟分析过程。

发明内容
本申请所要解决的技术问题是提供一种多维度数据去重方法,用以解决现有技术依次对不同维度的多维度数据去重时,每个划分过程都需要扫描网络日志文件中的所有维度的多维度数据,从而增加了多维度数据的去重时间,降低了去重效率的问题。本申请还提供了一种多维度数据去重系统,用以保证上述方法在实际中的实现及应用。为了解决上述问题,本申请提供了一种多维度数据去重方法,包括依据网络日志文件中任一维度值的多维度数据的属性值确定划分值,其中,所述任一维度值小于所述网络日志文件中各个维度的多维度数据的最大维度;将所述网络日志文件中包含相同的所述划分值的不同多维度数据划分至一个子日志文件;对于所述子日志文件中的任一个多维度数据,判断是否存在与其属性及属性值都相同的多维度数据,如果是,则删除与所述任一个多维度数据相同的多维度数据。优选地,所述依据网络日志文件中任一维度值的多维度数据的属性值确定划分值包括将网络日志文件中维度为I的一维度数据的属性值确定为划分值。优选地,在所述任一维度值不为I,且维度小于任一维度值的多维度数据不包括所述划分值的情况下,所述方法还包括选取所述网络日志文件中维度相同,且小于所述任一维度值的各个多维度数据;运用Hash算法对所选取的各个多维度数据进行计算,得出所选取的各个多维度数据的关键字;将具有完全相同的关键字的各个多维度数据划分至一个子日志文件。优选地,所述将所述网络日志文件中包含有相同的所述划分值的多维度数据划分至一个子日志文件包括
`
运用Hash算法对各个多维度数据包含的所述划分值进行计算,得出关键字;将具有完全相同关键字的各个多维度数据划分至一个子日志文件。优选地,所述将所述网络日志文件中包含相同的所述划分值的不同多维度数据划分至一个子日志文件包括依据所述网络日志文件的大小,将所述网络日志文件拆分为多个初始子文件;将所述多个初始子文件中包含相同划分值的多维度数据划分至一个目标子文件中,并将所述目标子文件作为子日志文件,其中所述目标子文件为所述多个初始子文件中的一个。优选地,所述将所述多个初始子文件中包含相同划分值的多维度数据划分至一个目标子文件中,并将所述目标子文件作为子日志文件包括运用Hash算法对各个多维度数据包含的所述划分值进行计算,得出关键字;将具有完全相同的关键字的各个多维度数据划分至一个目标子文件,并将所述目标子文件作为子日志文件。本申请还提供了一种多维度数据去重系统,该系统包括划分值确定模块,用于依据网络日志文件中任一维度值的多维度数据的属性值确定划分值,其中,所述任一维度值小于所述网络日志文件中各个维度的多维度数据的最大维度;划分模块,用于将所述网络日志文件中包含相同的所述划分值的不同多维度数据划分至一个子日志文件;判断模块,用于对于所述子日志文件中的任一个多维度数据,判断是否存在与其属性及属性值都相同的多维度数据;
删除模块,用于在所述判断模块的结果为是的情况下,删除与所述任一个多维度数据相同的多维度数据。优选地,所述划分值确定模块,具体用于将所述网络日志文件中维度为I的一维度数据的属性值确定为划分值。优选地,在所述任一维度值不为I,且维度小于任一维度值的多维度数据不包括所述划分值的情况下,所述系统还包括数据选取模块,用于选取所述网络日志文件中维度相同,且小于所述任一维度值的各个多维度数据;所述划分模块,还用于运用Hash算法对所选取的各个多维度数据进行计算,得出所选取的各个多维度数据的关键字,将具有完全相同关键字的各个多维度数据划分至一个子日志文件。优选地,所述划分模块包括关键字计算单元,用于运用Hash算法对各个多维度数据包含的所述划分值进行计算,得出关键字;第一划分单元,用于将具有完全相同关键字的各个多维度数据划分至一个子日志文件。与现有技术相比,本申请包括以下优点应用本申请实施例提供的多维度数据去重方法,依据任一维度值小于最大维度的多维度数据的属性值确定划分值,因此在对多个维度的多维度数据划分时,可以一次对多维度数据进行划分,从而减少了划分次数,减少对网络日志文件中所有维度的多维度数据的扫描时间,进一步在去重的整体过程中,减少了多维度数据的去重时间,提高了去重效率。优选地,在本申请实施例中,依据维度为I的一维度数据的属性值确定划分值,因此本申请可以一次划分即可完成划分所有多维度数据,从而减少对网络日志文件中所有维度的多维度数据的扫描时间,进一步在去重的整体过程中,减少了多维度数据的去重时间,提闻了去重效率。更进一步地,如果后续服务器还需要对该网络日志文件中的多维度数据进行分析,也会因为去重效率提高而加快分析过程。当然,实施本申请的任一产品并不一定需要同时达到以上所述的所有优点。


为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。 图1是本申请的一种多维度数据去重方法实施例1的一种流程图;图2为实施例1步骤102的流程图;图3是本申请的一种多维度数据去重方法实施例1的另一种流程图;图4是本申请的一种多维度数据去重方法实施例2的流程图5是本申请的一种多维度数据去重系统优选实施例1的一种结构框图;图6是本申请的划分模块的结构框图;图7是本申请的一种多维度数据去重系统优选实施例1的另一种结构框图;图8是本申请的一种多维度数据去重系统优选实施例2的结构框图;图9是本申请的第二划分单元的结构框图。
具体实施例方式下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。本申请可用于众多通用或专用的计算系统环境或配置中。例如个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、包括以上任何系统或设备的分布式计算环境等等。本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。本申请的主要思想之一可以包括,首先,依据网络日志文件中任一维度值的多维度数据的属性值确定划分 值,其中,所述任一维度值小于所述网络日志文件中各个维度的多维度数据的最大维度,其次,将网络日志文件中包含相同划分值的不同多维度数据划分至同一个子日志文件,然后,在判断子日志文件中的任一个多维度数据存在与其属性及属性值都相同的多维度数据时,删除与任一个多维度数据相同的多维度数据。因为本申请依据任一维度值小于最大维度的多维度数据的属性值确定划分值,所以本申请在对多个维度的多维度数据划分时,可以一次对多个维度的多维度数据进行划分,从而减少了划分次数,减少对网络日志文件中所有维度的多维度数据的扫描时间,进一步在去重的整体过程中,减少了多维度数据的去重时间,提高了去重效率。参考图1,其示出了本申请一种多维度数据去重方法实施例1的一种流程图,可以包括以下步骤步骤101 :依据网络日志文件中任一维度值的多维度数据的属性值确定划分值,其中,任一维度值小于网络日志文件中各个维度的多维度数据的最大维度值。当任一维度值为I或其他数值时,依据网络日志文件中任一维度值的多维度数据的属性值确定的划分值对应不同的数值。当任一维度值为I时,其确定的划分值可以与其属性值相同,也可以为属性值的范围值;当任一维度值不为I时,该任一维度值对应的多维度数据确定的划分值可以为多个属性值的组合,也可以为多个属性值中的一个属性值,还可以为多个属性值中一个属性值的范围值。下面对划分值和属性值的对应关系进行举例说明。例如某一个网络日志文件记录有多个多维度数据,其中一个多维度数据的一维数据可以为{Mike},二维度数据可以为{Mike,浙江},三维度数据可以为{Mike,浙江,杭州},四维度数据可以为{Mike,浙江,杭州,www. taobao. com},五维度数据可以为{Mike,浙江,杭州,www. taobao. com, ie8}。当任一维度值为I时,依据一维数据确定的划分值可以为Mike,也可以为Mike的范围值,如英文首字母L至N。当任一维度值为2时,二维度数据确定的划分值可以为Mike和浙江,也可以为Mike或浙江。步骤102 :将网络日志文件中包含相同的划分值的不同多维度数据划分至一个子日志文件。不同维度值对应的划分值的数值不同,且对网络日志文件中不同多维度数据的划分过程也不同。同样以步骤101列举的网络日志文件进行说明。当任一维度值为I时,其划分值可以为Mike,则网络日志文件中包含Mike的不同多维度数据划分至一个子日志文件中。当任一维度值为I时,划分值还可以为英文首字母L至N,则网络日志文件中第一个属性值包含英文字母L或M或N的不同多维度数据划分至一个子日志文件中。当任一维度值不为I时,划分值可以为Mike,则网络日志文件中包含“Mike”的不同多维度数据划分至一个子日志文件中。当任一维度值不为I时,划分值还可以为“浙江”时,则网络日志文件中第二属性值包含“浙江”的不同多维度数据被划分至一个子日志文件中,而一维度数据不包括第二属性值“浙江”,因此一维度数据被划分至其他子日志文件中。当任一维度值不为I时,划分值还可以为“Mike”和“浙江”时,则网络日志文件中第一属性值和第二属性值分别为“Mike”和“浙江”的不同多维度数据划分至一个子日志文件中,而一维度数据被划分至其他子日志文件中。当任一维度值不为I时,划分值还可以为英文首字母L至N,则网络日志文件中第一个属性值包含英文字母L或M或N的不同多维度数据划分至一个子日志文件中。 上述划分为依据划分值对网络日志文件中的不同多维度数据进行划分。当然,划分过程还可以采用其他方式,如图2所示。图2为实施例1步骤102的流程图。该流程包括步骤步骤1021 :运用Hash算法对各个多维度数据包含的所述划分值进行计算,得出关键字。其中,Hash算法是一种压缩映射算法,即将任意长度的输入值转换成固定长度的输出值,该输出值可以作为关键字。Hash算法具有一个基本特性两个关键字不同,其对应的输入值也不同;两个关键字相同,其对应的输入值可以相同,也可以不同。步骤1022 :将具有完全相同关键字的各个多维度数据划分至一个子日志文件。如上所述,多维度数据由描述用户访问事件的各个属性构成,即每个多维度数据对应一个用户id,因此,在运用Hash算法对各个多维度数据包含的划分值进行计算时,选取特定的转换方法,将网络日志文件中同一用户id对应的不同多维度数据划分至同一个子日志文件,且不同子日志文件中的多维度数据相对平均。其中,特定的转换方法是指可以保证将网络日志文件中同一用户id对应的不同多维度数据划分至同一个子日志文件,且不同子日志文件中的多维度数据相对平均的转换方法。下面列举实例进行说明。例如网络日志文件中的不同维度的多维度数据分别对应用户id为Mike、Nike、Lining、Xiaoffang和Lucy,服务器选取特定的转换方法,将上述用户Mike、Nike和Lining对应的不同多维度数据划分至子日志文件A中,将上述用户XiaoWang和Lucy对应的不同多维度数据划分至子日志文件B中。从统计学上来说,当不同子日志文件中不同多维度数据对应的用户id个数相当时,子日志文件中的多维度数据相对平均,S卩服务器通过特定的转换方法可以保证不同子日志文件中的多维度数据相对平均。其中,用户个数相当是指用户个数相同或者相差预设数值的用户个数,预设数值可以为I。需要说明的是在将网络日志文件中包含相同划分值的不同多维度数据划分至同一个子日志文件中,服务器将不同多维度数据按照维度值进行划分,并且对任一维度值的多维度数据进行排序。以上一步骤列举的网络日志文件为例,服务器可以按照第一属性值中英文字母的排序,对同一维度的多维度数据进行排序。步骤103 :对于所述子日志文件中的任一个多维度数据,判断是否存在与其属性及属性值都相同的多维度数据,如果是,执行步骤104 ;如果否,执行步骤105。步骤104 :删除与任一个多维度数据相同的多维度数据。步骤105 :保留该任一个多维度数据。实际应用场景下,上述步骤103至步骤105的实际执行过程可以为首先选取第一个多维度数据,其中第一个多维度数据包括一维度数据至最大维度的多维度数据。由于该多维度数据是第一个多维度数据,所以保留该第一个多维度数据中的不同多维度数据至相对应的集合中;其次,循环选取其他多维度数据,判断选取的多维度数据与上一次保留至集合中的相同维度的多维度数据是否相同,如果是,则执行步骤104,如果否,则执行步骤105。需要说明的是在任一维度值不为1,且维度小于任一维度值的多维度数据不包括所述划分值的情况下,不包括划分值的多维度数据的划分过程与步骤102不同,具体请参阅图3。图3为本申请一种多维度数据去重方法实施例1的另一种流程图,可以包括如下步骤步骤301 :依据网络日志文件中任一维度值的多维度数据的属性值确定划分值,其中,任一维度值小于网络日志文件中各个维度的多维度数据的最大维度。步骤302 :将网络日志文件中包含相同的划分值的不同多维度数据划分至一个子日志文件,执行步骤306。步骤303 :选取网络日志文件中维度相同,且小于任一维度值的各个多维度数据。步骤304 :运用Hash算法对所选取的各个多维度数据进行计算,得出所选取的各个多维度数据的关键字。步骤305 :将具有完全相同关键字的各个多维度数据划分至一个子日志文件,执行步骤306。
在本实施例中,图3所示的多维度数据去重方法与图1所示的多维度数据去重方法的不同之处在于在任一维度值不为1,且维度小于任一维度值的多维度数据不包括所述划分值的情况下,不包括划分值的多维度数据采用步骤303至步骤305提供的方式进行划分。而其他包括划分值的多维度数据则使用步骤302提供的方式进行划分。步骤306 :对于所述子日志文件中的任一个多维度数据,判断是否存在与其属性及属性值都相同的多维度数据,如果是,执行步骤307 ;如果否,执行步骤308。步骤307 :删除与任一个多维度数据相同的多维度数据。
步骤308 :保留该任一个多维度数据。应用本申请实施例提供的多维度数据去重方法,依据任一维度值小于最大维度的多维度数据的属性值确定划分值,因此在对多个维度的多维度数据划分时,可以一次对多个维度的多维度数据进行划分,从而减少了划分次数,减少对网络日志文件中所有维度的多维度数据的扫描时间,进一步在去重的整体过程中,减少了多维度数据的去重时间,提高了去重效率。优选地,在本申请实施例中,依据维度为I的一维度数据的属性值确定划分值,因此本申请可以一次划分即可完成划分所有多维度数据,从而减少对网络日志文件中所有维度的多维度数据的扫描时间,进一步在去重的整体过程中,减少了多维度数据的去重时间,提闻了去重效率。更进一步地,如果后续服务器还需要对该网络日志文件中的多维度数据进行分析,也会因为去重效率提高而加快分析过程。参考图4,示出了本申请一种多维度数据去重方法实施例2的流程图,本实施例可以理解为将本申请的多维度数据去重方法应用于实际中的一个具体例子,可以包括以下步骤步骤401 :依据网络日志文件中任一维度值的多维度数据的属性值确定划分值,其中,任一维度值小于网络日志文件中各个维度的多维度数据的最大维度。步骤402 :将网络日志文件中包含相同的划分值的不同多维度数据划分至一个子日志文件。在实际应用场 景中,步骤402可以采用如下步骤

步骤4021 :依据所述网络日志文件的大小,将所述网络日志文件拆分为多个初始子文件。之所以依据网络日志文件大小,将网络日志文件拆分为多个初始子文件,是为了由不同的进程处理不同的子文件,即由不同的服务器处理不同的子文件,从而可以避免使用一个服务器处理网络日志文件时,导致服务器性能降低,甚至瘫痪。初始子文件个数的确定方式可以为,首先确定初始子文件的大小,其次依据网络日志文件的大小与确定的初始子文件大小的比值,确定初始子文件个数。初始子文件个数的确定方式还可以为由操作人员预先确定。当操作人员预先确定初始文件个数时,每个初始子文件的大小网络日志文件的大小与初始子文件个数的比值。需要说明的是当网络日志文件的大小与初始子文件个数的比值不为整数时,可以将余数划分至任一个初始子文件中。步骤4022 :将多个初始子文件中包含相同划分值的多维度数据划分至一个目标子文件中,并将目标子文件作为子日志文件,其中目标子文件为多个初始子文件中的一个。如前所述,首先,运用Hash算法对各个多维度数据包含的划分值进行计算,得出关键字;其次,将具有完全相同关键字的各个多维度数据划分至一个子日志文件的方式可以将网络日志文件中同一用户对应的不同多维度数据划分至同一个子日志文件,且不同子日志文件中的多维度数据相对平均。因此,在本实施例中优选采用上述依据关键字划分的方式。步骤403 :对于所述子日志文件中的任一个多维度数据,判断是否存在与其属性及属性值都相同的多维度数据,如果是,执行步骤404;如果否,执行步骤405。步骤404 :删除与任一个多维度数据相同的多维度数据。步骤405 :保留该任一个多维度数据。需要说明的是本实施例优选将维度为I的一维度数据的属性值确定为划分值。当本实施例存在任一维度值不为1,且维度小于任一维度值的多维度数据不包括所述划分值的情况下,不包括划分值的多维度数据采用图3中的步骤303至步骤305提供的方式进行划分。在完成划分后,执行步骤403。下面以将网络日志文件拆分为两个初始子文件,将维度为I的一维度数据的属性值作为划分值,且在划分过程中依据关键字对不同多维度数据进行划分为例对本实施例提供的多维度数据去重方法进行说明。网络日志文件被拆分成的初始子文件I包括一维度数据{Mike},二维度数据{Mike,浙江},三维度数据{Mike,浙江,杭州},四维度数据{Mike,浙江,杭州,www. taobao. com},五维度数据{Mike,浙江,杭州,www.taobao. com, ie8}; 一维度数据{Mike},二维度数据{Mike,浙江},三维度数据{Mike,浙江,杭州},四维度数据{Mike,浙江,杭州,s. taobao. com},五维度数据{Mike,浙江,杭州,s. taobao.com, ie8}; —维度数据{Lucy}, 二维度数据{Lucy,浙江},三维度数据{Lucy,浙江,宁波},四维度数据{Lucy,浙江,宁波,list, taobao. com},五维度数据{Lucy,浙江,宁波,list,taobao. com, firefox};一维度数据{Bell},二维度数据{Bel I,浙江},三维度数据{Bell,浙江,金华},四维度数据{Bell,浙江,金华,list, taobao. com},五维度数据{Bell,浙江,金华,list,taobao. com, ie8};一维度数据{Bell},二维度数据{Bel I,浙江},三维度数据{Bell,浙江,台州},四维度数据{Bell,浙江,台州,list, taobao. com},五维度数据{Bell,浙江,台州,list,taobao. com, ie8}。初始子文件2包括一维度数据{Mike},二维度数据{Mike,浙江},三维度数据{Mike,浙江,杭州},四维度数据{Mike,浙江,杭州,www. taobao. com},五维度数据{Mike,浙江,杭州,www.taobao. com, ie8};—维度数据{Lucy}, 二维度数据{Lucy,浙江},三维度数据{Lucy,浙江,宁波},四维度数据{Lucy,浙江,宁波,list, taobao. com},五维度数据{Lucy,浙江,宁波,list,taobao. com, firefox};—维度数据{Lucy}, 二维度数据{Lucy,浙江},三维度数据{Lucy,浙江,宁波},四维度数据{Lucy,浙江,宁波,list, taobao. com},五维度数据{Lucy,浙江,宁波,list,taobao. com, ie8};—维度数据{Nancy}, 二维度数据{Nancy,浙江},三维度数据{Nancy,浙江,金华},四维度数据{Nancy,浙江,金华,www. taobao. com},五维度数据{Nancy,浙江,金华,www. taobao. com, ie8};
—维度数据{Nancy}, 二维度数据{Nancy,浙江},三维度数据{Nancy,浙江,金华},四维度数据{Nancy,浙江,金华,list, taobao. com},五维度数据{Nancy,浙江,金华,list.taobao. com, ie8};—维度数据{Nancy}, 二维度数据{Nancy,浙江},三维度数据{Nancy,浙江,台州},四维度数据{Nancy,浙江,台州,list, taobao. com},五维度数据{Nancy,浙江,台州,list.taobao. com, ie8}。确定的网络日志文件的划分值分别为Mike、Lucy、Bell和Nancy。运用Hash算法对各个多维度数据包含的划分值进行计算,在计算过程中选取特定的转换方法将上述两个初始子文件中的不同多维度数据划分至两个子日志文件中,每个子日志文件的不同多维度数据对应两个用户。子日志文件A包括一维度数据{Bell},二维度数据{Bell,浙江},三维度数据{Bell,浙江,金华},四维度数据{Bell,浙江,金华,list, taobao. com},五维度数据{Bell,浙江,金华,list, taobao. com, ie8};一维度数据{Bell},二维度数据{Bel I,浙江},三维度数据{Bell,浙江,台州},四维度数据{Bell,浙江,台州,list, taobao. com},五维度数据{Bell,浙江,台州,list,taobao. com, ie8};—维度数据{Lucy}, 二维度数据{Lucy,浙江},三维度数据{Lucy,浙江,宁波},四维度数据{Lucy,浙江,宁波,list, taobao. com},五维度数据{Lucy,浙江,宁波,list,taobao. com, firefox};—维度数据{Lucy}, 二维度数据{Lucy,浙江},三维度数据{Lucy,浙江,宁波},四维度数据{Lucy,浙江,宁 波,list, taobao. com},五维度数据{Lucy,浙江,宁波,list,taobao. com, firefox};—维度数据{Lucy}, 二维度数据{Lucy,浙江},三维度数据{Lucy,浙江,宁波},四维度数据{Lucy,浙江,宁波,list, taobao. com},五维度数据{Lucy,浙江,宁波,list,taobao. com, ie8}。子日志文件B包括一维度数据{Mike},二维度数据{Mike,浙江},三维度数据{Mike,浙江,杭州},四维度数据{Mike,浙江,杭州,www. taobao. com},五维度数据{Mike,浙江,杭州,www.taobao. com, ie8};一维度数据{Mike},二维度数据{Mike,浙江},三维度数据{Mike,浙江,杭州},四维度数据{Mike,浙江,杭州,s. taobao. com},五维度数据{Mike,浙江,杭州,s. taobao.com, ie8};一维度数据{Mike},二维度数据{Mike,浙江},三维度数据{Mike,浙江,杭州},四维度数据{Mike,浙江,杭州,www. taobao. com},五维度数据{Mike,浙江,杭州,www.taobao. com, ie8};一维度数据{Nancy}, 二维度数据{Nancy,浙江},三维度数据{Nancy,浙江,金华},四维度数据{Nancy,浙江,金华,list, taobao. com},五维度数据{Nancy,浙江,金华,list.taobao. com, ie8};—维度数据{Nancy}, 二维度数据{Nancy,浙江},三维度数据{Nancy,浙江,台州},四维度数据{Nancy,浙江,台州,list, taobao. com},五维度数据{Nancy,浙江,台州,list.taobao. com, ie8}。对上述子日志文件A按照多维度数据顺序依次扫描,对于第一个多维度数据,直接保留Bell至一维度数据集合,保留Bell,浙江至二维度数据集合,Bell,浙江,金华至三维度数据集合,Bell,浙江,金华,list, taobao. com至四维度数据集合,Bell,浙江,金华,list, taobao. com, ie8至五维度数据集合。对于第二个多维度数据中不同维度的多维度数据,分别与上一次保留至集合中对应维度的多维度数据比较,判断出第二个多维度数据为上一次保留至集合中的第一个多维度数据的相同的多维度数据,因此删除第二个多维度数据。对于第三个多维度数据中不同维度的多维度数据,分别与上一次保留至集合中对应维度的多维度数据比较,判断出第二个多维度数据中不同维度的多维度数据与上一次保留至集合中对应维度的多维度数据不相同,因此,保留Lucy至一维度数据集合,保留Lucy,浙江至二维度数据集合,Lucy,浙江,宁波至三维度数据集合,Lucy,浙江,宁波,list,taobao. com至四维度数据集合,Lucy,浙江,宁波,list, taobao. com, firefox至五维度数据集合。对于第四个多维度数据中不同维度的多维度数据,分别与上一次保留至集合中对应维度的多维度数据比较,判断出第四个多维度数据中不同维度的多维度数据与上一次保留至集合中对应维度的多维度数据相同,因此删除第四个多维度数据。对于第五个多维度数据中不同维度的多维度数据与上一次保留至集合中对应维度的多维度数据,判断出第五个多维度数据中维度为5的多维度数据与上一次保留至集合中对应维度的多维度数据不相同,因此,保留Nancy,浙江,台州,list, taobao. com, ie8至五维度数据集合。
`
至此,完成对子日志文件A的去重过程。同样,子日志文件B按照上述比较判断过程进行去重。需要说明的是本申请的多维度数据去重方法可基于一个分布式系统基础架构——Hadoop架构的一个应用,在划分之后,Hadoop架构会对日志子文件中的多维度数据进行排序,例如日志子文件包括多维度数据{a, b}, {a, b, c}, {a, b, c, d}, {a, b, c, d, e},{a, b}, {a, b, d}, {a, b, d, e}, {a, b, d, e, c},则其排序过程为将{a, b}, {a, b, c}, {a, b, c,d}和{a, b, c, d, e}排在一组,而将{a, b}, {a, b, d}, {a, b, d, e}和{a, b, d, e, c}排在另一组。不同组的多维度数据分别进行去重过程,且在去重过程中可以分别实现组中的三维度数据至五维度数据的一次去重。对于不同组中的二维度数据{a,b},本系统只保留第一组中的二维度数据{a,b}。其中,本系统为运行本申请的多维度数据去重方法的系统。在按照上述方式对网络日志文件中的多维度数据去重时,假如该网络日志文件中包含30亿的多维度数据,其存储占用的空间为300G。服务器需要对网络日志文件进行5个维度的去重,发明人采用200台服务器对30亿的多维度数据进行反复去重实验,发现采用现有技术去重时,扫描的多维度数据个数约为30亿*4 = 120亿,存储占用的空间为300G*4=1200G,去重时间为60分钟左右。而采用本实施例提供的多维度数据去重方法,扫描的多维度数据个数为30亿,存储占用的空间为300G,去重时间为12分钟,与现有技术所消耗的去重时间相比大大降低。
此外,本实施例可以将网络日志文件拆分为多个初始子文件,由不同的服务器处理不同的子文件,从而可以避免使用一个服务器处理网络日志文件时,导致服务器性能降低,甚至瘫痪。进一步,本实施例可以采用Hash算法计算得出关键字,再依据关键字对网络日志文件中的不同多维度数据进行划分,以保证不同子日志文件中的多维度数据个数相对平均,可以进一步避免服务器性能降低,从而避免服务器瘫痪。对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实·施例,所涉及的动作和模块并不一定是本申请所必须的。与上述本申请一种多维度数据去重方法实施例1所提供的方法相对应,参见图5,本申请还提供了一种多维度数据去重系统实施例1,在本实施例中,该系统可以包括划分值确定模块51、划分模块52、判断模块53和删除模块54。其中划分值确定模块51,用于依据网络日志文件中任一维度值的多维度数据的属性值确定划分值,其中,所述任一维度值小于所述网络日志文件中各个维度的多维度数据的最大维度。划分值确定模块51,具体用于将所述网络日志文件中维度为I的一维度数据的属性值确定为划分值。当维度为I时,一维度数据确定的划分值可以与其属性值相同,也可以为属性值的范围值。当然,划分值确定模块51还可以具体用于依据维度大于1,且小于最大维度的多维度数据的属性值确定划分值。当维度不为I时,该维度对应的多维度数据确定的划分值可以为多个属性值的组合,也可以为多个属性值中的一个属性值,还可以为多个属性值中一个属性值的范围值。划分值和属性值的对应关系的举例说明请参阅方法实施例1中的说明,对此不再加以具体阐述。划分模块52,用于将所述网络日志文件中包含相同的所述划分值的不同多维度数据划分至一个子日志文件。在划分值确定模块51所依据的任一维度值为I和其他数值时,划分值确定模块51确定的划分值的数值不同,进一步划分模块52对网络日志文件中不同多维度数据的划分过程也不同,具体请参阅方法实施例1中的说明。划分模块52可以采用上述依据划分值进行划分,其还可以运用Hash算法对划分值进行计算,得出关键字,再利用关键字进行划分。例如图6所示的划分模块52的结构框图,该划分模块52则是利用关键字对不同多维度数据进行划分。划分模块52包括关键字计算单元521和第一划分单元522。其中关键字计算单元521,用于运用Hash算法对各个多维度数据包含的所述划分值进行计算,得出关键字。第一划分单元522,用于将具有完全相同关键字的各个多维度数据划分至一个子日志文件。上述划分模块52依据关键字划分时,可以将网络日志文件中同一用户对应的不同多维度数据划分至同一个子日志文件,且不同子日志文件中的多维度数据相对平均。因此,在本实施例中划分模块52优选采用上述依据关键字划分的方式。判断模块53,用于对于所述子日志文件中的任一个多维度数据,判断是否存在与其属性及属性值都相同的多维度数据。删除模块54,用于在所述判断模块的结果为是的情况下,删除与所述任一个多维度数据相同的多维度数据。需要说明的是在任一维度值不为1,且维度小于任一维度值的多维度数据不包括所述划分值的情况下,本优选实施例1提供的多维度数据去重系统在图1所示的基础上,增加了数据选取模块55,如图7所示。图7是本申请的一种多维度数据去重系统优选实施例I的另一种结构框图,其中数据选取模块55,用于选取所述网络日志文件中维度相同,且小于所述任一维度值的各个多维度数据。划分模块52,还用于运用Hash算法对所选取的各个多维度数据进行计算,得出所选取的各个多维度数据的关键字,将具有完全相同关键字的各个多维度数据划分至一个子日志文件。本实施例所述的系统可以集成到搜索引擎的服务器上,也可以单独作为一个实体与搜索引擎服务器相连,另外,需要说明的是,当本申请所述的方法采用软件实现时,可以作为搜索引擎的服务器新增的一个功能,也可以单独编写相应的程序,本申请不限定所述方法或系统的实现方式。本实施例中,划分值确定模块51依据任一维度值小于最大维度的多维度数据的属性值确定划分值,因此划分模块52在对多个维度的多维度数据划分时,可以一次对多个维度的多维度数据进行划分,从而减少了划分次数,减少对网络日志文件中所有维度的多维度数据的扫描时间,进一步 在去重的整体过程中,减少了多维度数据的去重时间,提高了
去重效率。优选地,在本实施例中,划分值确定模块51依据维度为I的一维度数据的属性值确定划分值,因此划分模块52可以一次划分即可完成划分所有多维度数据,从而减少对网络日志文件中所有维度的多维度数据的扫描时间,进一步在去重的整体过程中,减少了多维度数据的去重时间,提高了去重效率。更进一步地,如果后续服务器还需要对该网络日志文件中的多维度数据进行分析,也会因为去重效率提高而加快分析过程。与上述本申请一种多维度数据去重方法实施例2所提供的方法相对应,参见图8,本申请还提供了一种多维度数据去重系统的优选实施例2,在本实施例中,该系统中的划分模块52具体可以包括拆分单元523和第二划分单元524。其中拆分单元523,用于依据所述网络日志文件的大小,将所述网络日志文件拆分为多个初始子文件。拆分单元523之所以依据网络日志文件大小,将网络日志文件拆分为多个初始子文件,是为了由不同的进程处理不同的子文件,即由不同的服务器处理不同的子文件,从而可以避免使用一个服务器处理网络日志文件时,导致服务器性能降低,甚至瘫痪。第二划分单元524,用于将所述多个初始子文件中包含相同划分值的多维度数据划分至一个目标子文件中,并将所述目标子文件作为子日志文件,其中所述目标子文件为所述多个初始子文件中的一个。第二划分单元524可以采用依据划分值进行划分,其还可以运用Hash算法对划分值进行计算,得出关键字,再利用关键字进行划分。例如图9所示的第二划分单元524的结构框图,该第二划分单元524则是利用关键字对不同多维度数据进行划分。第二划分单元524包括关键字计算子单元5241和划分子单元5242。其中关键字计算子单元5241,用于运用Hash算法对各个多维度数据包含的所述划分值进行计算,得出关键字。划分子单元5242,用于将具有完全相同关键字的各个多维度数据划分至一个目标子文件,并将所述目标子文件作为子日志文件。实际环境中,本实施例提供的多维度数据去重系统对网络日志文件中不同多维度数据的去重过程可以参阅方法实施例2中的举例说明,对此不再加以阐述。在本实施例中,划分模块52可以将网络日志文件拆分为多个初始子文件,由不同的服务器处理不同的子文件,从而可以避免使用一个服务器处理网络日志文件时,导致服务器性能降低,甚至瘫痪。进一步,本实施例中,划分模块52的第二划分单元524可以采用Hash算法计算得出关键字,再依据关键字对网络日志文件中的不同多维度数据进行划分,以保证不同子日志文件中的多维度数据个数相对平均,可以进一步避免服务器性能降低,从而避免服务器瘫痪。需要说明的 是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于系统类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或
者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个......”限定的要素,
并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。为了描述的方便,描述以上系统时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如R0M/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例或者实施例的某些部分所述的方法。以上对本申请所提供的一种多维度数据去重方法及系统进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式
及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制.
权利要求
1.一种多维度数据去重方法,其特征在于,该方法包括 依据网络日志文件中任一维度值的多维度数据的属性值确定划分值,其中,所述任一维度值小于所述网络日志文件中各个维度的多维度数据的最大维度; 将所述网络日志文件中包含相同的所述划分值的不同多维度数据划分至一个子日志文件; 对于所述子日志文件中的任一个多维度数据,判断是否存在与其属性及属性值都相同的多维度数据,如果是,则删除与所述任一个多维度数据相同的多维度数据。
2.根据权利要求1所述的方法,其特征在于,所述依据网络日志文件中任一维度值的多维度数据的属性值确定划分值包括将网络日志文件中维度为I的一维度数据的属性值确定为划分值。
3.根据权利要求1所述的方法,其特征在于,在所述任一维度值不为1,且维度小于任一维度值的多维度数据不包括所述划分值的情况下,所述方法还包括 选取所述网络日志文件中维度相同,且小于所述任一维度值的各个多维度数据; 运用Hash算法对所选取的各个多维度数据进行计算,得出所选取的各个多维度数据的关键字; 将具有完全相同的关键字的各个多维度数据划分至一个子日志文件。
4.根据权利要求1至3任意一项所述的方法,其特征在于,所述将所述网络日志文件中包含有相同的所述划分值的多维度数据划分至一个子日志文件包括 运用Hash算法对各个多维度数据包含的所述划分值进行计算,得出关键字; 将具有完全相同关键字的各个多维度数据划分至一个子日志文件。
5.根据权利要求1至3任意一项所述的方法,其特征在于,所述将所述网络日志文件中包含相同的所述划分值的不同多维度数据划分至一个子日志文件包括 依据所述网络日志文件的大小,将所述网络日志文件拆分为多个初始子文件; 将所述多个初始子文件中包含相同划分值的多维度数据划分至一个目标子文件中,并将所述目标子文件作为子日志文件,其中所述目标子文件为所述多个初始子文件中的一个。
6.根据权利要求5所述的方法,其特征在于,所述将所述多个初始子文件中包含相同划分值的多维度数据划分至一个目标子文件中,并将所述目标子文件作为子日志文件包括 运用Hash算法对各个多维度数据包含的所述划分值进行计算,得出关键字; 将具有完全相同的关键字的各个多维度数据划分至一个目标子文件,并将所述目标子文件作为子日志文件。
7.—种多维度数据去重系统,其特征在于,该系统包括 划分值确定模块,用于依据网络日志文件中任一维度值的多维度数据的属性值确定划分值,其中,所述任一维度值小于所述网络日志文件中各个维度的多维度数据的最大维度; 划分模块,用于将所述网络日志文件中包含相同的所述划分值的不同多维度数据划分至一个子日志文件; 判断模块,用于对于所述子日志文件中的任一个多维度数据,判断是否存在与其属性及属性值都相同的多维度数据; 删除模块,用于在所述判断模块的结果为是的情况下,删除与所述任一个多维度数据相同的多维度数据。
8.根据权利要求7所述的系统,其特征在于,所述划分值确定模块,具体用于将所述网络日志文件中维度为I的一维度数据的属性值确定为划分值。
9.根据权利要求7所述的系统,其特征在于,在所述任一维度值不为1,且维度小于任一维度值的多维度数据不包括所述划分值的情况下,所述系统还包括 数据选取模块,用于选取所述网络日志文件中维度相同,且小于所述任一维度值的各个多维度数据; 所述划分模块,还用于运用Hash算法对所选取的各个多维度数据进行计算,得出所选取的各个多维度数据的关键字,将具有完全相同关键字的各个多维度数据划分至一个子日志文件。
10.根据权利要求7至9任意一项所述的系统,其特征在于,所述划分模块包括 关键字计算单元,用于运用Hash算法对各个多维度数据包含的所述划分值进行计算,得出关键字; 第一划分单元,用于将具有完全相同关键字的各个多维度数据划分至一个子日志文件。
全文摘要
本申请提供了一种多维度数据去重方法及系统,所述方法包括依据网络日志文件中任一维度值的多维度数据的属性值确定划分值,其中,任一维度值小于网络日志文件中各个维度的多维度数据的最大维度;将网络日志文件中包含相同的划分值的不同多维度数据划分至一个子日志文件;对于子日志文件中的任一个多维度数据,判断是否存在与其属性及属性值都相同的多维度数据,如果是,则删除与任一个多维度数据相同的多维度数据。应用本申请实施例提供的多维度数据去重方法,可以一次对多维度数据进行划分,从而减少了划分次数,减少对网络日志文件中所有维度的多维度数据的扫描时间,进一步在去重整体过程中,减少了多维度数据的去重时间,提高了去重效率。
文档编号G06F17/30GK103036697SQ20111030184
公开日2013年4月10日 申请日期2011年10月8日 优先权日2011年10月8日
发明者吕春建 申请人:阿里巴巴集团控股有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1