hive 基础

hive join 的分类:

 1. joinnginx

 2. left outer joinapi

 3. right outer joinide

 4. full outer joinspa

 5.  Left Semi Joinorm

6.   Map Side Joinit

7.   Common Joinform

8.   Skew Jointest


Left Semi Join效率

hive以前(现已支持!)不支持in/exists,left semi join是in/exists更有效率的实现。select

hive 中没有in/exist 这样的子句,因此须要将这种类型的子句转成left semi join. left semi join 是只传递表的join key给map 阶段 , 若是key 足够小仍是执行map join, 若是不是则仍是common join.

eg:

SELECT a.key, a.value FROM a WHERE a.key in (SELECT b.key FROM B);可使用以下语句代替:

SELECT a.key, a.val FROM a LEFT SEMI JOIN b on (a.key = b.key)


case-when:

 eg:select platform ,case when req_interface='/api/check.do' then 'check' else 'not check' end from                           test_nginx_log where p_hour=2014070118 limit 10;

相关文章
相关标签/搜索