时序数据库 druid 简介 之技术点 位图索引

本文深入探讨了时序数据库Druid中的位图索引技术,适用于处理大量维度数据的高效查询。通过位图索引,可以快速定位青海地区男性人口等组合查询,同时介绍压缩技术降低存储需求。尽管仍需面对内存限制,但Druid的Historical Node设计允许将数据加载至内存以优化性能。此外,文章还提及大数据处理的招聘需求。
摘要由CSDN通过智能技术生成

前面介绍了数序数据的特点, 往往是有大量的维度(dimension)。每个具体的位图, 其可能的取值相对于数据总量来说往往并不多, 但是查询经常涉及到很多维度的组合。举个例子, 假设数据是中国的人口数据, 有一个维度是年龄。 那么这个维度的可能值不会超过150个, 还有一个维度是所在区域, 如果省级区域的话也就三十来个。维度本身的取值不多, 可是查询的时候往往是一种组合。 比如青海省20-30岁之间的人。 那么能快速适应这类查询的技术就是位图索引。 下面介绍一下位图索引。请大家注意, 我们讨论过程假设数据和索引都在内存, 因为如果涉及机械盘的随机IO, 情况就会发生变化。

假设我们有64条数据编号分别为1到64,每条数据都表示一个人口信息, 有这个人的年龄, 所属区域, 性别等属性。那么我们可以对所有在青海地区的人建立一个位图索引。使用一个64为的int, 每一位对应一条数据, 如果这个人是青海的, 对应的位就置1, 否则置0. 然后我们再对这组数据的性别建立位图索引, 同理, 男的置1,女的置0.

现在我们要查询青海地区的男性, 怎么做呢? 只要上面两个位图做&操作就可以了。位图索引可以很方便的完成这些操作, 可是位图索引太大了, 属性值上大部分数据都是0, 所以位图索引可以压缩。好消息是只要压缩方法得当, 压缩后的位图索引仍旧能够进行位操作。 详细信息请查询相关文献(去google 上搜 concise compress)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值