Oracle/Hive/Impala SQL比较(1-2)

本文对比了Oracle 11g、Hive 0.13.0和Impala 2.1.0的SQL特性,通过表格形式详细展示了三者之间的差异。内容包括对Cloudera官方文档中Impala与Hive差异的补充,以及罕见的Oracle与Hive的对比。
摘要由CSDN通过智能技术生成

     因为一部分是写给公司同事看的,会适当阉割。

     分为五部分介绍,以表格形式对比。各软件默认版本如下:Oracle 11g, Hive 0.13.0, Impala 2.1.0,如有例外会指出。空白说明没有这种类型或功能。

     Cloudera官方文档有一篇文章阐述了Impala和Hive的差异(http://www.cloudera.com/documentation/archive/impala/2-x/2-1-x/topics/impala_langref_unsupported.html),不过描述得比较简略,详细的对照本文会给出。Oracle和Hive的对照则基本没看到过,本文也尝试给出。


1 Data Type
1.1 字符类型
类型
Oracle
Hive
Impala
CHAR(n)
n默认1字节,最大为2000,n可省略
最大255
同hive
NCHAR(n)
n默认1字节,最大为2000,n可省略,存Unicode


NVARCHAR2(n)
n不可省略,最大4000,存Unicode


VARCHAR2(n)
n不可省略,最大4000


VARCHAR(n)
同VARCHAR2,不建议使用
最大65535
同hive
STRING

‘’或“”括住,文档中未说明最大长度,怀疑和Java的String相同,即2G个字符数,占4G字节(未测过)
‘’或“”括住,最大32767字节

1.2 数字类型
类型
Oracle
Hive
Impala
NUMBER(p[,s])
1-22字节,p取值范围1到38,s取值范围-84到127
存储定点数,值的绝对值范围为1.0 x 10e-130至1.0 x 10e126。值大于等于1.0 x 10e126时报错。p为有意义的10进制位数,正值s为小数位数,负值s表示四舍五入到小数点左部多少位。


BINARY_FLOAT
5字节,其中有一长度字节。
32位单精度浮点数类型。
符号位1位,指数位8位,尾数位23位。


BINARY_DOUBLE
9字节,其中有一长度字节。
64位双精度浮点数类型。


DECIMAL(p[,s])
只在语法上支持,底层实际就是NUMBER,无任何区别
最大38位精度
0.11引入时固定38位
0.13开始允许自定义p和s
最大38位精度
TINYINT

1-byte signed integer, from -128 to 127
同hive
SMALLINT

2-byte signed integer, from -32,768 to 32,767
同hive
INT
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值