flink:RoaringBitmap在亿级用户实时UV精确去重中应用

RoaringBitmap是一种高性能、压缩的位图数据结构,常用于大数据去重、标签筛选和时间序列计算。相较于BBC、WAH、EWAH和Concise,RoaringBitmap在某些场景下速度更快且压缩率更高,尤其适用于需要频繁检查单个值存在的场景。在Flink中,RoaringBitmap可用于亿级用户的实时UV精确去重,提供高效的解决方案。
摘要由CSDN通过智能技术生成

未完

目录

1 RoaringBitmap 概念 

2 位图的比较

3  科学文献

4 API 文档

5 java示例

6 使用内存映射位图

7 roaringbitmap案例


1 RoaringBitmap 概念 

位集,也称为位图,通常用作快速数据结构。不幸的是,它们可能会使用太多内存。为了弥补这个缺点,我们经常使用压缩位图。

RoaringBitmap 是压缩位图,其性能往往优于传统的压缩位图,例如 WAH、EWAH 或 Concise。某些情况下可以快数百倍,甚至可以比未压缩的位图更快。他被广泛应用于许多家大型系统,如Apache Spark,Apache Hive,Apache Tez,Apache Kylin,Apache CarbonData,Netflix Atlas,OpenSearchServer,zenvisage,Jive Miru,Tablesaw,Apache Hivemall,Gaffer,Apache Pinot and Apache Druid--https://github.com/RoaringBitmap/RoaringBitmap

RoaringBitmap 常用于去重、标签筛选、时间序列等计算中。

( 菠萝科技备注:Apache Kylin RoaringBitmap 技术分享链接 xxx后面补充xx

2021.7.7日更:

大数据分析常用去重算法分析『Bitmap 篇』 - Kyligence的文章 - 知乎
https://zhuanlan.zhihu.com/p/65109143

【视频 + PPT】如何使用 Kylin 进行海量自定义标签的用户画像分析? - Kyligence的文章 - 知乎
https://zhuanlan.zhihu.com/p/100131550

)

2 位图的比较

2.1  与bbc、 WAH、EWAH 或 Concise 比较

#Oracle 的 BBC(字节对齐位图代码)在这一点上是一种过时的格式:虽然它可能提供良好的压缩,但由于过度分支,它可能比最近的替代方案慢得多。
#WAH(字对齐混合)是 BBC 的专利变体,可提供更好的性能。
#Concise 是获得专利的 WAH 的变体。在某些特定情况下,它可以比 WAH 压缩得更好(最多好 2 倍),但通常更慢。
#EWAH(Enhanced Word Aligned Hybrid)都是免费的,而且比上面所有的都要快。不利的一面是,它也不会压缩。它更快,因为它允许某种形式的“跳过”未压缩的单词。因此,尽管这些格式在随机访问方面都不是很好,但 EWAH 比替代方案更好。
然而,这些格式存在一个大问题,在某些情况下可能会严重伤害您:没有随机访问。如果要检查集合中是否存在给定值,则必须从头开始并“解压缩”整个内容。这意味着如果你想将一个大集合与一个大集合相交,在最坏的情况下你仍然需要解压缩整个大集合。

RoaringBitmap解决了这个问题。它以下列方式工作。它将数据分成 2 16 个整数的块(例如, [0, 2 16),[2 16 , 2 x 2 16),...)。在块中,它可以使用未压缩的位图、简单的整数列表或运行列表。无论它使用什么格式,它们都允许您快速检查任何一个值的存在(例如,使用二进制搜索)。最终结果是 Roaring 可以比 WAH、EWAH、Concise 等游程编码格式更快地计算许多操作......也许令人惊讶的是,Roaring 通常还提供更好的压缩率。--https://github.com/RoaringBitmap/RoaringBitmap

更多原理待补充xxxx

2.2 与Bloom Filter和HyperLogLog比较

只可以插入元素,不能删除元素;

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

菠萝科技

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值