数据消重方法及装置与流程

文档序号:11729414阅读:209来源:国知局
数据消重方法及装置与流程

本发明涉及数据消重技术领域,特别是涉及数据消重方法及装置。



背景技术:

在互联网各项技术中,数据消重技术应用场景很多,例如爬虫系统、搜索系统等等。

现有的数据消重技术将需要对比的数据进行完整的比对,在需要对比的数据较多时,这种方案会导致消重的效率降低。

因此,如何提高数据消重的效率仍是本领域亟待解决的技术难题。



技术实现要素:

本发明实施例的目的在于提供一种数据消重方法及装置,以提高数据消重的效率。具体技术方案如下:

一种数据消重方法,包括:

将待消重的第一数据转换为固定长度的第二数据;

根据预设的划分比例,将所述第二数据划分为第一部分和第二部分,其中,所述第一部分在所述第二数据中位于所述第二部分左侧且与所述第二部分相邻;

将所述第一部分和第二部分构成的键值对确定为与所述第二数据对应的键值对,其中,所述第一部分用作键key,所述第二部分用作值value;

查找与所述第二数据对应的键值对中的key对应的消重集合,如果查找到,则在查找到的消重集合中查找与所述第二数据对应的键值对中的value相同的元素,如果未查找到与所述第二数据对应的键值对中的value相同的元素,则将所述第二数据对应的键值对中的value作为元素放入查找到的消重集合中;如果查找到与所述第二数据对应的键值对中的value相同的元素,则将所述第一数据标识为重复数据。

可选的,所述方法还包括:

如果未查找到与所述第二数据对应的键值对中的key对应的消重集合,则建立与所述第二数据对应的键值对中的key对应的消重集合,将所述第二数据对应的键值对中的value作为元素放入与所述第二数据对应的键值对中的key对应的消重集合中。

可选的,在所述根据预设的划分比例,将所述第二数据划分为第一部分和第二部分后,所述方法还包括:

确定所述第一数据的对应的业务标识,在所述第一部分前插入确定的所述业务标识;

所述将所述第一部分和第二部分构成的键值对确定为与所述第二数据对应的键值对,其中,所述第一部分用作键key,所述第二部分用作值value,包括:

将所述业务标识、所述第一部分和第二部分构成的键值对确定为与所述第二数据对应的键值对,其中,所述业务标识和所述第一部分一起用作键key,所述第二部分用作值value。

可选的,所述根据预设的划分比例,将所述第二数据划分为第一部分和第二部分,包括:

根据预设的划分比例1:3,将所述第二数据的前1/4划分为第一部分,将所述第二数据的后3/4划分为第二部分。

可选的,所述将待消重的第一数据转换为固定长度的第二数据,包括:

使用64位循环冗余校验crc算法或消息摘要算法第五版md5将待消重的第一数据转换为固定长度的第二数据。

一种数据消重装置,包括:数据转换单元、数据划分单元、键值对确定单元、集合查找单元、元素查找单元、元素放入单元和数据标识单元,

所述数据转换单元,用于将待消重的第一数据转换为固定长度的第二数据;

所述数据划分单元,用于根据预设的划分比例,将所述第二数据划分为第一部分和第二部分,其中,所述第一部分在所述第二数据中位于所述第二部分左侧且与所述第二部分相邻;

所述键值对确定单元,用于将所述第一部分和第二部分构成的键值对确定为与所述第二数据对应的键值对,其中,所述第一部分用作键key,所述第二部分用作值value;

所述集合查找单元,用于查找与所述第二数据对应的键值对中的key对应的消重集合,如果查找到,则触发所述元素查找单元;

所述元素查找单元,用于在查找到的消重集合中查找与所述第二数据对应的键值对中的value相同的元素,如果未查找到与所述第二数据对应的键值对中的value相同的元素,则触发所述元素放入单元;如果查找到与所述第二数据对应的键值对中的value相同的元素,则触发所述数据标识单元;

所述元素放入单元,用于将所述第二数据对应的键值对中的value作为元素放入查找到的消重集合中;

所述数据标识单元,用于将所述第一数据标识为重复数据。

可选的,所述装置还包括:集合建立单元,用于在所述集合查找单元未查找到与所述第二数据对应的键值对中的key对应的消重集合时,建立与所述第二数据对应的键值对中的key对应的消重集合,将所述第二数据对应的键值对中的value作为元素放入与所述第二数据对应的键值对中的key对应的消重集合中。

可选的,所述装置还包括:标识插入单元,用于在所述数据划分单元根据预设的划分比例,将所述第二数据划分为第一部分和第二部分后,确定所述第一数据的对应的业务标识,在所述第一部分前插入确定的所述业务标识;

所述键值对确定单元,具体用于将所述业务标识、所述第一部分和第二部分构成的键值对确定为与所述第二数据对应的键值对,其中,所述业务标识和所述第一部分一起用作键key,所述第二部分用作值value。

可选的,所述数据划分单元,具体用于:根据预设的划分比例1:3,将所述第二数据的前1/4划分为第一部分,将所述第二数据的后3/4划分为第二部分。

可选的,所述数据转换单元,具体用于:使用64位循环冗余校验crc算法或消息摘要算法第五版md5将待消重的第一数据转换为固定长度的第二数据。

本发明实施例提供的..方法及系统,可以….。当然,实施本发明的任一产品或方法必不一定需要同时达到以上所述的所有优点。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的一种数据消重方法的流程图;

图2为本发明实施例提供的另一种数据消重方法的流程图;

图3为本发明实施例提供的另一种数据消重方法的流程图;

图4为本发明实施例提供的另一种数据消重方法的流程图;

图5为本发明实施例提供的一种数据消重装置的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

如图1所示,本发明实施例提供的一种数据消重方法,可以包括:

s100、将待消重的第一数据转换为固定长度的第二数据;

具体的,可以使用64位循环冗余校验crc算法或消息摘要算法第五版md5将待消重的第一数据转换为固定长度的第二数据。

其中,待消重的第一数据可以有多种形式,如网络链接、标题对应的字符串等。

其中,本发明的数据消重方法可以在数据消重装置中执行,该数据消重装置可以与业务端设备通信连接,待消重的第一数据可以是由业务端设备发送至数据消重装置的。同时,为了区分来自不同业务端设备的第一数据,各业务端设备在发送第一数据时还可以将其业务标识发送至数据消重装置。其中,业务端设备可以是一个物理设备,也可以是一个设备集群。在业务端设备为一个设备集群时,多个业务端设备即为多个设备集群,同一设备集群内的设备发送的业务标识相同。

s200、根据预设的划分比例,将所述第二数据划分为第一部分和第二部分,其中,所述第一部分在所述第二数据中位于所述第二部分左侧且与所述第二部分相邻;

其中,划分比例可以为1:3。

步骤s200可以包括:根据预设的划分比例1:3,将所述第二数据的前1/4划分为第一部分,将所述第二数据的后3/4划分为第二部分。

为了避免消重集合中元素数量的增长导致本发明进行数据消重的效率下降,本发明将第二数据划分为两部分,这样在对比时就可以先通过第一部分缩小范围,再在小范围集合中查找第二部分即可,大大提高了数据消重的效率。

本申请发明人经过大量的实验得出在划分比例为1:3时,可以使得本发明进行数据消重的效率最高。

s300、将所述第一部分和第二部分构成的键值对确定为与所述第二数据对应的键值对,其中,所述第一部分用作键key,所述第二部分用作值value;

s400、查找与所述第二数据对应的键值对中的key对应的消重集合,如果查找到,则执行步骤s500;

在本发明其他实施例中,如果未查找到与所述第二数据对应的键值对中的key对应的消重集合,则可以建立与所述第二数据对应的键值对中的key对应的消重集合,将所述第二数据对应的键值对中的value作为元素放入与所述第二数据对应的键值对中的key对应的消重集合中。

具体的,查找与所述第二数据对应的键值对中的key对应的消重集合,可以包括:查找集合名称与所述第二数据对应的键值对中的key相同的消重集合。

其中,建立与所述第二数据对应的键值对中的key对应的消重集合,可以包括:

建立集合名称所述第二数据对应的键值对中的key的消重集合。

s500、在查找到的消重集合中查找与所述第二数据对应的键值对中的value相同的元素,如果未查找到与所述第二数据对应的键值对中的value相同的元素,则执行步骤s600;如果查找到与所述第二数据对应的键值对中的value相同的元素,则执行步骤s700;

s600、将所述第二数据对应的键值对中的value作为元素放入查找到的消重集合中;

s700、将所述第一数据标识为重复数据。

具体的,在将第一数据标识为重复数据后,可以将第一数据为重复数据的消息返回给发送第一数据的业务端设备。

本发明实施例提供的一种数据消重方法,可以将待消重的第一数据转换为固定长度的第二数据;根据预设的划分比例,将所述第二数据划分为第一部分和第二部分,其中,所述第一部分在所述第二数据中位于所述第二部分左侧且与所述第二部分相邻;将所述第一部分和第二部分构成的键值对确定为与所述第二数据对应的键值对;查找与所述第二数据对应的键值对中的key对应的消重集合,如果查找到,则在查找到的消重集合中查找与所述第二数据对应的键值对中的value相同的元素,如果未查找到与所述第二数据对应的键值对中的value相同的元素,则将所述第二数据对应的键值对中的value作为元素放入查找到的消重集合中;如果查找到与所述第二数据对应的键值对中的value相同的元素,则将所述第一数据标识为重复数据。由于本发明将数据划分为两部分,这样在对比时就可以先通过第一部分缩小范围,再在小范围集合中查找第二部分即可,大大提高了数据消重的效率。

如图2所示,本发明实施例提供的另一种数据消重方法,可以包括:

s100、将待消重的第一数据转换为固定长度的第二数据;

s200、根据预设的划分比例,将所述第二数据划分为第一部分和第二部分,其中,所述第一部分在所述第二数据中位于所述第二部分左侧且与所述第二部分相邻;

s210、确定所述第一数据的对应的业务标识,在所述第一部分前插入确定的所述业务标识;

s310、将所述业务标识、所述第一部分和第二部分构成的键值对确定为与所述第二数据对应的键值对,其中,所述业务标识和所述第一部分一起用作键key,所述第二部分用作值value。

其中,步骤s310是图1所示步骤s300的一种具体执行过程。

s400、查找与所述第二数据对应的键值对中的key对应的消重集合,如果查找到,则执行步骤s500;

s500、在查找到的消重集合中查找与所述第二数据对应的键值对中的value相同的元素,如果未查找到与所述第二数据对应的键值对中的value相同的元素,则执行步骤s600;如果查找到与所述第二数据对应的键值对中的value相同的元素,则执行步骤s700;

s600、将所述第二数据对应的键值对中的value作为元素放入查找到的消重集合中;

s700、将所述第一数据标识为重复数据。

图2所示实施例中,步骤s100、s200、s400、s500、s600、s700与图1所示实施例中的步骤s100、s200、s400、s500、s600、s700分别相同,不再赘述。

如图3所示,本发明实施例提供的另一种数据消重方法,可以包括:

s100、将待消重的第一数据转换为固定长度的第二数据;

s220、根据预设的划分比例1:3,将所述第二数据的前1/4划分为第一部分,将所述第二数据的后3/4划分为第二部分;

s300、将所述第一部分和第二部分构成的键值对确定为与所述第二数据对应的键值对,其中,所述第一部分用作键key,所述第二部分用作值value;

s400、查找与所述第二数据对应的键值对中的key对应的消重集合,如果查找到,则执行步骤s500;

s500、在查找到的消重集合中查找与所述第二数据对应的键值对中的value相同的元素,如果未查找到与所述第二数据对应的键值对中的value相同的元素,则执行步骤s600;如果查找到与所述第二数据对应的键值对中的value相同的元素,则执行步骤s700;

s600、将所述第二数据对应的键值对中的value作为元素放入查找到的消重集合中;

s700、将所述第一数据标识为重复数据。

如图4所示,本发明实施例提供的另一种数据消重方法,可以包括:

s110、使用64位循环冗余校验crc算法或消息摘要算法第五版md5将待消重的第一数据转换为固定长度的第二数据;

s220、根据预设的划分比例1:3,将所述第二数据的前1/4划分为第一部分,将所述第二数据的后3/4划分为第二部分;

s300、将所述第一部分和第二部分构成的键值对确定为与所述第二数据对应的键值对,其中,所述第一部分用作键key,所述第二部分用作值value;

s400、查找与所述第二数据对应的键值对中的key对应的消重集合,如果查找到,则执行步骤s500;如果未查找到与所述第二数据对应的键值对中的key对应的消重集合,则执行步骤s800;

s500、在查找到的消重集合中查找与所述第二数据对应的键值对中的value相同的元素,如果未查找到与所述第二数据对应的键值对中的value相同的元素,则执行步骤s600;如果查找到与所述第二数据对应的键值对中的value相同的元素,则执行步骤s700;

s600、将所述第二数据对应的键值对中的value作为元素放入查找到的消重集合中;

s700、将所述第一数据标识为重复数据。

s800、建立与所述第二数据对应的键值对中的key对应的消重集合,将所述第二数据对应的键值对中的value作为元素放入与所述第二数据对应的键值对中的key对应的消重集合中。

与上述方法实施例相对应,本发明还提供了一种数据消重装置。

如图5所示,本发明实施例提供的一种数据消重装置,可以包括:数据转换单元100、数据划分单元200、键值对确定单元300、集合查找单元400、元素查找单元500、元素放入单元600和数据标识单元700,

所述数据转换单元100,用于将待消重的第一数据转换为固定长度的第二数据;

其中,所述数据转换单元100,可以具体用于:使用64位循环冗余校验crc算法或消息摘要算法第五版md5将待消重的第一数据转换为固定长度的第二数据。

所述数据划分单元200,用于根据预设的划分比例,将所述第二数据划分为第一部分和第二部分,其中,所述第一部分在所述第二数据中位于所述第二部分左侧且与所述第二部分相邻;

其中,所述数据划分单元200,可以具体用于:根据预设的划分比例1:3,将所述第二数据的前1/4划分为第一部分,将所述第二数据的后3/4划分为第二部分。

所述键值对确定单元300,用于将所述第一部分和第二部分构成的键值对确定为与所述第二数据对应的键值对,其中,所述第一部分用作键key,所述第二部分用作值value;

所述集合查找单元400,用于查找与所述第二数据对应的键值对中的key对应的消重集合,如果查找到,则触发所述元素查找单元500;

所述元素查找单元500,用于在查找到的消重集合中查找与所述第二数据对应的键值对中的value相同的元素,如果未查找到与所述第二数据对应的键值对中的value相同的元素,则触发所述元素放入单元600;如果查找到与所述第二数据对应的键值对中的value相同的元素,则触发所述数据标识单元700;

所述元素放入单元600,用于将所述第二数据对应的键值对中的value作为元素放入查找到的消重集合中;

所述数据标识单元700,用于将所述第一数据标识为重复数据。

在本发明其他实施例中,图5所示装置还可以包括:集合建立单元,用于在所述集合查找单元400未查找到与所述第二数据对应的键值对中的key对应的消重集合时,建立与所述第二数据对应的键值对中的key对应的消重集合,将所述第二数据对应的键值对中的value作为元素放入与所述第二数据对应的键值对中的key对应的消重集合中。

在本发明其他实施例中,本发明实施例提供的一种数据消重装置还可以包括:标识插入单元,用于在所述数据划分单元200根据预设的划分比例,将所述第二数据划分为第一部分和第二部分后,确定所述第一数据的对应的业务标识,在所述第一部分前插入确定的所述业务标识;

所述键值对确定单元300,具体用于将所述业务标识、所述第一部分和第二部分构成的键值对确定为与所述第二数据对应的键值对,其中,所述业务标识和所述第一部分一起用作键key,所述第二部分用作值value。

本发明实施例提供的一种数据消重装置,可以将待消重的第一数据转换为固定长度的第二数据;根据预设的划分比例,将所述第二数据划分为第一部分和第二部分,其中,所述第一部分在所述第二数据中位于所述第二部分左侧且与所述第二部分相邻;将所述第一部分和第二部分构成的键值对确定为与所述第二数据对应的键值对;查找与所述第二数据对应的键值对中的key对应的消重集合,如果查找到,则在查找到的消重集合中查找与所述第二数据对应的键值对中的value相同的元素,如果未查找到与所述第二数据对应的键值对中的value相同的元素,则将所述第二数据对应的键值对中的value作为元素放入查找到的消重集合中;如果查找到与所述第二数据对应的键值对中的value相同的元素,则将所述第一数据标识为重复数据。由于本发明将数据划分为两部分,这样在对比时就可以先通过第一部分缩小范围,再在小范围集合中查找第二部分即可,大大提高了数据消重的效率。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1