Hive(一)
Hive的基本介绍
什么是Hive?
Hive是基于Hadoop的一个数据仓库工具,可以将结构化数据映射为一张数据库表,并提供类SQL查询功能,Hive利用HDFS进行存储,利用MapReduce查询分析数据
本质是将SQL转换为MapReduce应用程序,比直接使用MapReduce开发效率高
Hive的源数据存储?
通常是存储在关系型数据库中 mysql/derby中。Hive将元数据村处在数据库中。Hive中的元数据包括表的名字,表的列和分区及其属性,表的属性(是否为外部表),表的数据所在目录等
Hive与传统DB的区别?
传统数据库:OLTP -->面向事务(Transaction)操作型处理就是关系型数据库:Mysql,oracle sqlserver db2 主要是支持业务,面向业务
Hive -->面向分析(Analytical)分析型处理 就是数据仓库,面对的是历史数据(历史数据中的一部分就来自于数据库)开展分析
Hive数仓开发的基本流程
1)从业务系统获取数据
- Sqoop导入数据库的数据:sqoop可以在Hive与传统的数据库间进行数据传递,可以将一个关系型数据库中的数据导入到Hadoop的HDFS中,也可以将HDFS的数据导入到关系型数据库中。
- Flume采集文本数据:Flume可以将各类型的文件进行采集,存放到HDFS中。
- FTP文件服务器:从文件服务器上下载分析所需要的源数据(增量数据,全量数据)。如下图
2)数据存储
- 数据仓库分层:ods层,dw层,da层
- 源数据层ODS:直接引用外围的数据,没有统一格式化的,不会直接应用使用,不利于分析
- 数据仓库层DW:来自于ODS要经过ETL的过程,格式统一,数据规整,干净清洁
- 数据应用层DA:要去用DW层数据,真正的数据使用者
- 数据集市:数据集市也叫数据市场,数据集市就是满足特定的部门或者用户的需求,按照多维的方式进行存储,包括定义为度。需要计算指标,维度的层次等,生成面向决策分析需求的数据立方体
3)写SQL开发需求
4)配置调度系统
5)导出数据并展示
Hive sql知识点
1)DML & DDL
DML:数据操作语言,负责对数据库对象运行数据访问工作的指令集:delete from table_name
DDL:数据定义语言:用于定义和管理数据库中的对象:truncate table table_name
2)外表和内表
内部表:
create table student(Sno int,Sname string,Sex string,Sage int,Sdept string) row format delimited fields terminated by ','
相关文章