0
点赞
收藏
分享

微信扫一扫

大数据优化之去重

夏侯居坤叶叔尘 2022-02-23 阅读 135

如何在 1 秒内做到大数据精准去重?_Kyligence-CSDN博客_大数据去重算法

HLL + bitmap 两种主流优化方法。

相同点:以非常紧凑的结构存储去重集合的特征(或完整集合)

HLL、Bitmap

空间:

HyperLogLog 空间复杂度log(log(n))  故称 HLL ,64KB 基本上满足所有场景

每一个不同的 id 用一个 bit 位表示,所以它存储的集合越大,所占用空间也越大(1亿需要12M 左右)

工程适用性:

HLL 支持各种数据类型作为输入,使用方便

Bitmap 只支持 int/long 类型的数字作为输入,因此如果原始值是 string 等类型的话,用户需要自己提前进行到 int/long 的映射(构建维度字典)。

精确性:

HLL 采用了哈希函数,将输入值映射成一个二进制字节,然后对这个二进制字节进行分桶以及再判断其首个1出现的最后位置,来估计目前桶中有多少个不同的值。由于使用了哈希函数,以及使用概率估计的方式,因此 HLL 算法的结果理论误差超过了 1%

Bitmap 的结果是精确的。

数据量大,且业务对数据准确性比较敏感的话,还是需要精确去重的。

kylin 中还有 roaring map 对 bitmap 占用的空间进一步减少。

举报

相关推荐

0 条评论