海量数据的“交并集”操作
应用场景大致是这样:
有上亿条数据,每条数据属于若干个类别(大约属于3到10个类别),
总共约有近千个不同的类别,每个类别含有的数据量从几千到上亿不等。
现在需要迅速的查询出某几个类别,经过交、并操作后的数据量。
现在的处理方式是:
对原始的上亿条数据,随机抽样出千分之一的数据量;
对这抽样的数据,分别赋上从1开始的序号;
然后,对这抽样的数据中的每个类别分别建立一个bitmap,
bitmap的每个下标,对应着某一条抽样数据,
若置一,则表示该类别含有该下标所对应的数据。
当有交并集查询到来时,取出相应类别的bitmap,进行交并操作,
并得到结果bitmap的置一数量,然后再除以抽样率,得到近似的原始数据的交并集的数据量。
现在,希望能够尽可能精确的得到原始数据的交并集数据量,
请问大家有没有什么更好的方案啊?
比如说,是否可以建立多级的bitmap,或者分段的bitmap等(自己瞎捉摸着)。
望大家不吝赐教,
来者有分啊!