hive的select查询分为基础查询和连接查询
select基础查询
1、order by
全局排序
2、sort by
局部排序 : 每一个结果文件有序,每一个reduceTask有一个结果文件
3、distribute by
分桶 : 只分桶,不排序, 如果需要排序请加上sort by
分桶的原理 : 按照分桶的字段的值的hash去模除以桶的个数来决定该条记录在哪个桶中
分桶的作用 : 主要是用来提高join查询的效率
4、cluster by
分桶:又分桶,又排序
case1 : 当 distribute by 字段 和 sort by 后的字段一致时,可以直接使用cluster by
distribute by age sort by age = cluster by age;
case2 : 当sort by还需要根据其他字段排序时,也就是说 cluster by和 sort by要进行共用的时候,这是不允许的
cluster by age sort by id XXXXXXXXXXX
替代写法;
distribute by age sort age,id
总结一个规律: 创建表的时候都有ed, 查询的时候都没有
hive的join查询:http://blog.csdn.net/freefish_yzx/article/details/77166906