Hive系列之-1、Hive基础

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

大数据系列文章目录

数据仓库的介绍

数据仓库的基本概念

数据仓库,英文名称为Data Warehouse,可简写为DW或DWH。数据仓库顾名思义,是一个很大的数据存储集合,出于企业的分析性报告和决策支持目的而创建,对多样的业务数据进行筛选与整合。 它为企业提供一定的BI(商业智能)能力,指导业务流程改进、监视时间、成本、质量以及控制。
数据仓库的输入方是各种各样的数据源,最终的输出用于企业的数据分析、数据挖掘、数据报表等方向。
在这里插入图片描述

数据仓库的主要特征

数据仓库是面向主题 的(Subject-Oriented )、集成 的(Integrated)、稳定 的(Non-Volatile)和时变 的(Time-Variant )数据集合,用以支持管理决策。

1.主题性

不同于传统数据库对应于某一个或多个项目,数据仓库根据使用者实际需求,将不同数据源的数据在一个较高的抽象层次上做整合,所有数据都围绕某一主题来组织。
这里的主题怎么来理解呢?比如对于城市,“天气湿度分析”就是一个主题,对于淘宝,“用户点击行为分析”就是一个主题。

2.集成性

数据仓库中存储的数据是来源于多个数据源的集成,原始数据来自不同的数据源,存储方式各不相同。要整合成为最终的数据集合,需要从数据源经过一系列抽取、清洗、转换的过程。

3.稳定性

数据仓库中保存的数据是一系列历史快照,不允许被修改。用户只能通过分析工具进行查询和分析。这里说明一点,数据仓库基本上是不许允许用户进行修改,删除操作的。大多数的场景是用来查询分析数据。

4.时变性

数据仓库会定期接收新的集成数据,反应出最新的数据变化。这和稳定特点并不矛盾。

数据仓库与数据库区别

数据库

数据库是面向交易的处理系统,它是针对具体业务在数据库联机的日常操作,通常对记录进行查询、修改。用户较为关心操作的响应时间、数据的安全性、完整性和并发支持的用户数等问题。传统的数据库系统作为数据管理的主要手段,主要用于操作型处理,也被称为联机事务处理 OLTP(On-Line Transaction Processing)。

数据仓库

数据仓库一般针对某些主题的历史数据进行分析,支持管理决策,又被称为联机分析处理 OLAP(On-Line Analytical Processing)。
首先要明白,数据仓库的出现,并不是要取代数据库。

两者区别

1、数据库是面向事务的设计,数据仓库是面向主题设计的。

2、数据库一般存储业务数据,数据仓库存储的一般是历史数据。

3、数据库设计是尽量避免冗余,一般针对某一业务应用进行设计,比如一张简单的User表,记录用户名、密码等简单数据即可,符合业务应用,但是不符合分析。数据仓库在设计是有意引入冗余,依照分析需求,分析维度、分析指标进行设计。

4、数据库是为捕获数据而设计,数据仓库是为分析数据而设计。

5、以银行业务为例。数据库是事务系统的数据平台,客户在银行做的每笔交易都会写入数据库,被记录下来,这里,可以简单地理解为用数据库记账。

数据仓库是分析系统的数据平台,它从事务系统获取数据,并做汇总、加工,为决策者提供决策的依据。比如,某银行某分行一个月发生多少交易,该分行当前存款余额是多少。如果存款又多,消费交易又多,那么该地区就有必要设立ATM了。
显然,银行的交易量是巨大的,通常以百万甚至千万次来计算。事务系统是实时的,这就要求时效性,客户存一笔钱需要几十秒是无法忍受的,这就要求数据库只能存储很短一段时间的数据。而分析系统是事后的,它要提供关注时间段内所有的有效数据。这些数据是海量的,汇总计算起来也要慢一些,但是,只要能够提供有效的分析数据就达到目的了。

数据仓库,是在数据库已经大量存在的情况下,为了进一步挖掘数据资源、为了决策需要而产生的,它决不是所谓的“大型数据库”。

数据仓库分层架构

按照数据流入流出的过程,数据仓库架构可分为三层—— 源数据、数据仓库、数据应用
在这里插入图片描述
数据仓库的数据来源于不同的源数据,并提供多样的数据应用,数据自下而上流入数据仓库后向上层开放应用,而数据仓库只是中间集成化数据管理的一个平台。

源数据层(ODS): 操作性数据(Operational Data Store) ,是作为数据库到数据仓库的一种过渡,ODS的数据结构一般与数据来源保持一致,而且ODS的数据周期一般比较短。ODS的数据为后一步的数据处理做准备。

数据仓库层(DW):数据仓库(Data Warehouse),是数据的归宿,这里保持这所有的从ODS到来的数据,并长期报错,而且这些数据不会被修改,DW层的数据应该是一致的、准确的、干净的数据,即对源系统数据进行了清洗(去除了杂质)后的数据。

数据应用层(DA):数据应用(Dataapplication),为了特定的应用目的或应用范围,而从数据仓库中独立出来的一部分数据,也可称为部门数据或主题数据,该数据面向应用。如根据报表、专题分析需求而计算生成的数据。

数据仓库之ETL

ETL,是英文Extract-Transform-Load的缩写,用来描述将数据从来源端经过抽取(extract)、转换(transform)、加载(load) 至目的端的过程。ETL是将业务系统的数据经过抽取、清洗、转换之后加载到数据仓库的过程,目的是将企业中分散、零乱、标准不统一的数据整合到一起。

ETL是数据仓库的流水线,也可以认为是数据仓库的血液,它维系着数据仓库中数据的新陈代谢,而数据仓库日常的管理和维护工作的大部分精力就是保持ETL的正常和稳定。

在这里插入图片描述

Hive基本概念

Hive介绍

什么是Hive

Hive是一个构建在Hadoop上的数据仓库框架。最初,Hive是由Facebook开发,后来移交由Apache软件基金会开发,并作为一个Apache开源项目。

Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供类SQL查询功能。

其本质是将SQL转换为MapReduce的任务进行运算,底层由HDFS来提供数据的存储,说白了hive可以理解为一个将SQL转换为MapReduce的任务的工具,甚至更进一步可以说hive就是一个MapReduce的客户端。

在这里插入图片描述

为什么使用Hive

  • 直接使用hadoop所面临的问题
    1、人员学习成本太高
    2、项目周期要求太短
    3、MapReduce实现复杂查询逻辑开发难度太大
  • 为什么要使用Hive
    1、操作接口采用类SQL语法,提供快速开发的能力
    2、避免了去写MapReduce,减少开发人员的学习成本
    3、功能扩展很方便

Hive的特点

1、Hive最大的特点是通过类SQL来分析大数据,而避免了写MapReduce程序来分析数据,这样使得分析数据更容易。

2、数据是存储在HDFS上的,Hive本身并不提供数据的存储功能,它可以使已经存储的数据结构化。

3、Hive是将数据映射成数据库和一张张的表,库和表的元数据信息一般存在关系型数据库上(比如MySQL)。

4、数据存储方面:它能够存储很大的数据集,可以直接访问存储在Apache HDFS或其他数据存储系统(如Apache HBase)中的文件。

5、数据处理方面:因为Hive语句最终会生成MapReduce任务去计算,所以不适用于实时计算的场景,它适用于离线分析。

6、Hive除了支持MapReduce计算引擎,还支持Spark和Tez这两种分布式计算引擎。

7、数据的存储格式有多种,比如数据源是二进制格式,普通文本格式等等。

Hive架构

架构图

在这里插入图片描述

基本组成

客户端:Client CLI(hive shell 命令行) ,JDBC/ODBC(java访问hive),WEBUI(浏览器访问hive)

元数据:Metastore :本质上只是用来存储hive中有哪些数据库,哪些表,表的字段,,表所属数据库(默认是default) ,分区,表的数据所在目录等,元数据默认存储在自带的derby数据库中,推荐使用MySQL存储Metastore。

驱动器:Driver
(1)解析器(SQL Parser):将SQL字符转换成抽象语法树AST,这一步一般使用都是第三方工具库完成,比如antlr,对AST进行语法分析,比如表是否存在,字段是否存在,SQL语句是否有误
(2)编译器(Physical Plan):将AST编译生成逻辑执行计划
(3)优化器(Query Optimizer):对逻辑执行计划进行优化
(4)执行器(Execution):把逻辑执行计划转换成可以运行的物理计划,对于Hive来说,就是MR/Spark

存储和执行: Hive使用HDFS进行存储,使用MapReduce进行计算

Hive与传统数据库对比

在这里插入图片描述
总结:hive具有sql数据库的外表,但应用场景完全不同,hive只适合用来做批量数据统计分析

结束

本篇介绍了Hive的原理,架构相关。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

技术武器库

一句真诚的谢谢,胜过千言万语

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值