Impala和Hive之间的SQL差异
Impala的SQL语法遵循SQL-92标准,并且在内置功能等领域包括许多行业扩展。有关将SQL代码从各种数据库系统移植到Impala的一般讨论,请参见将SQL从其他数据库系统移植到Impala。
由于Impala和Hive共享相同的metastore数据库,并且它们的表经常互换使用,因此以下部分详细介绍了Impala和Hive之间的区别。
HiveQL功能在Impala中不可用
当前版本的Impala不支持您可能从HiveQL熟悉的以下SQL功能:
扩展机制,例如TRANSFORM,自定义文件格式或自定义SerDes。
该DATE数据类型。
XML函数。
从HiveQL某些集合函数:covar_pop,covar_samp, corr,percentile,percentile_approx, histogram_numeric,collect_set; Impala支持Impala集合函数中列出的集合函数集和Impala解析函数中列出的分析函数。
采样。
横向视图。在帕拉2.3和更高,帕拉支持在查询上复杂类型(STRUCT,ARRAY,或MAP),使用连接符号而不是EXPLODE()关键字。有关Impala对复杂类型的支持的详细信息,请参见复杂类型(仅Impala 2.3或更高版本)。
从Impala 1.2开始支持用户定义的函数(UDF)。有关 Impala UDF的完整详细信息,请参见用户定义函数(UDF)。
Impala支持用C ++编写的高性能UDF,以及重用某些基于Java