基于hive的大数据量的优化处理实例

最近在做一个项目时遇到一个问题,是关于大数据量的数据,具体为一个800亿的轻度汇总数据,去关联一个7亿左右的另一个轻度汇总数据。

主要遇到的问题有:

1,800亿的轻度汇总数据读写困难,耗费时间、资源大;

2,两表进行关联处理数据计算慢。

背景:(完全假设来说)

A表是以用户、城市维度的出现次数数据,字段主要有uid、city_id,cnt

B表是以用户、城市维度的出现次数标准数据,字段主要有uid、city_id,city_cnt
主要是求用户是否在某个省份达到出现次数标准的进度,比如说小明在济南出现2次,在青岛出现5次,

但是在济南出现的标准次数应该为4次,在青岛出现的标准次数为4次。所以在山东出现的标准次数为8次,而小明达标的次数分别为2次和4次(超过标准按照标准统计),所以小明在山东出现的次数进度为67%。

针对以上数据量,目前想到的方案有以下三种:

方案一:拆分数据、分散资源,建立多个计算task

(1)由于目的是对用户进行统计,所以对A、B表以及目标表根据uid首位数字设置分区,将数据量拆分;

首先需要对uid首位数进行数据量查询,然后按照数据量的大小进行合理分配分区。

(2)根据分区建多个task,跑入对应目标表的分区;

对相同分区下的用户数据进行数据计算,然后建立多个task进行跑数,分散资源。

方案二:维度进行高粒度汇总,减小数据量

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值