澳门国际 大数据重复数据删除方案

日期:2021-01-14 08:13:44 浏览量: 128

数据库中有一个表,用于存储用户的尺寸数据。随着时间的流逝,用户的维度数据也可能会更改万人牛牛 ,因此每次查看时都会保存一条记录。

现在有必要按用户分析数据,但是其中存在大量重复数据,并且使用数据库的等效值删除重复数据显然不可行。

查找数据内容的MD5值

MD5值的特征:

1.可压缩性:对于任何长度的数据,计算出的MD5值的长度都是固定的。

2.易于计算:很容易从原始数据计算MD5值。

3.抗修改性:对原始数据的任何修改,即使仅修改一个字节,获得的MD5值也大不相同。

4.强大的防冲突功能:了解原始数据及其MD5值,很难找到具有相同MD5值的数据(即假数据)。

什么是url_url去重_url是什么意思

根据MD5值的特性url去重,为每个记录的维数据内容计算MD5值,然后根据MD5值判断重复记录。

将数据存储在数据库中之后,使用sql直接检测重复数据,然后删除或标记重复数据。

至少在此阶段,内存和CPU的执行效率受到固定时间的限制,并且不可能同时在内存中检查和删除大量数据。正如外部排序算法与内部排序算法有很大不同一样,当遇到如此大量的数据重复问题时,有必要设计该算法。

花朵过滤器

bloom过滤器是一种使用哈希方法检查重复项的工具。它对每个数据执行n个独立的哈希处理,并且每次获取一个整数时,便总共获取n个整数。一个非常长的数组用于表示不同的整数,并且每个插入操作会将与这n个整数相对应的位置0设置为1(如果已将其设置为1,则它将保持不变)。下次您搜索时,将执行相同的计算,如果这些位置均为1,则表明它已经存在。

布隆过滤器的优点是易于使用,因为它不将密钥存储在内存中,节省了空间,多个哈希算法无关,并且可以高效并行执行。缺点也很明显。这种算法可能会出错亚博app安全有保障 ,并且存在误判率的概念。我们可以通过散列的数量来减少误判率,但是不能保证不会有任何误判。

BitMap

例如,有2.个5亿个整数来查找非重复整数的数量,并且内存空间不足以容纳这些2.个5亿个整数。

一个数字只有三个状态,它们不存在,只有一个并且是重复的。因此,我们只需要2位来存储数字状态。假设我们将数字设置为00(如果不存在),01(如果存在一次)和11(如果存在两次或更多次)。然后,我们可能需要数十兆的存储空间。下一个任务是遍历2. 5亿个数字一次,如果相应的状态位为00,则将其更改为01;如果对应的状态位为01,则将其更改为11;如果为11,则相应的转换位保持不变。

最后,我们对状态位01进行计数,得到唯一数字的数量,时间复杂度为O(n)。

哈希分组

如果有两个50G数据副本,则需要检查重复项,并且内存为4Gyabo88登陆 ,如何检查?

url是什么意思_url去重_什么是url

这个想法是先哈希50G数据并将其分成1000个文件。从理论上讲,如果哈希处理得当,那么这1000个文件的大小几乎是相似的。如果存在重复项url去重,则A和B的重复数据必须位于同一文件中,因为哈希结果是相同的。分别加载1000个文件,然后一个一个地进行比较,以查看是否存在哈希重复项。想法是先根据相关性对所有数据进行分组,然后将相关数据放在相同或相近的位置,然后比较小文件。

有1000万条短信,找到前10条经常性短信吗?

哈希表方法可用于将1000万个项目分为几组,以扫描和构建哈希表。在第一次扫描中,将第一个字节,最后一个字节和中间的任何两个字节作为哈希码,然后将它们插入哈希表。并记录其地址,信息长度和重复次数,1000万条信息,并记录这几条信息可以保存。怀疑与哈希码相同且长度相同。比较一下。同一条记录仅添加一次到哈希表亚博直播 ,但是重复次数增加了1。一次扫描后,记录了各自的重复时间,并执行了第二次哈希表处理。线性时间选择可以在O(n)级别完成前10个搜索。分组后,必须确保每个副本中的前10个不同,这可以通过哈希保证,也可以根据哈希值的大小直接分类。

使用数据库创建关键字段(一个或多个),以根据URL地址创建重复数据删除和重复数据删除的索引:

使用场景:与该url地址相对应的数据不会更改,并且该url地址可以唯一地标识一条数据。

思考:

url是什么意思_什么是url_url去重

URL在Redis中存在

获取URL地址并确定URL是否存在于Redis集合中

存在:表示该网址已经被请求,未被请求

不存在:表示尚未请求url地址,请将该URL地址保存在Redis集合中

花朵过滤器:

使用多种加密算法对网址进行加密以获取多个值

url去重_什么是url_url是什么意思

转到相应的值并将结果设置为1

还会通过加密算法生成一个新的网址,以生成多个值

如果相应位置的值全为1,则表示该网址已被抓取。

否则,它不会被抓取,只需将相应位置的值设置为1

根据数据本身进行重复数据删除:

选择一个特定字段(可以唯一标识数据的字段),使用加密算法(MD5,sha1))对该字段进行加密ag捕鱼官网 ,生成字符串并将其存储在Redis集合中

关注新数据,以相同的方式对其进行加密,

如果获取的字符串存在于Redis中,则表示数据存在,请更新数据,

否则,数据将不存在,并且将数据插入。