欢迎来到 MTData 小讲堂,本期 MT 酱带大家认识什么是 BitMap ?
首先从名字本身入手
Bitmap 通过一个 bit 数组来存储特定数据的一种数据结构
由于 bit 是数据的最小单位
所以这种数据结构超级节省存储空间
举个 ?吧
假设有一个应用需要统计每天的新增和活跃用户
那怎么用 BitMap 解决嘞???
首先我们可以用 bitmap 来分别存储新增和活跃数据
1 和 0 代表该用户是否是新增用户/活跃用户
统计对应的bitmap内有几个「1」
即可知道当天的新增用户/活跃用户数量
是不是超简便!
除此之外
BitMap 还提供了基于位的运算
(AND/OR/XOR/NOT)
可以很方便地对其进行处理
比如需要查看 20180701 新增用户在第二天的留存数
直接将两个 BitMap 做 AND 计算后再统计即可
不同于常规的统计计算
类似于这样的操作使用 BitMap 的耗时都是毫秒级的
在海量数据场景下有绝对的性能优势
但随着业务的增长
通常 BitMap 的数量可能会有几百万甚至上千万
存储空间达到几十 T 甚至几百 T
此时需要将 BitMap 在外部进行存储
让更多的计算节点来参与业务的计算
持续优化大数据量级的 BitMap 的存储空间和计算性能
是构建通用分布式 BitMap 系统的核心
是否感到意犹未尽?
8月11日美图资深大数据架构师杨亚强空降深圳给你面对面开小讲堂!
*杨亚强 2016 年作为数据架构师加入美图数据平台部。具有多年的数据架构经验,作为资深架构师,长期负责各类系统的架构和研发工作,也作为主程参与过多个大型系统的研发。对于分布式系统、大规模数据处理等大数据组件有着丰富的研发和优化经验。目前在美图的大数据与AI部门负责数据架构设计与核心模块代码的编写,主导数据基础设施的构建和优化。
本次沙龙主题之一便是分享美图 BitMap 系统的迭代演进,探讨美图在 BitMap 系统中的实践经验,以及实践过程中随之产生的思考。