数据研发学习笔记4.7:大数据之数据仓库Hive

1 数据仓库概念

数据仓库是一个面向主题的、集成的、相对稳定的、反映历史变化的数据集合,用于支持管理决策。

根本目的:基于数据仓库的分析结果,支持企业内部的商业分析和决策。

数据研发学习笔记4.7:大数据之数据仓库Hive
传统数据仓库在大数据时代面临的挑战:

  • 无法满足快速增长的海量数据存储需求
  • 无法有效处理不同类型的数据
  • 计算和处理能力不足

2 Hive简介

真是因为传统数据仓库无法更好满足企业应用需求,基于Hadoop平台的数据仓库产品Hive很自然的就填补空白。
数据研发学习笔记4.7:大数据之数据仓库Hive

  • 依赖分布式文件系统HDFS存储数据
  • 依赖分布式并行计算模型MapReduce处理数据
  • 借鉴SQL语言设计了新的查询语言HiveQL
    数据研发学习笔记4.7:大数据之数据仓库Hive

(1)Hive两个方面特性

① 采用批处理方式处理海量数据

  • Hive会把HiveQL语句转换成MapReduce任务进行运行
  • 数据仓库存储的是静态数据,对静态数据的分析适合采用批处理方式,不需要快速响应给出结果,而且数据本身也不会频繁变化。

② Hive提供了一系列对数据进行提取、转换、加载(ETL)的工具

  • 可以存储、查询和分析存储在Hadoop中的大规模数据
  • 这些工具能够很好地满足数据仓库各种应用场景。

数据研发学习笔记4.7:大数据之数据仓库Hive
(2)Hive与传统数据库对比分析
数据研发学习笔记4.7:大数据之数据仓库Hive
(3)Hive在企业大数据分析平台中的应用:
数据研发学习笔记4.7:大数据之数据仓库Hive
(4)Hive在Facebook公司的应用
数据研发学习笔记4.7:大数据之数据仓库Hive
(5)Hive对外访问的接口
数据研发学习笔记4.7:大数据之数据仓库Hive

3 SQL转换成MapReduce作业的原理

Hive本身不做具体的数据处理和存储,而是把SQL语句转换成相关的MapReduce作业。

(1)SQL语句转换成MapReduce作业的基本原理

数据研发学习笔记4.7:大数据之数据仓库Hive
① join
数据研发学习笔记4.7:大数据之数据仓库Hive
② group by
数据研发学习笔记4.7:大数据之数据仓库Hive
(2)Hive中SQL查询转换成MapReduce作业的过程
数据研发学习笔记4.7:大数据之数据仓库Hive

  • 当启动MapReduce程序时,Hive本身是不会生成MapReduce程序的。
  • 需要通过一个表示“Job执行计划”的XML文件启动你那个执行内置的、原生的Mapper和Reducer模块。
  • Hive通过和JobTracker通信来初始化MapReduce任务,不必直接部署在JobTracker所在的管理节点上执行
  • 通常在大型集群上,会有专门的网关机来部署Hive工具。
  • 数据文件通常存储在HDFS上,HDFS由名称节点管理。

4 Impala

数据研发学习笔记4.7:大数据之数据仓库Hive

5 Hive编程实践

5.1 Hive的安装与配置

数据研发学习笔记4.7:大数据之数据仓库Hive

5.2 Hive的数据类型

数据研发学习笔记4.7:大数据之数据仓库Hive

5.3 Hive基本操作

(1)create
数据研发学习笔记4.7:大数据之数据仓库Hive
数据研发学习笔记4.7:大数据之数据仓库Hive
数据研发学习笔记4.7:大数据之数据仓库Hive
(2)show
数据研发学习笔记4.7:大数据之数据仓库Hive
数据研发学习笔记4.7:大数据之数据仓库Hive
(3)load
数据研发学习笔记4.7:大数据之数据仓库Hive
数据研发学习笔记4.7:大数据之数据仓库Hive
(4)insert
数据研发学习笔记4.7:大数据之数据仓库Hive

5.4 Hive应用实例

数据研发学习笔记4.7:大数据之数据仓库Hive
数据研发学习笔记4.7:大数据之数据仓库Hive
进入Hive命令行界面,编写HiveQL语句实现WordCount算法:
数据研发学习笔记4.7:大数据之数据仓库Hive

5.5 Hive编程的优势

数据研发学习笔记4.7:大数据之数据仓库Hive
数据研发学习笔记4.7:大数据之数据仓库Hive