Hive和Impala的区别

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的执行顺序:可以参考:MySQL中的注意事项 - SailorG - 博客园 (cnblogs.com)

  • from
  • join on
  • where
  • group by
  • having
  • select
  • distinct
  • union
  • order by

在hive中group by后不能使用select后显示字段的别名

在Impala、MySQL等【有待进一步验证】数据库中group by后面可以使用select后显示字段的别名

-----------------------------------

有待进一步整理

posted @ 2021-05-26 16:42  SailorG  阅读(2275)  评论(0编辑  收藏  举报