数据仓库
数据仓库简称DW,用来存储数据。数据仓库不涉及事务操作。
目的
构建面向分析的集成化环境,主要对数据仓库的数据进行分析
特征
1、面向主题:数据分析需要一定的范围,需要选取一定的主题
2、集成:集成相关联的数据。数据仓库里面的数据是经过清洗的
3、非易失性:数据仓库的数据基本上是过去的数据,不需要经过事务操作
4、实变性:随着时间的发展,数据的形态在发生改变,数据分析的手段也需要发生对应的改变
数据库和数据仓库的区别
数据库:OLTP,联网事务处理。主要功能是做事务处理,主要负责频繁的事务操作
数据仓库:OLAP,联网分析处理,不需要做事务,主要负责分析
数仓产生的原因
因为存在大量数据,需要对这些数据进行分析。
数仓的分层
源数据层 ODS 数据产生
数据仓库层 DW 数据存储,面向主题进行分析
数据应用层 APP 数据可视化展示
ETL
数据在这三层之间的一个流动,称之为ETL的过程
ETL:extrat(抽取) transform(转换) load(加载)
数据从源数据层流向数据仓库层再流向app层
为什么要分层
分层会让职责明确
元数据
存储数据仓库模型定义以及各层之间的映射关系
hive
数据仓库的处理工具,专门处理数据仓库的数据分析。
hive 将结构化数据映射为表,并提供类似与sql的操作
本质:将sql转化为mr
hive中的元数据
hive表和hdfs存储文件之间的关系映射
hive中数据存储:hdfs
数据分析:mr
hive架构
接口 提供写sql的位置
解析器 解析sql为mr任务 准备执行
元数据 存储hive表和数据之间的映射关系
执行器 提交mr任务
hive与hadoop的关系:hive就是一个mr的客户端
hive环境搭建
1、修改hive中元数据存储位置为mysql
vim /conf/hive-env.sh
修改hadoop位置
修改hive的conf位置
2、修改hive-site.xml
hive的三种交互
第一种方式:使用hive的shell bin/hive 可以进入hive的客户单,执行我们的sql语句
第二种方式:启动服务端,使用beeline进行交互
nohup /bin/hive --service hiveserver2 2>&1 & 将进程挂在后台
/bin/beeline
第三种方式:/bin.hive -e "sql语句" /bin/hive -f sql脚本