GITHUB实现地址

RoaringBitmap

RoaringBitmap是最近刚刚看到的一个压缩位图数据结构,可以有效的提升位图的内存使用效率,整个算法基本结构并不复杂,对于2^32位的数据, 将数据分成两部分做索引,高16位主要用来用来索引container, container中存放低16位数据, 其中container的实现分成三种,ArrayContainer, BitmapContainer, RunContainer

ArrayContainer

是用一个数组来存储一个short整数, 每次插入需要使用二分查找,插入数据的时候需要进行数组拷贝,适用于数量比较稀疏的场景,数据没有压缩

BitmapContainer

当ArrayContainer的数量超过4096(可以自行计算一下存储效率)的时候,ArrayContainer变成一个BitmapContainer, BitmapContainer是一个是用位图存储,这个时候数据是压缩的

RunContainer

RunContainer比较时候存储连续数据,比如11,12,13,14,15 压缩后的数据就是11,5,

总结

RoaringBitmap是一个效率比较高的位图实现,这里只是一个简单的介绍,具体的实现可以参考github上的开源实现。

RoaringBitmap相关推荐

  1. Java通过Maven使用RoaringBitmap

    未完待续:推荐使用Redis的Bitmap 在Maven中添加依赖如下: <!-- https://mvnrepository.com/artifact/org.roaringbitmap/Ro ...

  2. roaringbitmap java,BitMap、RoaringBitmap与JavaEWAH

    本文主要介绍BitMap的算法思想,以及开源工具类JavaEWAH.RoaringBitmap的简单用法. 一.BitMap 介绍 BitMap使用bit位,来标记元素对应的Value.该算法能够节省 ...

  3. Hologres如何基于roaringbitmap实现超高基数UV计算?

    简介:本文将会介绍Hologres基于roaringbitmap实现超高基数的UV计算 RoaringBitmap是一种压缩位图索引,RoaringBitmap自身的数据压缩和去重特性十分适合对于大数 ...

  4. roaringbitmap java,roaringbitmap 源码解析 bitmap add过程

    最近在做标签平台的分析引擎.底层涉及到位图的处理,所以涉及到roaringbitmap.

  5. Hologres如何支持超高基数UV计算(基于roaringbitmap实现)

    简介: 本文将会介绍Hologres基于roaringbitmap实现超高基数的UV计算 RoaringBitmap是一种压缩位图索引,RoaringBitmap自身的数据压缩和去重特性十分适合对于大 ...

  6. 【java】高效压缩位图RoaringBitmap的原理与应用

    文章目录 1.概述 2.位图法简述 3.RoaringBitmap的思路 4.Container原理 4.1 ArrayContainer 4.2 BitmapContainer 4.3 RunCon ...

  7. arcpy实现空间查询_「实战系列」GP+Roaringbitmap,亿级会员十万级标签毫秒级查询...

    在大数据处理和应用场景中经常需要从亿级甚至十亿级会员中搜索出符合特定标签的会员.很多企业都会使用 HBase 或者 Hive + Hadoop 的方式,这样的方式查询效率非常慢,在标签非常多的情况下计 ...

  8. RoaringBitmap 原理

    前言 位图索引被广泛用于数据库和搜索引擎中,通过利用位级并行,它们可以显著加快查询速度.但是,位图索引会占用大量的内存,因此我们会更喜欢压缩位图索引. Roaring Bitmaps 就是一种十分优秀 ...

  9. Redis bitmap数据格式优化 (RoaringBitmap)

    1. Key-Value 存储 尝试插入1kw条数据, key为设备MD5值, value为1, 此时Redis中存在1kw条key-value键值对. 通过info指令查看内存占用: 1kw数据ke ...

  10. 高效压缩位图RoaringBitmap的原理与应用

    目录 位图法简述 RoaringBitmap的思路 Container原理 ArrayContainer BitmapContainer RunContainer 时空分析 Container的创建与 ...

最新文章

  1. java程序应用编写如何判断文本框里面的数据类型
  2. UEStudio使用技巧三则
  3. appium判断元素是否存在_Python+selenium自动化之判定元素是否存在
  4. mongo 唯一约束索引_快速掌握mongoDB(三)——mongoDB的索引详解
  5. 人工智能指用计算机,人工智能测试题..doc
  6. android 分割字符 指定长度_[Android]TextUtils.ellipsize()截取指定长度字符串(附图文混排)...
  7. Monad B2 For Dotnet Framework 2.0 RC/RTM Released!
  8. Windows7下完美绿色版无损分区软件Paragon Partition Manager
  9. 谐波平衡 matlab,解非线性振动问题的摄动谐波平衡法
  10. 大屏做成这样,领导不重视你都难!
  11. php revel,Revel命令行工具源码阅读
  12. excel快捷键设置
  13. 科普|股东需要对企业债务承担连带责任
  14. 【Unity】打包时异常 HideFlages.DontSave
  15. 量化投资作业的R实现——收益率相关图形绘制
  16. 2013excel和2013visio的osf.dll不兼容
  17. 【荐读】基于文本数据的消费者洞察
  18. Vue3 使用moment进行时间转换
  19. 一年微信开发运营经验:微信不是“印度神油”,一用就灵
  20. 盲盒App平台盈利模式

热门文章

  1. 中国有句俗语叫“三天打鱼两天晒网”,某人从1990年1月1日起开始“三天打鱼两天晒网”,即打鱼三天,然后再晒网两天。问这个人在以后的某一天中是在打鱼还是在晒网
  2. 短信验证码收不到了怎么办?
  3. Mac虚拟机连接局域网网线的路由配置
  4. python爬取二手房信息,基于python爬取链家二手房信息代码示例
  5. IEEE论文检测的字体未嵌入问题Times New Roman,Bold, Times New Roman,Italic is not embedded解决方法
  6. 会话、Cookie、Session、url重写
  7. Python:实现max non adjacent sum最大非相邻和算法(附完整源码)
  8. java soapui 发送xml_javawebservice 中用soapui发送请求由于出现异常错误, 无法创建 SOAP 消息: XML 读进程错误...
  9. linux看视频装哪个软件,Ubuntu安装视频播放软件 SMPlayer 14.9.0.7042
  10. 基于can总线的A2L文件解析(2)