文章目录
1 数据仓库概念
数据仓库是一个面向主题的、集成的、相对稳定的、反映历史变化的数据集合,用于支持管理决策。
根本目的:基于数据仓库的分析结果,支持企业内部的商业分析和决策。
传统数据仓库在大数据时代面临的挑战:
- 无法满足快速增长的海量数据存储需求
- 无法有效处理不同类型的数据
- 计算和处理能力不足
2 Hive简介
真是因为传统数据仓库无法更好满足企业应用需求,基于Hadoop平台的数据仓库产品Hive很自然的就填补空白。
- 依赖分布式文件系统HDFS存储数据
- 依赖分布式并行计算模型MapReduce处理数据
- 借鉴SQL语言设计了新的查询语言HiveQL
(1)Hive两个方面特性:
① 采用批处理方式处理海量数据
- Hive会把HiveQL语句转换成MapReduce任务进行运行
- 数据仓库存储的是静态数据,对静态数据的分析适合采用批处理方式,不需要快速响应给出结果,而且数据本身也不会频繁变化。
② Hive提供了一系列对数据进行提取、转换、加载(ETL)的工具
- 可以存储、查询和分析存储在Hadoop中的大规模数据
- 这些工具能够很好地满足数据仓库各种应用场景。
(2)Hive与传统数据库对比分析:
(3)Hive在企业大数据分析平台中的应用:
(4)Hive在Facebook公司的应用:
(5)Hive对外访问的接口:
3 SQL转换成MapReduce作业的原理
Hive本身不做具体的数据处理和存储,而是把SQL语句转换成相关的MapReduce作业。
(1)SQL语句转换成MapReduce作业的基本原理
① join
② group by
(2)Hive中SQL查询转换成MapReduce作业的过程
- 当启动MapReduce程序时,Hive本身是不会生成MapReduce程序的。
- 需要通过一个表示“Job执行计划”的XML文件启动你那个执行内置的、原生的Mapper和Reducer模块。
- Hive通过和JobTracker通信来初始化MapReduce任务,不必直接部署在JobTracker所在的管理节点上执行
- 通常在大型集群上,会有专门的网关机来部署Hive工具。
- 数据文件通常存储在HDFS上,HDFS由名称节点管理。
4 Impala
5 Hive编程实践
5.1 Hive的安装与配置
5.2 Hive的数据类型
5.3 Hive基本操作
(1)create
(2)show
(3)load
(4)insert
5.4 Hive应用实例
进入Hive命令行界面,编写HiveQL语句实现WordCount算法:
5.5 Hive编程的优势
其他相关笔记:
数据研发学习笔记4.1:大数据之概述与处理架构Hadoop
数据研发学习笔记4.2:大数据之分布式文件系统HDFS
数据研发学习笔记4.3:大数据之分布式数据库HBase
数据研发学习笔记4.4:大数据之NoSQL数据库
数据研发学习笔记4.5:大数据之云数据库
数据研发学习笔记4.6:大数据之MapReduce
数据研发学习笔记4.7:大数据之数据仓库Hive
数据研发学习笔记4.8:大数据之Spark
数据研发学习笔记4.9:流计算
数据研发学习笔记4.10:图计算
数据研发学习笔记4.11:大数据之数据可视化