Hive
基于Hadoop数据保存到HDFS
数据仓库工具
结构化的数据 映射为一张数据库表
01,张三,89
02,李四,91
03,赵武,92
HQL查询功能(Hive SQL)
将分布式计算的任务交给MapReduce,然后用Hive进行操作。
HQL查询功能(Hive SQL)
本质把HQL翻译成MapReduce,降低使用Hadoop计算的门槛。
离线数据分析开发效率比直接用MapReduce高
使用Hive
1、操作接口采用SQL语法,提供快速开发的能力
2、避免了去写MapReduce,减少开发人员的学习成本
3、功能扩展很方便
只要不涉及算法部分,会Hive就行,大部分都在写SQL。
Hive架构
1、用户接口:shell命令行
2、元数据存储
数据库 表 都保存到那些位置上
表中的字段名字 类型
mysql derby(自带)
Drive
负责把HQL翻译成MapReduce
或者翻译成Shell命令
Hive是数据仓库工具,没有集群的概念,如果想提交Hive作业只需要在Hadoop集群Master节点上装Hive就可以了。
Hive和Hadoop关系
1、利用hdfs存数据,利用mr算
2、Hive只需要跟Master节点打交道,不需要集群。
Hive用于海量数据的离线数据分析
小数据情况下,没有SQL快,Hive的优势是海量数据。
不支持更新和删除,所以也不支持事务。
利用MapReduce执行,延迟高,子查询只能用From。
**
Hive和关系型数据库区别
**
1、Hive离线计算海量查询
2、Hive最主要做查询,不涉及删除修改,默认不支持删除修改,默认不支持事务,并不完全支持标准sql。
3、SQL CRUD全部支持,支撑在线业务,索引完整,支持事务。
4、Hive数据模型
一、Hive中所有的数据库都存储在HDFS中,没有专门的数据存储格式。
为什么要分区:
1、随着表的不断增大,对于新纪录的增加,查找,删除的维护也更加困难,对于数据库中的超大型表,可以通过把它的数据分成若干个小表,从而简化数据库的管理活动,对于每一个简化后的小表,我们称为一个单独的分区。
内置运算符:
1、关系运算符
2、算术运算符
3、逻辑运算符
4、复杂运算