一、概述
Hadoop的发音是 [hædu:p]
Hive是构建在hadoop HDFS上的一个数据仓库。(HDFS:Hadoop Distributed File System 是大数据的底层系统)
数据仓库本质上就是一个数据库,但和数据库还有一些区别。
数据仓库定义:数据仓库是一个面向主题的、集成的、不可更新的、随时间不变化的数据集合,它用于支持企业或组织的决策分析处理。
·主题:数据仓库中的数据是按照一定主题进行组织的。用户使用数据仓库进行决策时所关心的重点方面,例一个商品推荐系统,主要关注的就是商品的信息——即主题。
·集成:数据仓库是一个集成的数据库。数据仓库中的数据来自于分散的操作型的数据。将原来分散的操作型的数据从关系型数据库(如MySQL、Oracle)、文本文件(如csv.\txt.)或其他系统中抽取出来,进行加工和处理,满足了一定的要求后才可以进入数据仓库。
·不可更新:这里是指已经导入数据仓库中的数据,是不会更新的,换句话说,一条数据进入了数据仓库,就不会再做任何改变。如果想要对已有的数据进行更改,只会产生新的数据,再次倒入数据仓库。这是因为,数据仓库是用来做决策分析的。过去的所有数据,都是代表了当时的状态,所以不可以有任何改变。就像历史一样,已经成为事实的东西,是不能改变的。所以所涉及到的操作主要是查询,通常不会在数据仓库中进行更新和删除。
数据仓库的结构和建立过程
ETL:就是对数据源进行抽取(Extract)、转换(Transform)、装载(Load)的过程。
·抽取(Extract):就是把数据源按照一定的方式读取出来。
·转换(Transform):因为不同数据源的数据格式可能不一样,不一定满足我们的要求。所以要按照一定的规则进行转化,只有转换后符合要求的数据才可以进行装载。
·装载(Load):将满足格式的数据存到数据仓库当中。
OLTP应用与OLAP应用
OLTP应用:联机事务处理(Online Transaction Processing)
OLAP应用:联机分析处理(Online Analysis Processing)
数据仓库中的数据模型
搭建数据仓库的两种基本模型:
1.星型模型(搭建数据仓库最基本的一种数据模型)
2.雪花模型(在星型模型的基础上发展出的模型,适用于更复杂的场景)
星型模型:
举例:商品推荐系统
构建了一个以商品信息为核心,面向主题的模型。
有些时候这些信息满足不了主题的要求,在星型模型的基础上衍生出了更复杂的雪花模型。
什么是HIVE?
Hive是建立在Hadoop HDFS上的数据仓库基础架构(也就是一个数据库)
Hive可以用来进行数据提取转化加载(就是上面提到的ETL)
Hive定义了简单的类似SQL查询语言,称为HQL,它允许熟悉SQL的用户查询数据,跟在关系型数据库里是一样的。
Hive允许熟悉MapReduce的开发者开发自定义的mapper和reducer来处理内建的mapper和reducer无法完成的复杂的分析工作。(MapReduce是啥呢?暂时不知道♂️)
Hive对SQL的翻译功能就是通过SQL解析引擎完成的,即将SQL语句转移成M/R Job,然后在Hadoop执行。
Hive的表其实就是HDFS的目录(一个文件夹),Hive中的数据就是HDFS中的文件
二、Hive入门
Hive的体系结构
Hive的元数据
Hive将元数据储存在数据库中(matastore),支持mysql、derby、oracle等数据库。(Hive默认采用的是derby数据库作为元数据存储的位置)
什么是元数据?
Hive中的元数据包括表的名字、表的列的名字、分区的名字及其属性、表的属性(是否为外部表等)、表的数据所在目录——即元数据与表的具体内容无关,只是表的属性信息。
一条HQL语句如何在hive中进行查询?
Hive为我们提供了三个主键来帮助我们完成这项工作——解释器、编译器、优化器。
解释器、编译器、优化器完成HQL查询语句从词法分析、语法分析、编译、优化以及查询计划(Plan)的生成。生成的查询计划储存在HDFS中,并在随后用MapReduce调用执行。
(虽然目前看不太懂,暂时存一下)
----------------
2020年11月17日 看到去年自学的这坨啥也不懂
觉得自己那时候真是努力又可爱哈哈哈哈哈哈哈哈