博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Impala 和 Hive 之间 SQL 区别(翻译)
阅读量:6704 次
发布时间:2019-06-25

本文共 1659 字,大约阅读时间需要 5 分钟。

hot3.png

Impala 和 Hive 之间 SQL 区别

当前版本的 Impala(1.2.3)不支持以下在 HiveQL 中可用的 SQL 特性:

  • 非标量数据类型如 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 支持这些聚合函数: , , , ,  
  • 用户定义产生表函数(User Defined Table Generating Functions,UDTFs)
  • 采样
  • Lateral views
  • 授权功能如角色
  • 一个查询中多个 DISTINCT 子句(Multiple DISTINCT clauses per query)

Impala 当前不支持这些 HiveQL 语句:

  • 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)名称。参见  
  • 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)

转载于:https://my.oschina.net/weiqingbin/blog/189414

你可能感兴趣的文章
Android 动态加载 (一) 态加载机制 案例一
查看>>
Oracle存储过程中异步调用的实际操作步骤
查看>>
Atitti.java android反编译解决方案-----虚拟机方案
查看>>
Java 装饰模式 (Decorator)
查看>>
JAVA虚拟机垃圾回收算法原理
查看>>
PHP开启curl_init
查看>>
动态规划法求背包问题
查看>>
【maven + hibernate(注解) +spring +springMVC】 使用maven搭建项目
查看>>
Mybatis-mapper-xml-基础
查看>>
如何在Visual Studio VS中定义多项目模板
查看>>
tcpip学习
查看>>
yii2权限控制rbac之菜单menu最详细教程
查看>>
国内四大炒股软件APP 全面技术解析
查看>>
C++ STL--queue 的使用方法
查看>>
[svc]visio绘制模具
查看>>
springmvc入门基础之注解和参数传递
查看>>
absolute绝对定位的非绝对定位用法
查看>>
小白全栈
查看>>
glib 散列表
查看>>
获取GridView TemplateField的数据
查看>>