hive query注意点

1.不支持in 后面为子查询

...

where

field in (select field ...)

此处可以使用join进行代替。


2. 如果一个查询语句存在嵌套,那么最外层的子查询必须指定名称


select *

from

(

query1

...

) n


3.考虑将count( distinct field..)与 group by同时使用,在join的时候可能会引入大量冗余数据,通过distinct 某一、多个字段能够达到去重的目的。


4.对表的属性要有足够的理解,比如一张日志表,可能每天要插入几亿条记录,此时在hive中及时取一个比较短的时间范围的日志,可能都会消耗很多map reduce,如果将这样的表互相进行join,数据量会是特别庞大,执行效率很低。


5. 时刻记住拉链表、全量表、增量表、快照表的含义, 重点是要注意partition 字段的使用。


6. left join 不能够被正确解析,需要为left outer join。


7.了解数据的性质,在group by 的时候,group by一个字段可能和group by多个字段得出的结果一致。


8. 最重要的一点是拿到数据后要首先进行初步的审查、看看是否符合逻辑,这样能够找到很多潜在的问题,

后期数据处理同样重要,熟练使用excel对数据进行处理。

评论

© ftutor / Powered by LOFTER