Hive is based on Hadoop 的数据仓库工具,将structured data file 映射成table,并提供类似sql的查询功能。
特点: Hive擅长的是非实时的、离线的、对响应及时性要求不高的海量数据批量计算,即席查询,统计分析。
Hql 为查询的接口,HDFS存储,使用mapreduce计算。
与关系型数据库的区别:
①数据库可以用在Online的应用中,Hive主要进行离线的大数据分析;
②数据库的查询语句为SQL,Hive的查询语句为HQL;
③数据库数据存储在LocalFS,Hive的数据存储在HDFS;
④Hive执行MapReduce,MySQL执行Executor;
⑤Hive没有索引;
⑥Hive延迟性高;
⑦Hive可扩展性高;
⑧Hive数据规模大;
HDFS本身就设计为一次写入,多次读取的分布式存储系统,因此,不能使用Hive来完成诸如DELETE、UPDATE等在线事务处理的需求;
Hadoop本身是一个批处理,高延迟的计算框架,Hive使用Hadoop作为执行引擎,自然也就有了批处理,高延迟的特点,在数据量很小的时候,Hive执行也需要消耗较长时间来完成,就显示不出它与Oracle,Mysql等传统数据库的优势。
Hive的数据单元
Database
Tables
Partitions
Buckets: 同一分区的数据可以细分,将想同的key再分至一个bucket中。类似Hash分区。
数据类型:
(a) 原始型数据类型
整型: TINYINT 微(1个字节 0--255); SMALLINT小(2个字节,-32769--32796); INT(4个字节 -2147483648到2147483647); BIGINT长(8个字节,-2^63到2^63-1)
布尔型(Boolean) : TURE/FALSE)
浮点型: Float/Double
STRING
(b) 复合型数据类型
structs (任意数据类型组成的结构) , maps (k-v对), arrays (数组).
网友评论