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
。
- 如果数字 3 和 5 存在,Bitmap 表示为:
2. Doris 为什么要用 Bitmap?
Doris 中使用的是 Roaring Bitmap,一种高效的压缩位图实现,