Hive是基于hadoop的一个数据仓库基础架构,通过将结构化数据文件映射为一张数据库表,并提供简单的SQL查询功能,提供数据仓库的统计分析。Hive可以将SQL转化为MapReduce任务执行。Hive本身不存储数据,文件数据存储在hadoop兼容的文件系统中。Hive只保存元数据信息。Hive在数据加载过程中不会对数据进行任何的修改,只是将数据移动到HDFS中Hive指定的目录下。因此,Hive不支持对数据的修改和添加,所有数据都是加载的时候确定的,在读取的时候进行校验。Hive主要有一下特点:
1、支持索引,加快查询速度
2、支持多种存储类型
3、元数据信息保存在数据库中
4、可以直接使用hdfs文件系统中的数据
5、内置UDF韩式,用户可以自定义UDF函数
6.Hive的数据存储在HDFS中,针对大部分的HQL查询请求,Hive内部自动转换为MapReduce任务执行。
7.Hive 和 MySQL 之间通过 MetaStore 服务交互
8.Hive 依赖于 HDFS 存储数据,Hive 将 HQL 转换成 MapReduce 执行,所以说 Hive 是基于 Hadoop 的一个数据仓库工具,实质就是一款基于 HDFS 的 MapReduce 计算框架,对存储在 HDFS 中的数据进行分析和管理
9.执行流程:HiveQL 通过命令行或者客户端提交,经过 Compiler 编译器,运用 MetaStore 中的元数 据进行类型检测和语法分析,生成一个逻辑方案(Logical Plan),然后通过的优化处理,产生 一个 MapReduce 任务
Hive支持的数据类型:
hive支持基本数据类型和复杂数据类型两种数据类型:
基本数据类型:
Integers:
TINYINT - 1 byte
SMALLINT - 2 byte
INT - 4 byte
BIGINT - 8 byte
BOOLEAN:
BOOLEAN - TRUE/FALSE
Floating point numbers:
FLOAT –单精度
DOUBLE – 双精度
String:
STRING - sequence of characters in a specified character set
复杂数据类型:
Structs: 例子 {c INT; d INT}
Maps (key-value tuples):. 例子'group' -> gid M['group']
Arrays (indexable lists): 例子[‘1', ‘2', ‘3']
TIMESTAMP 0.8版本新加属性
转载于原文:https://blog.csdn.net/wjandy0211/article/details/78354661