目录
一、Hive诞生的原因
1. 方便对文件及数据的元数据进行管理,提供统一的元数据管理方式。
2. 提供更加简单的方式来访问大规模的数据集,使用SQL语言进行数据分析。
二、Hive简介
1. 数据仓库基本概念
数据仓库,英文名称为Data Warehouse,可简写为DW或DWH。数据仓库,是为企业所有级别的决策制定过程,提供所有类型数据支持的战略集合。它是单个数据存储,出于分析性报告和决策支持目的而创建。 为需要业务智能的企业,提供指导业务流程改进、监视时间、成本、质量以及控制。
下面这个图是Hive的架构和HQL编译原理图:
2. 数据处理分类:OLAP与OLTP
数据处理大致可以分成两大类:联机事务处理OLTP(on-line transaction processing)、联机分析处理OLAP(On-Line Analytical Processing)。OLTP是传统的关系型数据库的主要应用,主要是基本的、日常的事务处理,例如银行交易。OLAP是数据仓库系统的主要应用,支持复杂的分析操作,侧重决策支持,并且提供直观易懂的查询结果。
3. OLTP
OLTP,也叫联机事务处理(Online Transaction Processing),表示事务性非常高的系统,一般都是高可用的在线系统,以小的事务以及小的查询为主,评估其系统的时候,一般看其每秒执行的Transaction以及Execute SQL的数量。在这样的系统中,单个数据库每秒处理的Transaction往往超过几百个,或者是几千个,Select 语句的执行量每秒几千甚至几万个。典型的OLTP系统有电子商务系统、银行、证券等,如美国eBay的业务数据库,就是很典型的OLTP数据库。
4. OLAP
OLAP(On-Line Analysis Processing)在线分析处理是一种共享多维信息的快速分析技术;OLAP利用多维数据库技术使用户从不同角度观察数据;OLAP用于支持复杂的分析操作,侧重于对管理人员的决策支持,可以满足分析人员快速、灵活地进行大数据复量的复杂查询的要求,并且以一种直观、易懂的形式呈现查询结果,辅助决策。
5. 特点:
(1)快速性:用户对OLAP的快速反应能力有很高的要求。系统应能在5秒内对用户的大部分分析要求做出反 应。
(2)可分析性:OLAP系统应能处理与应用有关的任何逻辑分析和统计分析。
(3)多维性:多维性是OLAP的关键属性。系统必须提供对数据的多维视图和分析,包括对层次维和多重层次 维的完全支持。
(4)信息性:不论数据量有多大,也不管数据存储在何处,OLAP系统应能及时获得信息,并且管理大容量信 息。
三、Hive的服务(角色)
1、用户访问接口
CLI(Command Line Interface):用户可以使用Hive自带的命令行接口执行Hive QL、设置参数等功能。
JDBC/ODBC:用户可以使用JDBC或者ODBC的方式在代码中操作Hive。
Web GUI:浏览器接口,用户可以在浏览器中对Hive进行操作(2.2之后淘汰)。
2、Thrift Server:
Thrift服务运行客户端使用Java、C++、Ruby等多种语言,通过编程的方式远程访问Hive。
3、Driver
Hive Driver是Hive的核心,其中包含解释器、编译器、优化器等各个组件,完成从SQL语句到MapReduce任务的解析优化执行过程。
4、metastore
Hive的元数据存储服务,一般将数据存储在关系型数据库中,为了实现Hive元数据的持久化操作,Hive的安装包中自带了Derby内存数据库,但是在实际的生产环境中一般使用mysql来存储元数据。
四、数据库与数据仓库的区别
1、数据库是对业务系统的支撑,性能要求高,相应的时间短,而数据仓库则对响应时间没有太多的要求,当然也是越快越好。
2、数据库存储的是某一个产品线或者某个业务线的数据,数据仓库可以将多个数据源的数据经过统一的规则清洗之后进行集中统一管理。
3、数据库中存储的数据可以修改,无法保存各个历史时刻的数据,数据仓库可以保存各个时间点的数据,形成时间拉链表,可以对各个历史时刻的数据做分析。
4、数据库一次操作的数据量小,数据仓库操作的数据量大。
5、数据库使用的是实体-关系(E-R)模型,数据仓库使用的是星型模型或者雪花模型。
6、数据库是面向事务级别的操作,数据仓库是面向分析的操作。
Hive与传统关系型数据库(RDBMS)对比图:
五、Hive SQL的基本操作
1、Hive基本操作
展示所有数据库: