1、执行速度不同: Hive:底层基于Hadoop的MapReduce引擎,计算过程中经常要走shuffle过程,速度比较慢 Impala:底层基于内存,执行效率高,是Hive执行速度的5-50倍之间。 2、使用的函数之间有区别: Hive:使用 concat() | concat_ws() 函数,连接的字段类型没有限制 Impala:使用 concat() | concat_ws() 函数,连接的字段类型必须是string类型 Hive:中有split(执行字段,指定切分符 ) [指定返回的列标] 函数 注意:索引以0开始 Impala:中有split_part(执行字段,指定切分符,指定返回的列标 ) 函数 注意:索引以1开始 3、关键字之间的区别: hive: group by 后不能使用字段的别名 Impala:group by 后可以使用字段的别名 4、函数使用的不同 hive中concat() | concat_ws()函数可以拼接不同类型的字段 impala中concat() | concat_ws()函数只能拼接string类型的字段。如果不是string类型,需要使用cast(字段 as string) 一般SQL的执行顺序 from join on where group by having select distinct union order by 在hive中group by后不能使用select后显示字段的别名 在Impala、MySQL等【有待进一步验证】数据库中group by后面可以使用select后显示字段的别名
|