当前版本的 Impala(1.2.3)不支持如下在 HiveQL 中可用的 SQL 特性: html
- 非标量数据类型如 maps, arrays, structs
- 可扩展机制(Extensibility mechanisms)例如 TRANSFORM, 自定义文件格式, 或自定义 SerDes; zImpala 1.2
- XML 和 JSON 函数
- HiveQL 中的某些聚合函数: variance, var_pop, var_samp, stddev_pop, stddev_samp, covar_pop, covar_samp, corr, percentile, percentile_approx, histogram_numeric,collect_set; Impala 支持这些聚合函数: MAX(), MIN(), SUM(), AVG(), COUNT()
- 用户定义产生表函数(User Defined Table Generating Functions,UDTFs)
- 采样
- Lateral views
- 受权功能如角色
- 一个查询中多个 DISTINCT 子句(Multiple DISTINCT clauses per query)
Impala 当前不支持这些 HiveQL 语句: sql
- ANALYZE TABLE (在 Impala 有等价的 COMPUTE STATS)
- DESCRIBE COLUMN
- DESCRIBE DATABASE
- EXPORT TABLE
- IMPORT TABLE
- SHOW PARTITIONS
- SHOW TABLE EXTENDED
- SHOW INDEXES
- SHOW COLUMNS
许多状况下 Impala 与 Hive 中使用类似的 SQL 语句和子句的语义不一样: 数据库
- Impala 使用不一样的语法和查询提示(query hints)名称。参见 Joins
- Impala 在执行 SORT BY, DISTRIBUTE BY, CLUSTER BY 时不使用 MapReduce(Impala does not expose MapReduce specific features of SORT BY, DISTRIBUTE BY, or CLUSTER BY)
- Impala 查询中能够不须要 FROM 子句
- Impala 支持有限的几组隐式类型转换。这能够避免从未预期的转换行为致使未知的结果
- Impala 在 string 和 numeric 或 Boolean 之间不进行隐式转换
- Impala 在 numeric 或 string 到 timestamp 之间不进行隐式转换(Impala does perform implicit casts among the numeric types or from string to timestamp)
- Impala 不使用本地时区保存时间戳,以免超出预期的时区致使的未知的结果。时间戳都是相对于 GMT(格林尼治时间) 存储的
- 就像在传统数据库系统中那样,Impala 不会为溢出列(column overflows)返回 NULL,以便客户能够区分 NULL 数据和溢出条件。Impala 返回该数据类型的最大或最小值。例如,tinyint 的有效值范围是 -128 到 127。在 Impala 里,设置 tinyint 为 -200 则返回值是 -128 而不是 NULL。设置 tinyint 为 200 实际是 127。
- Impala 不提供虚拟列(virtual columns)
- Impala 没有公开锁(Impala does not expose locking)
- Impala 没有公开一些配置属性(Impala does not expose some configuration properties)