GO_BY_GO_BY_GO 2019-10-18 10:04 采纳率: 50%
浏览 1324

hive中如何提高group by的效率呢?

select q,count(*) pv from dso.`dict_server` where day between '2019-09-01' and '2019-09-30' and noecceresult='1' and q rlike '^[\u4E00-\u9FA5]+$' group by q order by pv desc limit 3000000

怎么才能提高上面的查询效率呢?

  • 写回答

1条回答 默认 最新

  • qq_40955428 2019-10-18 17:22
    关注

    开启Map端聚合参数设置
    (1)是否在Map端进行聚合,默认为True
    hive.map.aggr = true
    (2)在Map端进行聚合操作的条目数目
    hive.groupby.mapaggr.checkinterval = 100000
    (3)有数据倾斜的时候进行负载均衡(默认是false)
    hive.groupby.skewindata = true
    当选项设定为 true,生成的查询计划会有两个MR Job。第一个MR Job中,Map的输出结果会随机分布到Reduce中,每个Reduce做部分聚合操作,并输出结果,这样处理的结果是相同的Group By Key有可能被分发到不同的Reduce中,从而达到负载均衡的目的;第二个MR Job再根据预处理的数据结果按照Group By Key分布到Reduce中(这个过程可以保证相同的Group By Key被分布到同一个Reduce中),最后完成最终的聚合操作。

    评论

报告相同问题?

悬赏问题

  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作