Hive理论讲解

Hive介绍

1、Hive本质

Hive本质是【数仓设计方案】,hive本身并不存储数据【数据包含:元数据 + (表)数据】。

2、hql和sql对比

  1. sql = 结构化查询语言【structured query language】
  2. hql = hive/hadoop类sql查询语言 【hive/hadoop query language like sql】
    说明 :对于hql而言,表面是sql。实际上,数据存储HDFS执行引擎Spark,MapReduce,Pig,Tez等

3、数据存储

  • 元数据 存储于RDB[关系型数据库]中。其默认存储于DERBY中,但一般在生产环境 下存储于mysql中。
  • (表)数据 存储于HDFS中。

补充:元数据的讲解

元数据(Metadata)是指描述数据的数据,它提供关于数据集、资源、文件、系统或者业务流程的额外信息,其中就包含库名,表名,字段,数据类型等。

在Hive中,元数据 则是由HiveMetaStore统一管理,进行存储、管理、保护和查询等操作。

4、计算引擎

MapReduce

  • Map:清洗,列变形,列裁剪
  • Map+Reduce:聚合

Spark

  • 1、Job中间输出结果可以保存在内存,不再需要读写HDFS
  • 2、速度快,比MapReduce平均快10倍以上

5、Hive层次结构【元数据映射】

逻辑结构 物理结构
文件夹(与库同名.db)
文件夹(与表同名)
分区 文件夹 (格式:分区字段名=分区字段值)
数据 文件
分桶 小文件(目的:抽样和数据修改)

6、Hive执行过程

复制代码
1.UI客户端发出请求 executeQuery[执行查询语句]
2.Driver[驱动] 通过 Compiler 进行编译
3.Compiler 需要向 MetaStore 请求元数据。
编译过程:
	Compiler[驱动] 得到 元数据 后
	先 生成 逻辑执行计划 
	再 通过优化形成 物理执行计划
4.将 物理执行计划 通过 Driver[驱动] 交给 ExecutionEngine[执行引擎]
5.ExecutionEngine[执行引擎] 将 物理执行计划 交给 hadoop的MapReduce进行job任务。
6.最终结果落盘到datanode上。
7.UI客户端 向 Driver[驱动] 发起请求 fetchResults
8.Driver 通过 ExecutionEngine[执行引擎] 从 datanode 上将数据拉过来,交给 UI客户端。
相关推荐
Gain_chance11 小时前
34-学习笔记尚硅谷数仓搭建-DWS层最近一日汇总表建表语句汇总
数据仓库·hive·笔记·学习·datagrip
Gain_chance12 小时前
36-学习笔记尚硅谷数仓搭建-DWS层数据装载脚本
大数据·数据仓库·笔记·学习
Gain_chance13 小时前
35-学习笔记尚硅谷数仓搭建-DWS层最近n日汇总表及历史至今汇总表建表语句
数据库·数据仓库·hive·笔记·学习
无级程序员21 小时前
大数据Hive之拉链表增量取数合并设计(主表加历史表合并成拉链表)
大数据·hive·hadoop
华农DrLai1 天前
Spark SQL Catalyst 优化器详解
大数据·hive·sql·flink·spark
心疼你的一切1 天前
解密CANN仓库:AIGC的算力底座、关键应用与API实战解析
数据仓库·深度学习·aigc·cann
qq_12498707532 天前
基于Hadoop的信贷风险评估的数据可视化分析与预测系统的设计与实现(源码+论文+部署+安装)
大数据·人工智能·hadoop·分布式·信息可视化·毕业设计·计算机毕业设计
十月南城2 天前
Hive与离线数仓方法论——分层建模、分区与桶的取舍与查询代价
数据仓库·hive·hadoop
鹏说大数据2 天前
Spark 和 Hive 的关系与区别
大数据·hive·spark
B站计算机毕业设计超人2 天前
计算机毕业设计Hadoop+Spark+Hive招聘推荐系统 招聘大数据分析 大数据毕业设计(源码+文档+PPT+ 讲解)
大数据·hive·hadoop·python·spark·毕业设计·课程设计