Hive系列学习笔记
- 一、数据仓库与Hive
- 二、Hive的基本概念和安装
- 三、常用Hive操作(对数据库、表的操作)
- 四、常用Hive操作(HQL查询语句)
- 五、Hive的shell参数
- 六、Hive的内置函数和自定义函数
非常重要!!!回忆一下SQL的执行顺序
from -> join -> on -> where -> group by -> avg,sum…
-> having -> select -> distinct -> order by-> limit
文章目录
1 select
select [all | distinct] select_expr ....
from table_reference
[where ..]
[group by .. [having ..]] #分组
[cluster by .. # 排序
| [distribute by .. ][sort by | order by ..]
]
[limit number]
1、order by:排序
对输入做全局排序,因此只有一个reducer,会导致当前输入规模较大时,需要较长的计算时间
2、sort by:分区内排序
不是全局排序,其在数据进入reducer之前完成排序,因此如果使用sort by进行排序并且设置marperd.reduce.tasks>1,则sort by只保证每个reducer的输出有序,不保证全局有序
3、distribute by:分区
根据指定的字段将数据分到不同的reducer,且分发算法是hash散列
4、cluster by:分区➕排序
除了具有distribute by的功能外,还会对该字段进行排序
当字段相同时,cluster by = sort by + distribute by
2 查询语法
2.1 全表查询
select * from score;
2.2 选择特定列