Hive之数据类型

前提

在介绍Hive的数据类型前,首先需要弄清楚Hive是什么。
Hive是基于Hadoop的一个数据仓库工具,一个数据仓库分析系统,在Hadoop中用来处理结构化数据,可以将结构化的数据映射为一张数据库表,并提供HQL(hive SQL)查询功能,底层数据是存储在HDFS(Hadoop分布式文件系统)。
Hive 依赖于 HDFS 存储数据,Hive 将 HQL 转换成 MapReduce 执行。
所以说 Hive 是基于 Hadoop 的一个数据仓库工具,实质就是一款基于 HDFS 的 MapReduce 计算框架,对存储在 HDFS 中的数据进行分析和管理。

一、数值类型

1.Hive中的整型有四种:

类型 大小 后缀
TINYINT 1字节 Y
SMALLINT 2字节 S
INT 4字节 -
BIGINT 8字节 L

整型数值默认按照INT处理,整型数值超出INT范围、数值后加Y/S/L后缀时,发生向其他整型类型的转换。

2.Hive的浮点型有两种:

类型 大小
FLOAT 4字节
DOUBLE 8字节

3.小数点:
在Hive 小数类型与Java大十进制格式相同。它是用于表示不可改变任意精度。语法和示例如下:

DECIMAL(precision, scale)
decimal(10,0)

二、字符串类型

字符串类型的数据类型可以使用单引号(’’)或双引号(“”)来指定。它包含两个数据类型:VARCHAR和CHAR。Hive遵循C-类型的转义字符。
下表描述了Hive的字符串类型:

类型 长度
CHAR 1-255
DOUBLE 1-65535

三、时间类型

  • 时间戳:它支持传统的UNIX时间戳可选纳秒的精度。它支持的java.sql.Timestamp格式“YYYY-MM-DD HH:MM:SS.fffffffff”和格式“YYYY-MM-DD HH:MM:ss.ffffffffff”。
  • 日期:DATE值在年/月/日的格式形式描述 {{YYYY-MM-DD}}。

四、其他类型

BOOLEAN(布尔类型):true false
BINARY (二进制)

五、复合类型

  • array数组类型 :一组有序字段,字段类型必须相同。ARRAY
    eg:array(“a”,”b”,”c”)

  • Maps : Maps和Java中的Map相同,即存储K-V对的; 一组无序的键/值对,键的类型必须是原子的,值可以是任意类型,同一键映射的值得类型必须相同。
    MAP
    eg:map(“a”,1,”b”,2)

  • Structs:一组由任意数据类型组成的结构,一组命名的字段,字段类型可以不同。
    STRUCT
    eg:struct(“a”,1,2,3)

例:

create table table_eg(
         a1 ARRAY< INT>,
         a2 MAP< STRING,INT>,
         a3 STRUCT< a:STRING,b:INT,c:DOUBLE>);

你可能感兴趣的:(Hive之数据类型)