HIVE和关系型数据库的对比:
http://www.cnblogs.com/sharpxiajun/archive/2013/06/02/3114180.html
HIVE数据类型和模型
http://www.cnblogs.com/sharpxiajun/archive/2013/06/03/3114560.html
HIVE
1.hive不支持日期类型,用string代替
2.hive里没对单个字段”删,改“,主要面向的是大数据,所以对表的修改通过新建表来构造
3.hive和关系型数据库都有”分区“
4.hive可以和hbase进行交互
5.hive是用java开发的,hive里的基本数据类型和java的基本数据类型也是一一对应的,除了string类型。有符号的整数类型:TINYINT、SMALLINT、INT和BIGINT分别等价于java的byte、short、int和long原子类型,它们分别为1字节、2字节、4字节和8字节有符号整数。Hive的浮点数据类型FLOAT和DOUBLE,对应于java的基本类型float和double类型。而hive的BOOLEAN类型相当于java的基本数据类型boolean。
6.hive的String类型相当于数据库的varchar类型,理论上它可以存储2GB的字符数
7.Hive支持两种数据类型,一类叫原子数据类型,一类叫复杂数据类型。复杂数据类型包括数组(ARRAY)、映射(MAP)和结构体(STRUCT)
eg:复杂类型建表:Create
table complex(col1 ARRAY<INT>,
Col2 MAP<STRING,INT>,
Col3 STRUCT<a:STRING,b :INT,c:DOUBLE>);
查询:
Select
col1[0],col2[‘b’],col3.c
from
complex;
8.hive的表逻辑上由存储的数据和描述表格中的数据形式的相关元数据组成。表存储的数据存放在分布式文件系统里,例如HDFS,元数据存储在关系数据库里,当我们创建一张hive的表,还没有为表加载数据的时候,该表在分布式文件系统,例如hdfs上就是一个文件夹(文件目录)
9.hive的这两种表在使用的区别主drop命令上,drop是hive删除表的命令,托管表执行drop命令的时候,会删除元数据和存储的数据,而外部表执行drop命令时候只删除元数据库里的数据,而不会删除存储的数据。