大数据计数原理1+0=1这你都不会算(三)

2017年架构师最重要的48个小时 | 8折倒计时

这是本坑的第三篇,之前已经说了关于 HashSet 和 BitMap 了,这次说说 Bloom Filter 布隆过滤器,要是还不知道前面讲了啥的,可以点一下下面的连接看看。

大数据计数原理1+0=1这你都不会算(一)

大数据计数原理1+0=1这你都不会算(二)

我们都知道BitMap已经非常节省空间了,一个值只需要一个 bit 就可以进行统计了,但是,对于上百亿的数据来说,碰撞率即使非常低,但也不是一个可以忽视的问题了。

当时提出这个问题,一个是因为垃圾电子邮箱,每天少说都有几十亿的垃圾邮箱在发垃圾邮件,把这些邮件直接全部都存储起来,不是一个经济的做法。使用 BitMap 来进行存储吧,碰撞的次数太多,很多正常的邮件都被标记为黑名单邮件,很是难受。

另外一个是因为 Google 的爬虫,在进行链接抓取的时候,为了效率,都要知道哪些链接抓过哪些没抓过,一开始也是用的 BitMap ,但是碰撞的链接太多,导致很多链接都无法抓到,导致很多网页都没法被搜录,也很是难受。

怎么办呢?空间时间已经使用到极致了,hash算法也选择了能尽量平均分配到整个数组的 bit 里面了。大神Burtom Bloom 发明了一个布隆算法。

这个算法的存储结构跟 BitMap 是相同的,区别在于它使用了多个 Hash 算法,一个字符串经过N个 Hash 算法会生成多个 Hash 值,如果N个值的 bit位 都为1 ,才判定该字符串已经存在。

比如字符串 “小蕉写得这么给力你不点个赞吗”,经过 Hash 算法1、Hash 算法2、Hash 算法3,生成了数字,1、11、21。

这时候又来了一个字符串 “小蕉写得这么给力你不点个赞”,经过 Hash 算法1、Hash 算法2、Hash 算法3、生成了数字,1,11,19。

发现,咦,没有全部出现,所以该字符串没有出现过。

就这样,一个 Bloom Filter 就构造完了,每次只需要生成N个值就可以判定该字符串有没有存在过了,经过严格的数学推导,只需要 8 个 Hash 函数,就可以把Bloom Filter 的错误率降低到一个非常低的值,非常可靠。

我们这样想,即使真的真的真的那么巧,k-1个Hash函数的值都一样,只要第k个不一样,那这个算法依然会把它当成新的元素。这样就解决了 BitMap 误判率高的问题了,时间复杂度也只是根据所选Hash函数的个数线性增长。

本文作者:大蕉

来源:51CTO

时间: 2024-10-30 19:23:14

大数据计数原理1+0=1这你都不会算(三)的相关文章

大数据计数原理1+0=1这你都不会算(五)

2017年架构师最重要的48个小时 | 8折倒计时 Hello哈,又好久没聊大数据相关的东西了,是不是又忘记了吖?这次聊聊B-树的升级版,B+树.前面的内容小伙伴可以回顾一下. 大数据计数原理1+0=1这你都不会算(一) 大数据计数原理1+0=1这你都不会算(二) 大数据计数原理1+0=1这你都不会算(三) 大数据计数原理1+0=1这你都不会算(四) 所谓B+树,跟B-树主要有这么几个差别. 1.只有叶子节点会保存数据,根节点和子节点都只把子树最小的值(或最大值)作为索引 2.t阶B+树,除根节

大数据计数原理1+0=1这你都不会算(一)

2017年架构师最重要的48个小时 | 8折倒计时 hello哈,大家是不是好久没见到我啦?我也是一直在摸索小伙伴们喜欢看到什么东西,不喜欢看什么东西,还请大家多多支持.为了表示感谢.小蕉在这给你们一鞠躬,二鞠躬,三.事不过三~ 1+0=1你都不会谈什么大数据? 这篇呢,又是开坑之作,这是一个系列,主要会将大数据下的计数原理.说到计数,不知道大家会第一印象想到什么,我估计会是..数手指..没错,小蕉从小学开始就开始数手指,所有20以内的加减法很早就掌握了.研表究明,这估计也是我们现在使用十进制的

【干货】大数据在工业4.0演进中的价值

演讲实录: 今天非常高兴跟大家来分享工业4.0研究院对工业大数据的认识.具体来讲,我们将讨论工业4.0演进过程中,大数据将呈现什么价值,我们将从商业模式的设计来认识工业大数据的潜力. 在正式开始前,我先解释一下工业4.0的认识,它是怎么样来定义的.刚才的专家从不同的角度讲述了对工业4.0的认识,有的是认为它是一种技术,有人认为它是一种模式,或者是一种完整的创新,我们把工业4.0定义为一个新工业时代,德国人对工业4.0时代有较为完整的认知体系,这也是工业4.0研究院关注德国工业4.0概念的原因.

第四届IT2020高端论坛成功举办 聚焦数字化转型、云计算、大数据与工业4.0

今天,第四届IT 2020高端论坛:上海分论坛成功举办.始于2013年,IT 2020高端论坛由中国工程院.EMC公司和VMware公司共同发起并主办,关注中国经济与信息化发展目标和世界范围的IT创新. 每年,IT 2020高端论坛都吸引大量来自中国.美国及全球各地的学术界.产业界领导者及专家学者参与,分享知识.交流经验.2016年,IT 2020高端论坛聚焦实施中的十三五规划(2016-2020年).2025中国制造及互联网+等多个重要战略目标. 为了将当下最重要且特点鲜明的IT趋势主题和发展

面对大数据与“工业4.0”时代 我们该做些什么?

大数据时代和工业4.0时代同时达到一个爆发期,这可以看作两化融合的最高阶状态.我们可以相信和憧憬,在这个数据与工业4.0充分融合的时代会给人类带来有史以来最大一次的生产力提高和解放.大数据和工业4.0融合的时代,这是个最好的时代. 大数据 大数据时代开始于2001年,我是比较认可这一观点的.因为大数据这个词语被创造出来是在20世纪90年代,在2000年的时候第一次在学术论文上有人将它提出,在2003年的时候在FrancisX.Diebolt在<宏观经济测量和预测的大数据动态因子模型>一书中正式

大数据技术原理与应用【点个赞】

对大数据的资料进行了比较系统的学习,如下的这个资料推荐:   中国高校大数据课程公共服务平台,是国内第一个服务于高校大数据课程建设的公共服务平台,旨在促进高校大数据课程建设,提高大数据课程教学水平,提升学生学习大数据课程效果.平台服务对象涵盖高校.教师和学生.平台为高校开设大数据课程提供全流程辅助,为教师开展教学工作提供一站式服务,为学生学习大数据课程提供全方位辅导.平台重点打造"13个1工程",即1本教材(含官网).1个教师服务站.1个学生服务站.1个公益项目.1堂巡讲公开课.1个示

浅析大数据对政府2.0的推进作用

1 大数据是信息革命的又一里程碑 1.1 大数据时代来临 大数据从狭义上讲,是指无法在一定时间内用常规软件工具对其内容进行抓取.管理和处理的数据集合:从广义上讲,是从各种类型的海量信息中快速获得有价值信息的能力,人类思维和决策的方式及方法将进入更高层次,有了大数据的这种能力,人类才能真正从"智能"走向"智慧". 随着信息技术特别是信息通讯技术的发展,互联网.WEB2.0.社交网络.物联网.移动互联网.云计算等相继进入人们的日常工作和生活中,全球数据信息量呈指数式爆炸

大数据重塑政府3.0时代

清华大学公共管理学院教授孟庆国日前在参加由启迪控股和清华大学启迪创新研究院举办的"互联网+政务"高峰论坛暨中国数字产城联盟签约仪式时表示,大数据的使用将重塑政府,使政府治理模式发生根本性变化,可以称为政府3.0. 孟庆国表示,创新.协调.绿色.开放.共享这五大发展理念背后其背后隐含着非常强的互联网发展的因素,未来政府治理体系和能力面临重塑问题.政府3.0是指在大数据环境下,在建构以每一个人为中心的构架下,政府更加主动开放数据,更加强调政府数据的分享与合作,实现共享与共治的模式. 政府3

大数据与创新2.0时代的城市规划

基于创新2.0的大数据将为基于用户体验的技术创新.应用创新.商业模式创新.以及跨界交叉创新提供肥沃的土壤.全球城市将越来越成为一个面向知识社会创新2.0形态的流动空间. 亚里士多德有一句名言:"人们来到城市是为了生活,人们居住在城市是为了更好地生活".城市是人类文明的结晶,也是人类创造力的集大成之地.在数字化互联网的年代,城市的本质和形态可能也在悄悄地面临巨大的变革. 古典城市多因交流之便利而诞生.20世纪初,工业时代来临,交通和制造业革命让城市人口规模和生产规模迅速膨胀.大规模的人口