《Hive编程指南》读书笔记 | 一文看懂Hive的数据类型和文件格式

  Hive支持关系型数据库中的大多数基本数据型,同时也支持关系型数据库中很少出现的3种集合数据型。

  和大多数数据库相比,Hive具有一个独特的功能,那就是其对于数据在文件中的编码方式具有非常大的灵活性。

  大多数数据库对数据具有完全的控制,其包括对数据存储到磁盘的过程的控制,也包括对数据生命周期的控制

  而Hive将这些方面的控制权交给用户,使用户更容易地使用各种各样的工具来管理和处理数据。

 

一、  基本数据类型

表1-1 Hive基本数据类型

数据类型

 

长度

 

例子

 

TINYINT

 

1byte有符号整数

 

20

 

SMALINT

 

2 byte有符号整数

 

20

 

INT

 

4 byte有符号整数

 

20

 

BIGINT

 

8 byte有符号整数

 

20

 

BOOLEAN

 

布尔类型,true或false

 

TRUE

 

FLOAT

 

单精度浮点数

 

3.14159

 

DOUBLE

 

双精度浮点数

 

3.14159

 

STRING

 

字符序列。可指定字符集。可使用单引号或双引号

 

‘now is the time’,”for all good men”

 

TIMESTAMP(v0.8.0+)

 

整数、浮点数或字符串

 

1327882397(Unix新纪元秒),1327882397。123456789(Unix新纪元秒并跟随有纳秒数)和‘2019-09-09 12:34:56.123456789’(JDBC所兼容的java.sql.Timestamp)

 

BINARY(v0.8.0+)

 

字节数组

 

见下文

 

 

二、  Hive的基本数据类型与Java中对应的类型一致

Hive的基本数据类型都是对Java中的接口的实现,因此这些类型的具体行为细节和Java中对应的类型是完全一致的。

 

三、  Hive不支持限制最大长度的“字符数组”类型

关系型数据库支持该类型是出于性能优化的考虑,因为定长的记录更容易进行建立索引,数据扫描等。

Hive所处的世界是“宽松”的,它不一定拥有数据文件,但必须能够支持使用不同的文件格式。Hive根据不同字段间的分隔符来对其进行判断。

同时,Hadoop和Hive强调优化磁盘的读和写的性能,而限制列的值的长度相对来说并不重要。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zyfdww.html