Hive和SQL基本上是一样的,因为当初设计的目的就是让会SQL但是不会编程MapReduce的也会使用Hadoop进行处理数据。因此可以大胆的使用SQL,如果遇到不对的,再查。
区别:
- hive不支持等值连接,可以使用Join。。on
- 分号字符。尽管hive和SQL中封号都表示结束标志,但是在hive中并没有那么智慧的识别。eg:select concat(key,concat(';',key)) from dual;在Hive中没法识别,我们可以通过八进制的ASCII进行转译。select concat(key,concat('\073',key)) from dual;
- is null:在SQL中null代表空值,但是在hive中string类型的字段如果是空,即长度为0,那么对它进行isnull判断结果是False
- hive不支持将数据插入现有的表或者分区中。仅支持覆盖重写整个表。
- hive不支持insert update delete操作。
- hive支持嵌入mapreduce程序,来处理复杂的逻辑
- hive支持将转换后的数据直接写入不同的表,还能写入分区、hdfs和本地目录