大数据优化之去重
Posted MISAYAONE
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了大数据优化之去重相关的知识,希望对你有一定的参考价值。
如何在 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 占用的空间进一步减少。
以上是关于大数据优化之去重的主要内容,如果未能解决你的问题,请参考以下文章