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)
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;