大数据存储与处理-数据流挖掘
大数据存储与处理技术探究

大数据存储与处理技术探究摘要:大数据时代,暴增的数据信息类型和数量,切实给人们生活、生产提供了更丰富的资源,也促进了人们工作效率、质量的提升;但值得注意的是,以上现象的出现也加大了信息处理难度。
在大数据技术飞速发展的背景下,数据信息存储及处理开始面临更多新挑战,此时如何依托大数据技术进行信息的存储与处理,需要进行重点探究。
本文主要是分析大数据存储及处理技术,希望能够借助大数据优势、功能的充分发挥,促进数据信息处理效率的提升,为数据信息传输、处理、存储中的安全性保驾护航,进而为我国现代化信息技术领域的繁荣、昌盛提供促进作用。
关键词:大数据存储;处理技术;应用;分析引言目前,全面迎来的大数据时代,为我国科技水平的提升、国民经济的持续增长提供了极大程度的推动作用,不仅如此,现代化计算机信息技术也迎来了更多发展机遇,但与此同时,面临的挑战也逐步增多。
考虑到该方面情况,必须要进一步优化完善大数据存储和处理技术,继而借助数据信息,使人们之间的沟通、交流有效增强,进一步便利人们生活工作的同时,为数据信息安全、有效、可靠提供保障,使以往计算机信息技术领域的不足、缺陷得到有效弥补,为我国计算机技术整体水平的提升奠定坚实基础。
1大数据时代数据信息特征分析1.1多元化特征大数据时代,多元化是数据信息呈现的主要特征之一,即大数据时代涌现的数据信息为多种格式和多样类型,利于事物之间多方面联系的充分体现,也能将更多具备价值的信息提供给广大用户。
1.2共享性特征大数据时代数据信息的共享性特征也十分突出,且在该时代背景下,网络平台上集成的海量数据信息,已经成为公开、公共的信息资源之一,所以有共享性、开放性特征展现,且社会群众能够以自身需求为依据,通过互联网环境进行相关数据信息的搜索,保障用户多元化需求得到充分满足[1]。
1.3交流性特征数据信息的交流性特征也较为突出,且受这一特征影响,用户能够借助网络环境,基于数据信息的高效利用,达到交流、沟通目的。
大数据分析中的数据流处理与实时计算技术介绍(六)

大数据分析中的数据流处理与实时计算技术介绍随着互联网的蓬勃发展,数据量呈现爆发式增长,大数据成为当今信息时代的关键词之一。
大数据分析作为一种重要的数据处理和应用技术,正在日益受到重视。
而大数据的分析和处理,离不开数据流处理和实时计算技术的支持。
本文将介绍大数据分析中的数据流处理和实时计算技术,探讨其原理和应用。
一、数据流处理技术在大数据领域,数据流处理是指对数据流进行实时的处理和分析,以便能够及时获取数据的价值信息。
数据流处理技术的发展,主要是为了解决传统批处理方式无法满足实时性需求的问题。
数据流处理技术通常包括以下几个方面内容:1. 事件驱动事件驱动是数据流处理的基础,它是指在数据流中出现的各种事件,例如数据到达、数据变化等,通过事件触发相应的处理操作。
事件驱动的处理方式能够实现实时性和高效性,是数据流处理技术的核心之一。
2. 流式计算流式计算是数据流处理的重要手段,它是指对不断产生的数据流进行连续计算和处理。
流式计算可以实现实时性和高效性,对于海量数据的计算和分析非常有用。
3. 状态管理在数据流处理中,状态管理是一个重要的问题,因为数据流的处理需要对数据的状态进行管理和维护。
状态管理的好坏直接影响数据流处理的效率和性能。
二、实时计算技术实时计算是指在数据流处理中,能够及时对数据进行计算和分析,以便能够及时获取数据的价值信息。
实时计算技术是数据流处理的重要组成部分,它主要包括以下几个方面内容:1. 流式数据处理流式数据处理是实时计算的基础,它是指对不断产生的数据流进行实时的处理和分析。
流式数据处理能够实现对数据的实时计算和分析,对数据流处理非常重要。
2. 实时数据库实时数据库是指能够实现对数据的实时存储和查询的数据库系统。
实时数据库能够满足实时计算的需求,对于大数据分析非常有用。
3. 实时分析实时分析是指对数据进行实时的分析和挖掘,以便能够及时获取数据的价值信息。
实时分析能够帮助人们及时发现数据的规律和趋势,对大数据分析非常重要。
大数据处理与存储技术

大数据处理与存储技术随着互联网的迅速发展以及物联网、移动互联网、社交网络等新兴技术的兴起,大数据技术逐渐成为当今社会和商业中不可或缺的一部分。
大数据的快速增长对处理和存储技术提出了巨大的挑战。
本文将探讨大数据处理与存储技术的重要性以及相关的解决方案。
一、大数据的定义和特点大数据是指体量巨大、类型多样、变化迅速的数据资源。
与传统数据不同,大数据具有以下特点:1. 体量巨大:大数据的存储量庞大,通常以PB、EB甚至更大的单位来衡量。
2. 类型多样:大数据包含结构化数据、半结构化数据和非结构化数据,并且这些数据的形式和格式都各不相同。
3. 变化迅速:大数据的产生和更新速度极快,需要实时或近实时地进行处理和存储。
二、大数据处理技术面对庞大的数据量和复杂的数据类型,传统的数据处理和存储技术已经无法胜任。
因此,出现了一系列解决方案来应对大数据处理的挑战。
1. 分布式计算:采用分布式计算技术可以将大数据分成多个小任务进行处理,从而减少单一计算机的压力。
2. 并行计算:通过并行计算技术,在多个处理单元上同时执行数据处理任务,提高处理速度。
3. 内存计算:采用内存计算技术可以将数据存储在内存中,提高数据访问速度和处理效率。
4. 数据流处理:利用数据流处理技术可以实时处理和分析数据,将数据的处理和存储过程合二为一,降低数据传输和存储成本。
5. 机器学习:利用机器学习算法和模型可以从大数据中提取有价值的信息和知识,为决策提供支持。
三、大数据存储技术大数据的存储需要解决存储量大、数据类型多样、数据安全性等问题。
以下是一些用于大数据存储的常见技术:1. 分布式文件系统:采用分布式文件系统可以将大数据分布在多个节点上进行存储,提高数据的容错性和可靠性。
2. 列存储数据库:列存储数据库将数据按列存储,提高数据的读取效率和压缩比。
3. NoSQL数据库:NoSQL数据库适用于非结构化和半结构化数据,具有良好的可扩展性和灵活性。
大数据分析与挖掘

大数据分析与挖掘随着信息时代的发展和互联网的普及,大数据分析与挖掘成为一项备受关注的技术和应用。
本文将从大数据的概念出发,介绍大数据分析与挖掘的基本原理和方法,并阐述其在各个领域中的应用。
1. 大数据的概念大数据是指规模庞大、类型多样和产生速度快的数据集合。
它具有3个维度的特征,即数据的量大、速度快和多样性高。
在现实生活中,包括了各种各样的数据,如社交媒体数据、物联网数据、传感器数据等。
2. 大数据分析的基本原理大数据分析是指通过对大数据进行收集、清洗、存储和分析,从中提取有价值的信息和知识。
其基本原理包括以下几个方面: - 数据收集:通过各种渠道收集大规模的数据,并对数据进行清洗和格式化处理,以便后续的分析。
- 数据存储:采用分布式数据库和云存储等技术,将海量的数据进行存储和管理。
- 数据分析:利用统计学、机器学习和人工智能等方法,对数据进行分析和挖掘,以发现隐藏在数据中的模式和规律。
- 结果呈现:将分析和挖掘的结果通过可视化手段呈现,以便用户理解和应用。
3. 大数据分析与挖掘的方法大数据分析与挖掘的方法多种多样,常用的包括以下几种:- 关联分析:通过发现数据之间的关联关系,揭示出数据中的隐藏规律。
- 聚类分析:将数据集合划分为若干个具有相似特征的类别,以便更好地理解和概括数据。
- 分类与预测:通过对已有数据进行训练,建立分类或预测模型,对未知数据进行分类或预测。
- 异常检测:通过发现和识别数据中的异常行为或模式,帮助用户发现潜在的问题或风险。
4. 大数据分析与挖掘的应用大数据分析与挖掘在各个行业和领域中都有广泛的应用,以下是几个具体的例子:- 金融领域:通过对金融数据进行分析和挖掘,实现风险控制、欺诈检测和智能投资等功能。
- 零售业:通过对销售数据和顾客行为进行分析,实现精准营销和商品推荐等服务。
- 医疗领域:利用大数据分析和挖掘技术,实现疾病预测、个性化治疗和医疗资源优化等目标。
- 城市管理:通过对城市感知数据进行分析,实现交通管理、环境监测和智慧城市建设等目标。
大数据的存储与处理

大数据的存储与处理随着信息技术的发展,大数据已经成为了当前社会和经济中的热门话题。
大数据的存储与处理技术变得愈发重要,因为大数据的有效存储和高效处理对于信息的挖掘和运用至关重要。
本文将重点探讨大数据的存储与处理技术,并分析其应用及发展前景。
一、大数据存储技术大数据的存储技术是指将海量数据保存在可靠、高效的存储系统中的方法和手段。
传统的存储方式已经无法满足大数据存储的需求,因此需要采用特殊的存储技术。
目前,常见的大数据存储技术包括分布式文件系统、列式数据库和NoSQL数据库。
1. 分布式文件系统分布式文件系统是一种将文件分布存储在多台机器上的系统,能够实现数据的高可靠性和高可扩展性。
典型的分布式文件系统有Hadoop 分布式文件系统(HDFS)和谷歌文件系统(GFS)。
这些系统通过将文件切分成多个块并分布存储在不同的节点上,提高了数据的读写速度和容错能力。
2. 列式数据库列式数据库是一种将数据按列存储的数据库系统,相比传统的行式数据库,列式数据库在数据读取和查询方面更加高效。
列式数据库将每一列的数据连续存储,减少了不必要的IO操作,提高了查询性能。
著名的列式数据库包括Google的Bigtable和Apache的HBase。
3. NoSQL数据库NoSQL(Not Only SQL)数据库是一种非关系型数据库,主要应用于大规模分布式数据的存储和处理。
NoSQL数据库放弃了传统关系型数据库的ACID特性,以牺牲一部分数据一致性为代价,实现了更高的性能和可扩展性。
常见的NoSQL数据库有MongoDB、Cassandra和Redis等。
二、大数据处理技术大数据的处理技术是指对大规模数据进行分析和计算的方法和工具。
大数据处理的关键是高效的分布式计算和并行处理能力。
目前,常用的大数据处理技术包括MapReduce、Spark和Storm等。
1. MapReduceMapReduce是一种分布式计算模型,由Google提出并应用于大规模数据处理。
大数据的存贮和处理课件

利用机器学习技术对大数据进行分析和发掘,发现数据背后的规律和趋势。
智能化决策
基于大数据和人工智能的决策支持系统,提高决策的科学性和准确性,推动智 能化的发展。
THANK YOU
感谢各位观看
可扩大性。
散布式存储系统通常采用可扩大的架构 ,可以根据数据量和业务需求进行灵活 的扩大,同时支持多种数据类型和数据
访问模式。
散布式存储系统具有高可用性和高可靠 性,可以保证数据的持久性和一致性,
同时支持数据备份和恢复功能。
NoSQL数据库
NoSQL数据库是一种非关系型数据库,它采用键值对、文档、列族或图形等数据结构来存储数据,并 支持灵活的数据模型和水平可扩大性。
数据仓库适用于对大量数据进行查询和分析的 应用场景,如商业智能、决策支持和数据分析 等。
数据仓库具有高性能、高可用性和可扩大性等 特点,可以支持复杂的查询和报表生成,同时 保证数据的安全性和完整性。
数据湖
数据湖是一种集中式的数据存储和处理平台,它可以 存储和管理大量结构化和非结构化数据,包括音频、
大数据的存贮和处理课件
目录
• 大数据概述 • 大数据存储技术 • 大数据处理技术 • 大数据安全与隐私保护 • 大数据挑战与未来发展
01
大数据概述
大数据的定义与特点
定义:大数据是指数据量巨大、类型多样、处 理复杂的数据集合。
01
数据量大:数据量通常在TB级别甚至PB 级别,需要大规模存储和处理。
Streaming 和 MLlib 等组件,分别用于结 构化数据处理、实时数据处理和机器学习。
Flink
一个流处理和批处理的开源框架,具有高性能和可扩大性。
Flink 提供了一个统一的 API,用于处理无界和有界数据流。它支持高吞吐、低延迟的流处理,以及大 规模批处理。Flink 的核心是一个流执行引擎,它能够高效地处理数据流并支持状态计算。此外, Flink 还提供了丰富的窗口函数和连接器,以支持各种数据处理场景。
大数据关键技术有哪些(一)

大数据关键技术有哪些(一)引言概述:随着大数据时代的到来,大数据的处理和分析成为业务领域中的一个重要挑战。
为了应对这一挑战,大数据关键技术得以发展和应用,以提供高效的数据处理和分析解决方案。
本文将介绍大数据关键技术的第一部分。
正文内容:一、数据存储技术1. 分布式文件系统:如Hadoop Distributed File System (HDFS),提供高可靠性和可伸缩性的文件存储方案。
2. 列式存储:将数据按照列存储,提高数据压缩率和查询效率。
3. 内存数据库:将数据存储在内存中,提高数据读写速度。
二、数据处理技术1. 批处理:通过将数据划分为批次进行处理,适用于对历史数据进行分析。
2. 流式处理:实时处理数据流,适用于对实时数据进行分析和决策。
3. 图计算:通过图的结构和算法进行大规模数据的分析和计算。
三、数据挖掘技术1. 分类与预测:通过训练模型对数据进行分类和预测,如决策树、支持向量机等。
2. 聚类分析:发现数据中的相似性,将数据聚集在一起形成群组,如k-means算法等。
3. 关联规则挖掘:挖掘数据中的关联关系,如购物篮分析、关联规则算法等。
四、数据可视化技术1. 图表可视化:通过绘制图表展示数据分布和趋势,如折线图、柱状图等。
2. 地理可视化:将数据在地理空间上进行可视化展示,如地图、热力图等。
3. 交互可视化:与用户进行交互,让用户自由探索数据,如可拖动、可放大缩小等。
五、数据安全与隐私保护技术1. 数据加密:对数据进行加密处理,确保数据传输和存储的安全。
2. 访问控制:限制用户对数据的访问权限,确保数据的隐私性。
3. 匿名化处理:对数据进行脱敏处理,保护用户的隐私。
总结:本文介绍了大数据关键技术的第一部分,包括数据存储技术、数据处理技术、数据挖掘技术、数据可视化技术以及数据安全与隐私保护技术。
这些技术在大数据时代的应用中发挥着重要作用,为数据处理和分析提供了有效的解决方案。
在后续的文章中,将继续探讨大数据关键技术的其他方面。
云计算环境下的大数据存储与处理技术

云计算环境下的大数据存储与处理技术摘要:随着信息技术的飞速发展,大数据时代已然来临。
云计算作为一种新兴的计算模式,为大数据的存储和处理提供了强大的支持。
本文深入探讨了云计算环境下的大数据存储与处理技术,包括云计算的概念与特点、大数据的特征、云计算环境下大数据存储技术、处理技术以及面临的挑战与未来发展趋势。
关键词:云计算;大数据;存储一、引言在当今数字化时代,数据的产生速度和规模呈爆炸式增长。
大数据不仅包含了海量的数据量,还具有多样性、高速性和价值性等特点。
而云计算以其强大的计算能力、弹性的资源分配和高可靠性,成为了处理大数据的理想平台。
云计算环境下的大数据存储与处理技术对于企业和社会的发展具有重要的战略意义。
二、云计算的概念与特点(一)云计算的概念云计算是一种基于互联网的计算方式,通过将计算资源、存储资源和软件服务等以按需付费的方式提供给用户。
用户可以通过网络随时随地访问这些资源,而无需关心其具体的物理位置和实现方式。
(二)云计算的特点1.弹性可扩展:云计算平台可以根据用户的需求动态地调整计算资源和存储资源,实现弹性扩展。
2.高可靠性:云计算平台通常采用分布式架构,具有冗余备份和故障恢复机制,保证了服务的高可靠性。
3.按需服务:用户可以根据自己的实际需求选择所需的计算资源和存储资源,按使用量付费,避免了资源的浪费。
4.资源共享:云计算平台将计算资源和存储资源集中管理,实现了资源的共享,提高了资源的利用率。
三、大数据的特征(一)数据量大大数据的首要特征就是数据量巨大。
随着互联网、物联网、移动设备等的普及,数据的产生速度越来越快,数据量也呈指数级增长。
(二)数据类型多样大数据不仅包括传统的结构化数据,还包括半结构化和非结构化数据,如文本、图像、音频、视频等。
(三)数据处理速度快大数据的高速性要求能够对数据进行快速的处理和分析,以满足实时性的需求。
(四)数据价值密度低大数据中虽然蕴含着巨大的价值,但由于数据量庞大,价值密度相对较低,需要通过有效的数据处理技术来挖掘其中的价值。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
• 白名单
• 例2:Google Alert
• Pub-Sub系统,每个人可以设定订阅的关键词
• 明显的方法
• 建立Hash表,查询,命中
• 大数据下,filter太多,数据太多,怎么办?
• 包括10 billion 个白名单
询 • 剩下2d/10 – 2d/100 = 18d/100次查询,也只出现一次。
• 结果
• 不等于d/(x+d)。错误
正确方法:按用户采样
• 挑1/10的用户,观察它们的全部查询 • 采样方法
• Hash(User ID) mod 10,把用户分到十个桶中 • 选第一个桶的用户(hash后结果为0)
示例
•N=6
应用:统计滑动窗中1的个数
• 频率 • 简单方案
• FIFO,窗口大小:N • 存起来 • 然后统计
• 但是:N太大(Billion)/流太多(Billion),存不下。 怎么办?
• 近似方案
统计滑动窗中1的个数
• 如果1均匀分布,容易估计 • 从流开始时刻,统计1/0个数:S/Z • 估计窗口N内1的个数:
应用:窗口内整数的和
• 把整数的每一个bit作为一个stream • 统计每一个stream的1的个数,Ci • 求和:
小结
• 百分比取样 • 按feature(用户)取样 • 固定Size取样 • 滑动窗取样
• 估计1的个数 • 求整数和
过滤
Bloom filter(布隆过滤器)
Bloom filter
16
8
8
4
4
22 1
DGIM需要的Leabharlann 储空间• 每个子窗(Bucket)有一个时标,记录结束时间
• 取值范围 1 … N
• 需要
比特存储空间
• 每个bucket记录自己包含的1的个数
• 取值范围:1…logN
• 需要
存储空间
更新
• 新元素到了 • 如果一个Bucket的end time已超过当前时刻 - N,
drop它 • 如果新元素是0,什么也不做 • 如果是1
• 创建一个Bucket,size = 1, end time = 当前时间 • 如果有3个1,就合并为一个2。 • 依次类推,如果有3个一样的小的,就合并为一个大
的。
• 雪崩式前滚
示例
估计1的个数
• 除了最后一个bucket,把其他bucket的size相加
• 当我们看到一个*100时,很可能已经pass过了4 个不同的元素了。
• 估计:4个不同元素
更形式化的证明
• 一个元素,hash后,尾部连续r个0的概率
• (½ )r = 2–r
• m个不同元素hash后的m个结果,尾部都不“连 续r个0” • 概率:(1 - 2–r)m =
=
• 出现连续r个0的概率 1 -
• 例:1100 -> 2 • 1000 -> 3
• 找出最大的 ri
• 例:R = max{2,3} = 3
• 估计不同元素个数为2R
• 例:23 = 8
直觉证明(Intuition)
• 通过Hash把元素均匀散布到M = log2(N)个比特上
• Hash结果为xxx0的概率为1/2 • Hash结果为xx00的概率为1/4
初始化
• 白名单中包括s个允许的key值
• s = 1 billion
• n个检查位,n >> s,初始化为0 • 把这s个白名字Hash到1,…,n上
• 对应的bit位设1
• 最后,n中大约有s个“1”
• 事实上小于s个,因为会重合。
到底有几个1?
• 一个白名字,被均匀地撒在n个比特上
• 撒上概率:1/n
大数据存储与应用
数据流挖掘
课程主页:/?page_id=397 陈一帅
chenyishuai@
内容
• 流数据模型
• 系统,示例
• 抽样 • 过滤 • 数目统计 • 矩估计 • 窗口内计数 • 衰减窗口
预览
• 谷歌/淘宝是怎么做下面这些事情的
统计出现的不同元素个数
应用
• 爬网站时,边爬,边检查其网页中不同单词的个 数
• 太多或太少,都表明是一个作弊的网站
• 统计一个用户,一周内,访问了多少不同的网页 • 统计淘宝,上周,卖了多少种不同的商品?
明显的方法
• 建立一个Distinct元素列表(hash表) • 进来一个,和列表中已有的元素对照,如果不同,
• m >> 2r,概率为1,即总能得到连续r个0的结果。 • m << 2r,概率为0,即得不到连续r个0
• 所以,估计m = 2r 大致上是合理的。
实际应用
• 问题:
• R加1,2R就涨一倍。 • E[2R]无穷大
新元素不进s的概率 新元素进s,但在s中不被剔除的概率
• 原先,这n个元素,是以s/n概率进入s的。 • 这一轮过后,任一元素留在s中的概率 • 和新到元素的留下概率s/(n+1)相等 • 结果:所有n+1个元素,以s/(n+1)的概率留下
滑动窗口内计数
Sliding windows 滑动窗 另一种取样方式
• 类似前面,只是撒了ks次 • n(1 – e–ks/n)
• 检查
• 来一封信,用这k个hash检查,全部为“1”才行。 • False positive率
• 混过去一个hash函数,概率(1 – e–ks/n) • 混过去全部k个hash检查,概率(1 – e–ks/n)k
• K=2, 概率 0.0493 ~ 1/20 << 1/8
• 重复查询占比:d/(x+d) • 随机采样10%后,重复查询占比是怎样的?
• 采样后,获得(x+2d)/10个查询,其中x/10个查询是 属于x,肯定只出现一次
• 针对d的2d/10个查询
• d中任一查询,两次都被抽中的概率为1/10×1/10 = 1/100 • 所以,平均有d/100个查询会被抽中两次,占2d/100个查
种至少有一个 • 所以,它们包含的“1”的个数至少为: 2r-1 + 2r-
2 + 2r-3 + … + 1 = 2r – 1. • 最后一个bucket在窗口中至少还有1个“1”,所
以, “1”的个数至少为2r • 所以,最大的错误率:2r-1/ 2r = 1/2 = 50%
扩展
• 同样size的bucket数目可以是r或r-1个。r > 2 • 最大Size的bucket,可以有1,…,r个 • 错误的上界1/(r-1) • 实践中,根据需要选择r
• 如果1的分布不均匀呢?
DGIM方法
• 每个流,存储
比特
• 结果误差不超过正确结果的50%
• 可以进一步减少
DGIM
• [Datar , Gionis, Indyk, Motwani] • 指数窗口 • 每个窗口中包括 i 个1, i : 2的幂(指数增长) • 同样i的窗口最多可以有两个 • 窗口不重叠,可以不连续(中间可以隔0)
• 改进了性能
K的选择
• K不是越大越好 • 对这个例子,最
优的在6的样子。
Bloom Filter总结
• 只会false positive • 不会false negative
• 错杀概率 = 0
• 适合预处理
• 先筛选一些
• 适合硬件实现 • 适合并行
• Map-reduce
Distinct元素统计
• 取样
• 比例取样 • 固定size取样
• 频度统计
• 统计item发生的次数
• 白名单过滤 • 统计不同查询的个数 • 评估用户访问的均匀性 • 发现最热item
• 简单的数据统计问题,在大数据场合下,新的方 法
流数据模型
流数据模型
• 系统 • 示例 • 查询 • 问题
流
• 数据以流的方式进入
• Yahoo:
• 发现最流行的页面
• 微博:
• 发现最热的话题 • 找人
• 传感器网络 • 电话记录
• 美国,棱镜门
• 网络交换机
• 流量统计,优化路由 • 检测DDoS攻击
抽样
Sampling
抽样
• 两种抽样
• 固定比率抽样
• 1 in 10
• 固定Size抽样
• 总是保持s个元素
固定比率抽样
就加入 • 跟踪列表Size的变化
大数据情况下
• 存不下 • 维护成本很高 • 需要
• 减少存储要求 • 减小计算复杂度
• Tradeoff:
• 准确性 <> 实用性
• 估计
Flajolet-Martin方法
• 启发式算法 • 用Hash,把N个元素,映射到至少log2(N)比特上 • 检查映射的结果,看它们尾部连0的个数:ri
新元素进入S的概率p
• 假设已到达n个元素,它们以s/n的概率被 采样,组成s个元素的集合
• 新进来一个元素,一共到达了n+1个元素。
• 这n+1元素,以相同概率进入s • 这个概率: s/(n+1)
• 所以,这个新元素以s/(n+1)的概率进入s
• p = s/(n+1)
S中原元素的剔除策略
• 原来在s个元素集合中的元素,随机剔除一个 • 不被剔除的概率
• 一个比特位,没有被撒上的概率
• 被1个白名字错过的概率:1 - 1/n • 被所有s个白名字都错过的概率