总体一致:
Hive-sql与SQL基本上一样,因为当初的设计目的,就是让会SQL不会编程MapReduce的也能使用Hadoop进行处理数据。
因此,大胆使用SQL的,如果遇到不对的,再查。
用法上的区别:
1. HQL不支持行级别的增、改、删,所有数据在加载时就已经确定,不可更改。
2. 不支持事务。
3. 支持分区存储。
hive下的SQL特点:
1.不支持等值连接,一般使用left join、right join 或者inner join替代。
2.不能智能识别concat(‘;’,key),只会将‘;’当做SQL结束符号。
3.不支持INSERT INTO 表 Values(), UPDATE, DELETE等操作
4.HiveQL中String类型的字段若是空(empty)字符串, 即长度为0, 那么对它进行IS NULL的判断结果是False,使用left join可以进行筛选行。
5.不支持 ‘< dt <’这种格式的范围查找,可以用dt in(”,”)或者between替代。