bitmap和布隆过滤器简单总结

12 篇文章 1 订阅

一、BitMap

解决的问题:大数据量下的排序、查找、去重。

1、关键

通过 bit位 表示一个数值的状态(是否存在),那么1MB能大约表示 800万数值 (1,000,000B * 8 bit )

2、局限性:

1、内存限制:10位的数值(即99亿), 占用 1.25GB内存
2、一般应用在数值类型。字符串映射到 BitMap 存在Hash碰撞的问题(引入bloom filter)
3、不适合数据稀疏。比如要存入(10,10000,100000000)这三个数据(引入 Roaring BitMap)

3、应用场景
  • 对 不重复的 密集整数 进行排序
  • 查找数据是否存在海量集合中
  • 找出没有重复的数据(两个bit位标识一个数值的状态)

二、Bloom Filter

解决的问题: 判断一个元素是否属于这个集合

1、关键

内存占用极少,不局限于数值类型。

2、局限性

存在错误率。

PS.
哈希函数个数 k、 位数组大小 m、输入key的数量 n
对于给定的m、n,当 k = ln(2)* m/n 时出错的概率是最小

3、应用场景

三、基数计算

hyperloglog,落地场景:kylin & spark 对于 count distinct 操作

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值