栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

大数据优化之去重

大数据优化之去重

除去这两种主流方法,其实还是要从思想上去解决单节点数据量过大的问题,软方法就是先分桶。

核心是两阶段聚合

分桶的方法有很多,比如去重场景下,可以先按照字符串的长度先将数据分桶,再在每个桶里计算 distinct,然后再 sum 一下结果就可以得到全局的 UV 。

亿万级海量数据去重软方法,spark/hive/flink/mr通用 | 航行学园

先求出 uid 的长度
create table event_tmp as select *,length(uid) as len_uid from event;

首先先对 uid 和 day两个字段进行 groupby (减轻单点压力)
再对中间结果求 sum即可。
select sum(uv_tmp) as uv 
from
  (
      select day_num,size(collect_set(uid)) as uv_tmp 
       from event_tmp 
       group by len_uid,day_num
  ) tmp group by day_num

(类似的还有求13亿人的收入前一万,可以先按照身份证号前6位分桶,再聚合一次)
两阶段聚合思想

海量数据高效去重的思想就是最大的把计算和数据并行化,充分利用、均衡利用分布式集群下的算力,避开单点压力,强去重的方法在小数据量下会有优势,

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/745803.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号