数据仓库Hive

发布于:2024-06-29 ⋅ 阅读:(14) ⋅ 点赞:(0)

目录

9.1 概述

 9.1.1 数据仓库概念

9.1.2 传统数据仓库面临的挑战

 9.1.3 Hive简介

 9.1.4 Hive与Hadoop生态系统中其他组件的关系

 9.1.5 Hive与传统数据库的对比分析

 Hive与传统数据库的区别主要体现在以下几个方面

9.1.6 Hive在企业中的部署和应用


数据仓库Hive

种基于 Hadoop 的数据仓库工具,可以对存储在 Hadoop 数据进行数据整理、特殊查询和分析处理。学习门槛低,提供了 HiveSQL 查询语言。
MapReduce 作为执行引擎时, Hive 可以通过 HiveSQL 快速实现 MapReduce 作业, Hive 自身可以将 HiveSQL 语句快速 MapReduce 作业进行运行。

9.1 概述

 9.1.1 数据仓库概念

数据仓库(Data Warehouse)是一个面向主题的(Subject Oriented)、集成的(Integrated)、相对稳定的(Non-Volatile)、反映历史变化(Time Variant)的数据集合,用于支持管理决策。

数据仓库体系结构:

1)数据源

2)数据存储和管理

3)数据服务

4)数据应用

 

9.1.2 传统数据仓库面临的挑战

  1 )无法满足快速增长的海量数据存储 需求 (关系数据库扩展性差)
  2 )无法有效处理不同类型的 数据 (传统数据仓库面向结构化数据)
  3 计算和处理能力 不足 (关系数据库计算和处理能力有限)

 9.1.3 Hive简介

p Hive 是一个构建于 Hadoop 顶层的数据仓库工具
p 支持大规模数据存储、分析,具有良好的可扩展性
p 某种程度上可以看作是用户编程接口,本身不存储和处理数据
p 依赖分布式文件系统 HDFS 存储数据
p 依赖 分布式并行计算模型 MapReduce 处理数据
p 定义了简单的类似 SQL 的查询语言 —— HiveQL
p 用户可以通过编写的 HiveQL 语句运行 MapReduce 任务
p 可以很容易把原来构建在关系数据库上的数据仓库应用程序移植到 Hadoop 平台上
p 是一个可以提供有效、合理、直观组织和使用数据的分析 工具
Hive 具有的特点非常适用于数据仓库
p 采用 批处理方式处理海量数据
Ø Hive 需要把 HiveQL 语句转换成 MapReduce 任务进行运行
Ø 数据仓库存储的是静态数据,对静态数据的分析适合采用批处理方式,不需要快速响应给出结果,而且数据本身也不会频繁变化
p 提供 适合数据仓库操作的工具
Ø Hive 本身提供了一系列对数据进行提取、转换、加载( ETL )的工具,可以存储、查询和分析存储在 Hadoop 中的大规模数据
Ø 这些工具能够很好地满足数据仓库各种应用 场景

 9.1.4 HiveHadoop生态系统中其他组件的关系

p Hive 依赖于 HDFS 存储数据

HDFS作为高可靠性的底层存储,用来存储海量数据

p Hive 依赖于 MapReduce 处理数据

MapReduce对这些海量数据进行处理,实现高性能计算,用HiveQL语句编写的处理逻辑最终均要转化为MapReduce任务来运行

p Pig 可以作为 Hive 的替代工具

pig是一种数据流语言和运行环境,适合用于HadoopMapReduce平台上查询半结构化数据集。常用于ETL过程的一部分,即将外部数据装载到Hadoop集群中,然后转换为用户期待的数据格式

p HBase 提供数据的实时访问

HBase一个面向列的、分布式的、可伸缩的数据库,它可以提供数据的实时访问功能,而Hive只能处理静态数据,主要是BI报表数据,所以HBaseHive的功能是互补的,它实现了Hive不能提供功能。

 9.1.5 Hive与传统数据库的对比分析

Hive在很多方面和传统的关系数据库类似,但是它的底层依赖的是HDFSMapReduce,所以在很多方面又有别于传统数据库

对比项目

Hive

传统数据库

数据存储

HDFS

本地文件系统

索引

支持有限索引

支持复杂索引

分区

支持

支持

执行引擎

MapReduce\Tez\Spark

自身的执行引擎

执行延迟

扩展性

有限

数据规模

 Hive与传统数据库的区别主要体现在以下几个方面

1)数据存储:传统数据库一般依赖于本地文件系统,Hive则依赖于分布式文件系统HDFS。查询语言传统数据库使用sql语句,hive使用的是类sql查询语言

2索引:索引也是传统数据库中很重要的特性,传统数据库可以针对多个列构建复杂的索引,大幅提升数据查询性能。Hive不像传统的关系型数据库那样有键的概念, Hive没有键的概念,它只提供有限的索引功能,使用户可以在某些列上创建索引来加速一些查询操作,Hive中给一个表创建的索引数据被保存在另外的表中。

3分区:传统的数据库提供分区功能来改善大型表以及具有各种访问模式的表的可伸缩性,可管理性和提高数据库效率。Hive也支持分区功能,Hive表组织成分区的形式,根据分区列的值对表进行粗略的划分,使用分区可以加快数据的查询速度

4)执行引擎:传统数据库依赖自身引擎,Hive则依赖MapReduce\Tez\Spark

5)执行延迟:因为Hive构建于HDFSMapReduce上,所以对比传统数据库来说Hive的延迟比较高,传统的SQL语句的延迟少于一秒,而HiveQL语句的延迟会达到分钟级。

6)扩展性:传统关系数据库很难横向扩展,纵向扩展的空间也很有限。相反Hive的开发环境是基于集群的,所以具有较好的可扩展性

7)数据规模:传统关系数据库存储有限规模的数据。Hive支持大规模数据存储。

9.1.6 Hive在企业中的部署和应用

HivePig主要用于报表中心,Hive用于报表分析,Pig用于报表中数据的转换工作。Hbase主要用于实时访问数据,因此用于在线业务,Mahout提供可扩展的机器学习领域经典算法实现,便于开发商务智能应用程序(BI


网站公告

今日签到

点亮在社区的每一天
去签到