首页  »  云计算知识  »  什么是布隆过滤器

什么是布隆过滤器?

布隆过滤器(Bloom Filter)实质上是由很长的二进制向量和一系列随机映射函数组成的,主要用于检测一个元素是否存在于一个集合中,相比于其他算法,布隆过滤器在空间效率和查询时间上都更有优势,但它有一定的缺陷,如误识别率高,数据删除困难等。

新用户享受中国区域 12 个月免费套餐

什么是布隆过滤器?

首页  »  云计算知识  »  什么是布隆过滤器

什么是布隆过滤器?

什么是布隆过滤器?

布隆过滤器(Bloom Filter)实质上是由很长的二进制向量和一系列随机映射函数组成的,主要用于检测一个元素是否存在于一个集合中,相比于其他算法,布隆过滤器在空间效率和查询时间上都更有优势,但它有一定的缺陷,如误识别率高,数据删除困难等。

新用户享受中国区域 12 个月免费套餐

布隆过滤器原理

布隆过滤器原理

布隆过滤器的数据结构是一个 bit 数组,长度为 8,默认都是 0,主要用于存在性检测,相比于传统数据结构,布隆过滤器不仅占用空间更小,检测效率也更高。使用布隆过滤器首先要通过不同的哈希函数生成对应的哈希值,再将哈希值指向对应的 bit 位置。如我们要将 A 值映射到布隆过滤器上,则需要使用不同的哈希函数生成多个哈希值,哈希值指向 bit 位的值被置为1则表示数据已经完成映射;但若另一个数值生成的哈希值,覆盖了 A 值的 bit 位,就会出现误报。

布隆过滤器的优点与缺点

布隆过滤器的优点与缺点

布隆过滤器优点

布隆过滤器相比于其他数据结构,主要的优势是它可以表示全集,除此之外,布隆过滤器在节约空间和缩短查询时间方面都有较大优势。哈希函数相互之间没有关系,更方便与硬件并行。同时,布隆过滤器不需要存储元素本身,因此在某些对保密要求非常严格的场合有更明显的优势。

布隆过滤器缺点

布隆过滤器比较明显的劣势是有较高的误算率,且误算率会随着存入元素的增加而增加;一般情况下布隆过滤器中的元素不能被删除,因此会增加数据安全的风险。为了解决误算率的问题,常见的补救方式是建立白名单,存储可能被误判的元素,但若元素量较少,则使用散列表记录;为了降低误算率,还出现了很多布隆过滤器的变种。

布隆过滤器的应用

布隆过滤器的应用

布隆过滤器在检测方面有较明显的优势,因此会应用于以下场景中:过滤邮件黑名单,判断邮件地址是否在黑名单中;判断某个 URL 是否被爬虫入侵;快速判断 key-value 系统中某个 key 是否存在,如果不存在,会直接返回,而不会每次查询都访问数据库,这样不仅节省了相应数据查询的时间,还有效避免了缓存击穿问题的发生,可在一定程度上减轻数据库的访问压力;在数据迁移后,使用布隆过滤器进行 ConsistencyCheck。

亚马逊云科在数据查询方面的特点

亚马逊云科在数据查询方面的特点

亚马逊云科在数据查询方面的特点_立即开始查询

立即开始查询

Amazon Athena 属于无服务器服务,用户可快速查询数据,而无需设置和管理任何服务器或数据仓库。只要指向存储在 Amazon S3 中的数据,定义架构并使用内置的查询编辑器就可以开始查询。借助 Amazon Athena,用户可以挖掘 S3 中存储的所有数据,而无需设置复杂的过程来提取、转换和加载数据 (ETL)。

亚马逊云科在数据查询方面的特点_安全集成

安全集成

Amazon Athena 允许您使用 Amazon Identity and Access Management (IAM) 策略、访问控制列表 (ACL) 和 Amazon S3 存储桶策略控制对您数据的访问;且能与 Amazon Glue 集成,并支持跨服务创建统一的元数据存储库,抓取数据源以发现数据并在 Data Catalog 中填充新表格和修改的表格以及分区定义,并维持架构版本控制。

亚马逊云科在数据查询方面的特点_可用性高且持久性强

可用性高且持久性强

Amazon Athena 具有高度可用性,可在多个设施中使用计算资源执行查询,如果某特定设施无法访问,则会自动适当地路由查询。Athena 使用 Amazon S3 作为其底层数据存储,从而使您的数据可用性高、持久性强。

亚马逊云科在数据查询方面的特点_立即开始查询

立即开始查询

Amazon Athena 属于无服务器服务,用户可快速查询数据,而无需设置和管理任何服务器或数据仓库。只要指向存储在 Amazon S3 中的数据,定义架构并使用内置的查询编辑器就可以开始查询。借助 Amazon Athena,用户可以挖掘 S3 中存储的所有数据,而无需设置复杂的过程来提取、转换和加载数据 (ETL)

亚马逊云科在数据查询方面的特点_安全集成

安全集成

Amazon Athena 允许您使用 Amazon Identity and Access Management (IAM) 策略、访问控制列表 (ACL) 和 Amazon S3 存储桶策略控制对您数据的访问;且能与 Amazon Glue 集成,并支持跨服务创建统一的元数据存储库,抓取数据源以发现数据并在 Data Catalog 中填充新表格和修改的表格以及分区定义,并维持架构版本控制。

亚马逊云科在数据查询方面的特点_可用性高且持久性强

可用性高且持久性强

Amazon Athena 具有高度可用性,可在多个设施中使用计算资源执行查询,如果某特定设施无法访问,则会自动适当地路由查询。Athena 使用 Amazon S3 作为其底层数据存储,从而使您的数据可用性高、持久性强

亚马逊云科技热门云产品

亚马逊云科技热门云产品

Amazon Athena

一种交互式查询服务,轻松使用标准 SQL 语言来分析 Amazon S3 中的数据

Amazon Kinesis

轻松地实时收集、处理和分析视频和数据流

Amazon Glue

简单、可扩展且无服务器的数据集成

欢迎加入亚马逊云科技培训中心

从 0 到 1 轻松上手云服务,获取更多官方开发资源及培训教程

准备好体验亚马逊云科技提供的云服务了吗?

新用户享受中国区域 12 个月免费套餐