1 hive简介
1.1 什么是Hive?
Hive是基于Hadoop HDFS之上的数据仓库。
我们可以把数据存储在这个基于数据的仓库之中,进行分析和处理,完成我们的业务逻辑。
本质上就是一个数据库
它可以来保存我们的数据,Hive的数据仓库与传统意义上的数据仓库还有区别。
一般来说,我们也可以基于传统方式(Oracle或者MySQL数据库)来搭建这个数据仓库,这个时候数据仓库中的数据是保存在Oracle或者MySQL的数据库当中的。
Hive跟传统方式是不一样的,Hive是建立在Hadoop HDFS基础之上的数据仓库基础框架。也就是说
--Hive这个数据仓库中的数据是保存在HDFS上。
--Hive可以用ETL的方式来进行数据提取转化加载。
--Hive定义了简单的类似SQL查询语言,称为HQL。
--Hive允许熟悉MapReduce开发者的开发自定义的mapper和reducer来处理內建的mapper和reducer无法完成的复杂的分析工作。
--Hive是SQL解析引擎,它将SQL语句转移成M/R Job,然后在Hadoop上执行。把执行的结果最终反映给用户。
--Hive的表其实就是HDFS的目录,Hive的数据其实就是HDFS的文件
1.2 什么是数据仓库?
实际上就是一个数据库。我们可以利用数据仓库来保存我们的数据。
与一般意义上的数据库不同。数据仓库是一个面向主题的、集成的、不可更新的、随时间不变化的数据集合,它用于支持企业和组织的决策分析处理。
1)面向主题的:
数据仓库中的数据是按照一定的主题来组织的。*主题:指的是用户使用数据仓库进行决策时所关心的重点方面。
2)集成的:
数据仓库中的数据来自于分散的操作性的数据,我们把分散性的数据的操作性的数据从原来的数据中抽取出来进行加工和处理,然后满足一定的要求才可以进入我们的数据仓库。
原来的数据,可能来源于我们的Oracle、MySQL等关系型数据库,文本文件,或者其他的系统。将不同的数据集成起来就形成了数据仓库。
3)不可更新的
也就是说数据仓库主要是为了决策分析所提供数据,所以涉及的操作主要是数据的查询。我们一般都不会再数据仓库中进行更新和删除。
4)随时间不变化
数据仓库中的数据是不会随时间产生变化的集合。
1.3 数据仓库的结构和建立过程
1)数据源:
有可能来自由业务数据系统(关系型数据库),文档资料(csv,txt等),其他数据
2)数据存储和管理:
俗称的ETL的过程。
抽取(Extract):把数据源的数据按照一定的方式读取出来
转换(Transform):不同数据源的数据它的格式是不一样的,不一定满足我们的要求,所以需要按照一定的规则进行转换。
装载(Load):将满足格式的数据存取到数据仓库之中。
3)数据仓库引擎:
建立了数据仓库以后,当然是提供对外的数据服务,所以产生了数据仓库引擎。
在数据仓库引擎之中包含有不同的服务器,不同的服务器提供不同的服务。
4)前端展示:
前端展示的数据均来自数据仓库引擎中的各个服务。而服务又读物数据仓库中的数据。
数据查询
数据报表