![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
hive
文章平均质量分 79
dashabiooo
这个作者很懒,什么都没留下…
展开
-
hive严格模式
strict模式在下面三种情况下有限制: (1) partition表需要加上分区裁剪 (2) order by 只有一个reduce,需要加上limit (3) join时,如果只有一个reduce,笛卡尔积不支持。 补上几刀: 经试验hive 1.6严格模式开启之后,不支持一下两种查询 (1)in/not in子查询,使用left join 替换 (2)两个分区表...原创 2016-10-25 17:28:27 · 127 阅读 · 0 评论 -
hive in/not in替换以及hive join优化
目前hive不支持 in或not in 中包含查询子句的语法,所以只能通过left join实现。 假设有一个登陆表login(当天登陆记录,只有一个uid),和一个用户注册表regusers(当天注册用户,字段只有一个uid),这两个表都包含一个字段,uid。 in查询 如果要查询当天登陆的注册用户,需要用in查询,hive sql如下: select login.uid fr...原创 2016-10-26 13:31:58 · 6290 阅读 · 1 评论 -
Hive Map Side Join解析
通常Hadoop在做join策略的时候会有两种方式map-side join(也叫replication join)和reduce-side join(也叫repartition join或者common join) 1. reduce side join 利用了mapreduce框架的sort-merge机制来使得相同key的数据聚合在一起,在map阶段会分别读取输入dat...原创 2016-10-26 14:08:17 · 383 阅读 · 0 评论 -
Hive中小表与大表关联(join)的性能分析
经常看到一些Hive优化的建议中说当小表与大表做关联时,把小表写在前面,这样可以使Hive的关联速度更快,提到的原因都是说因为小表可以先放到内存中,然后大表的每条记录再去内存中检测,最终完成关联查询。这样的原因看似合理,但是仔细推敲,又站不住脚跟。 多小的表算小表?如果所谓的小表在内存中放不下怎么办?我用2个只有几条记录的表做关联查询,这应该算是小表了,在查看reduce的执行日志时依然...原创 2016-10-26 14:13:19 · 1629 阅读 · 1 评论