博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Hive查询表的优化总结
阅读量:3938 次
发布时间:2019-05-23

本文共 470 字,大约阅读时间需要 1 分钟。

一、小表join大表

1)小表在左边(但是新版本已经没区别)

2)开启MapJoin

3)先过滤再join

二、大表join大表

1)空key过滤

2)空key处理

3)先过滤再join

三、group by

设置参数,使之运行两个MR Job第一个MR Job中,Map的输出结果会随机分布到Reduce中,每个Reduce做部分聚合操作,并输出结果,这样处理的结果是相同的Group By Key有可能被分发到不同的Reduce中,从而达到负载均衡的目的;第二个MR Job再根据预处理的数据结果按照Group By Key分布到Reduce中(这个过程可以保证相同的Group By Key被分布到同一个Reduce中),最后完成最终的聚合操作。

四、Count(Distinct) 去重统计

一般COUNT DISTINCT使用先GROUP BY再COUNT的方式替换

五、行列过滤

列处理:在SELECT中,只拿需要的列,如果有,尽量使用分区过滤,少用SELECT *。

行处理:先过滤where条件,作为中间表,再进行join

 

 

 

 

 

转载地址:http://qcuwi.baihongyu.com/

你可能感兴趣的文章
开启我的CSDN记录本
查看>>
理解vue中export default与import
查看>>
node.js、npm、webpack的理解
查看>>
使用vue-CLI脚手架搭建的vue项目的目录介绍
查看>>
vue项目中,子组件和父组件参数的双向绑定
查看>>
vue项目的一级路由和二级路由的理解
查看>>
在vue项目中路径的理解(路径属于字符串类型,需引号应起来)
查看>>
路由的理解和使用
查看>>
Axios插件,Vue-resource插件的使用
查看>>
ES6(全称ECMAScript 6)标准de
查看>>
vue中特殊符号的理解如$
查看>>
部署到aliyun服务器的jar包应用程序自动运行命令
查看>>
maven命令
查看>>
maven的依赖传递
查看>>
Python简单循环代码
查看>>
python简介
查看>>
python变量及字符编码
查看>>
变量拼接的四种方法
查看>>
docker centos7 安装ssh
查看>>
github和gitlab比较
查看>>