Order by
启动一个reduce task
数据全局有序
速度可能会非常慢
Strict模式下,必须与limit连用
Sort by
可以有多个reduce task
每个Reduce Task内部数据有序,但全局无序
通常与distribute by
Distribute by与Cluster by
distribute by
相当于MapReduce中的paritioner,默认是基于hash实现的;
与sort by连用,可发挥很好的作用
cluster by
当distribute by与sort by(降序)连用,且跟随的字段 相同时,可使用cluster by简写;
用户自定义函数UDF:扩展HQL能力的一种方式
HQL支持索引吗?
HQL执行过程主要是并行地暴力扫描。目前Hive仅支持单表索引,但提供了索引创建接口和调用方法,可由用户根据需要实现索引结构;
HQL支持update操作吗?
不支持。Hive底层是HDFS,HDFS仅支持追加操作,不支持随机写;
Skew Data处理机制?
指定skew 列:CREATE TABLE list_bucket_single (key STRING, value STRING) SKEWED BY (key) ON (1,5,6);
为skew task分配更多资源(TODO)
将skew task分解成多个task,再合并结果(TODO)
Hive On HBase
使用HQL处理HBase中的数据
比直接通过HBase API存取数据方便;
但性能更低,相当于把在线处理转为批处理
存在问题
不够成熟;
不能按时间戳获取数据,默认总是取最新的数据