当前位置: 首页 > backend >正文

Doris bitmap原理

目录

    • 1. 什么是 Bitmap?
    • 2. Doris 为什么要用 Bitmap?
      • 2.1 高效处理高基数数据
      • 2.2 提升去重计数(Distinct Count)的性能
      • 2.3 高效的集合操作
      • 2.4 高效的存储和压缩
      • 2.5 支持快速过滤和索引
      • 2.6 实现 HyperLogLog 的补充
    • 3. Bitmap 在 Doris 中的应用场景
      • 3.1 去重计数
      • 3.2 用户行为分析
      • 3.3 数据去重
      • 3.4 高效过滤
    • 4. Bitmap 的优缺点
      • 优点
      • 缺点
    • 5. 总结

在 Apache Doris 中, Bitmap 是一种重要的数据结构,主要用于提升查询性能,特别是在处理高基数(High Cardinality)数据和高效聚合操作时。Doris 使用 Bitmap 的原因可以归结为以下几个方面:

Bitmap原理及Hive去重方式对比

Bitmap、Roaring Bitmap、HyperLogLog对比介绍

1. 什么是 Bitmap?

Bitmap 是一种压缩的位图数据结构,用于表示集合中的元素。它的核心思想是用位(bit)来表示某个元素是否存在:

  • 核心思想:用一个比特位(bit)表示一个元素是否存在
  • 存储方式:每个 bit 位可以表示一个对象的状态(如存在/不存在),而多个 bit 位可以组成一个字节(byte),多个字节组成一个更大的块。
  • 用途:主要用途是高效地处理大规模数据,尤其是需要快速判断某个元素是否存在的情况。
    比如:
  • 一个 Bitmap 长度为 8,可以用来表示 0-7 的数字是否存在。
    • 如果数字 3 和 5 存在,Bitmap 表示为:00010100

2. Doris 为什么要用 Bitmap?

Doris 中使用的是 Roaring Bitmap,一种高效的压缩位图实现,

http://www.xdnf.cn/news/6936.html

相关文章:

  • 阿里通义千问 Qwen3 系列模型正式发布,该模型有哪些技术亮点?
  • pytorch小记(二十一):PyTorch 中的 torch.randn 全面指南
  • WebAuthn开发常见问题及解决方案汇总:多语言支持、依赖管理与安全验证实践
  • Android同屏采集并推送RTMP和启动轻量级RTSP服务技术实践
  • QT之LayOut布局
  • SVGPlay:一次 CodeBuddy 主动构建的动画工具之旅
  • GO语言学习(三)
  • 项目管理学习-CSPM-4考试总结
  • VC++6.0分步执行常见问题及解决方案
  • 阿里云国际站与国内站的核心布局与本土化服务的选择
  • Linux中的进程
  • 提示词工程框架:CoT、ToT、GoT、PoT( 链式提示)
  • MySQL 索引优化以及慢查询优化
  • Linux面试题集合(2)
  • 20250517 我设想一个空间,无限大,空间不与其中物质进行任何作用,甚至这个空间能容纳可以伸缩的空间
  • 【技巧】GoogleChrome浏览器开发者模式查看dify接口
  • Day119 | 灵神 | 二叉树 | 二叉树的最近共公共祖先
  • C43-指针与数组
  • [已解决] LaTeX “Unicode character“ 报错 (中文字符处理)
  • MySQL高可用架构
  • 深入解析Spring Boot与Spring Security的集成实践
  • 游戏详情制作(Navigation组件)
  • 语音合成终身免费畅用![特殊字符] 紧急提醒:禁用更新锁死权限!
  • 电脑桌面便签软件哪个好用?好用便签Windows版下载推荐
  • 大麦(Hordeum vulgare)中 BAHD 超家族酰基转移酶-文献精读129
  • 关于Android Studio for Platform的使用记录
  • 2025最新的软件测试面试大全(含答案+文档)
  • 系统架构设计(十):结构化编程
  • Linux线程同步信号量
  • hbuilderX 安装Prettier格式化代码