總體一致:
Hive-sql與SQL基本上一樣,因為當初的設計目的,就是讓會SQL不會編程MapReduce的也能使用Hadoop進行處理數(shù)據(jù)。
因此,大膽使用SQL的,如果遇到不對的,再查。
用法上的區(qū)別:
1. HQL不支持行級別的增、改、刪,所有數(shù)據(jù)在加載時就已經(jīng)確定,不可更改。
2. 不支持事務。
3. 支持分區(qū)存儲。
hive下的SQL特點:
? ? 1.不支持等值連接,一般使用left join、right join 或者inner join替代。
? ? 2.不能智能識別concat(‘;’,key),只會將‘;’當做SQL結(jié)束符號。
? ? 3.不支持INSERT INTO 表 Values(), UPDATE, DELETE等操作
? ? 4.HiveQL中String類型的字段若是空(empty)字符串, 即長度為0, 那么對它進行IS NULL的判斷結(jié)果是False,使用left join可以進行篩選行。
? ? 5.不支持 ‘< dt <’這種格式的范圍查找,可以用dt in(”,”)或者between替代。