當前版本的 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)