Hive(一)

2020-07-01 00:00:00 查询 数据 字段 分区 分区表

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 ','

相关文章