Hive学习笔记(一)

1.1数据类型

    hive的数据类型同大多数关系型数据库一样,支持大多数的数据类型,也同样有自己独有的一些数据类型。具体如下:

1.1.1基本数据类型

               数据类型                长度
TINYINT 1字节
SMALLINT 2字节
INT 4字节
BIGINT 8字节
FLOAT 4字节
DOUBLE 8字节
BOOLEAN TRUE/FALSE
STRING 字符序列


1.1.2复杂数据类型

     数据类型          说明
STRUCT 结构体,存储方式:struct(first,last)
MAP 键值对集合,存储方式:map(keyName,keyValue,valueName,value)
ARRAY

数组,存储方式array(first,last)

1.2文件存储格式

hive中表都是文件的形式存储在文件系统中的,hive支持的存储格式有如下几种:

(1)TEXTFILE

TEXTFILE是系统默认的存储格式,也就是通常所说的文本格式,该种格式对数据不进行压缩,因此,缺点就是磁盘占用     比较大。

(2)SEQUENCEFILE

SEQUENCEFILE是Hadoop提供的一种二进制格式,具有可分割、可压缩的特点。

(3)RCFILE

RCFILE是一种行列存储相结合的存储方式,先按行存储,确保同一条数据在一个块上,然后按列存储,有利于数据的压缩的快速读取。

(4)PARQUET

PARQUET是一种列式存储格式,有兴趣的可以查看http://lastorder.me/tag/parquet.html

1.3数据格式

常见的格式有CSV(以逗号为分隔符)和TSV(以制表符为分隔符),另外hive还支持一下分隔符:

                    分隔符                   说明
\n 换行符,默认值
^A 列分隔符,文本中以八进制\001表示
^B 作为集合或键值对中的分隔符,文本中以八进制\002表示
^C 最为键值对的分隔符,文本中以八进制\003表示

1.4Hive中的数据库以及表

hive中的数据库本质上就是个目录,数据库中的表就是子目录。我们前面安装时已经说过,hive中的数据库以及表存储在hdfs文件系统中。感兴趣的可以查看存储hive信息的数据库表中,会有对应hive数据库名称与hdfs路径。

hive中的表可以分为四类:管理表、外部表、分区表和分桶表。

管理表,创建的表如果没有指明,都是hive中的管理表,这类表由hive负责管理,删除时将同时删除标的元数据和数据。

外部表,外部表的作用是可以一份数据可以被共享使用,关键字EXTERNAL声明为外部表,删除表时只删除标的元数据,另外,在创建外部表时还可以使用Location指定存放路径。

分区表,顾名思义就是可以对表按照相应的规则进行存储,比如,可以将表进行水平切分等。分区表通过关键字PARTITIONED BY进行分区。

分桶表,是对数据进行哈希取值,然后放到不同文件中存储,通过关键字clustered by 进行分桶操作。

你可能感兴趣的:(Hive)