当前位置: 首页 > news >正文

Hive 数据仓库

一、关系型数据库

1.什么是关系型数据库?

就像Excel 表格一样,数据存在行(记录)列(字段)组成的表里,表与表之间还能 “拉关系”(主键、外键)。

  • 常见选手:MySQL、Oracle、SQL Server …
  • 核心元素:数据库 → 表 → 行/列 → 主键(身份证号)

适合小数据、高一致性

2.关系型数据库的 “瓶颈”

  • 读写太猛:网站每秒上万次请求,硬盘 I/O 扛不住
  • 海量数据查询慢:一张表上亿条,查询像大海捞针
  • 扩展困难:加机器很难,升级要停机,像给飞机换引擎
  • 不需要那么严格:发朋友圈晚几秒看到也无所谓,不用实时

大数据时代,传统数据库力不从心

理解:关系型数据库像学校图书馆的卡片柜,找书快,但书太多了就翻不动。而互联网每天产生海量数据(微博、抖音),需要新工具 —— 这就是Hive出场的原因!

二、Hive —— 大象上的数据仓库

1.Hive 是什么?

Hive是搭建在Hadoop(大象)之上的数据仓库工具。它把SQL 语句翻译成MapReduce 任务在集群上跑。

  • 简单易上手:写 SQL 就能分析大数据,不用学 Java
  • 扩展性强:数据可以存在 HDFS 上,不怕大
  • 容错好:某个节点挂了,任务还能继续
  • 支持自定义函数:可以自己造轮子

2.Hive 怎么工作?

用户接口(命令行/Web)→Hive 引擎(解析 SQL)→ 生成MapReduce 作业→ 在Hadoop 集群执行

Hive SQL ➜ 翻译官 ➜ MapReduce ➜ 结果返回

优势: 上百行 MR 代码,一行 HQL 搞定!
缺点: 不适合低延迟(秒级响应),擅长批处理(日志分析、离线报表)

比喻:Hive 就像一个“翻译官”,你说英语(SQL),它翻译成 Hadoop 能懂的 MapReduce 方言去干活。你只管写查询,不用管底层怎么跑。

三、 Hive 的数据模型 · 四兄弟

1.内部表 & 外部表

  • 内部表:数据存在 Hive 仓库目录,删表时数据和元数据一起删
  • 外部表:数据存在自己指定的 HDFS 路径,删表时只删元数据,数据还在。

创建内部表

CREATE TABLE person (...);

创建外部表

CREATE EXTERNAL TABLE person (...) LOCATION '/hivedb';

2.分区表 & 桶表

  • 分区表:按文件夹划分(如按日期 city=‘北京’),查询时只扫描对应文件夹,快!
  • 桶表:按哈希分成多个文件(如按 age 分 5 个桶),适合抽样、连接加速。

分区表示例

PARTITIONED BY (city STRING)

桶表示例

CLUSTERED BY (age) INTO 5 BUCKETS

记住:分区 = 按文件夹整理(像课本按单元分),桶 = 把数据打散到几个文件(像把同学按学号分到5个小组)。

四、Hive 部署 & 常用命令

1.部署要点

  • 环境:CentOS + Hadoop + MySQL(存元数据)
  • 安装:下载 Hive,配置 hive-site.xml(连 MySQL)
  • 初始化schematool -dbType mysql -initSchema
  • 启动:命令行输入hive就进入啦

元数据存在 MySQL,可以多人同时用

2.基本命令

  • show databases;看所有库
  • use mydb;切换库
  • show tables;看所有表
  • desc formatted table_name;看表结构
  • load data local inpath '/path' into table t;加载本地数据
  • select * from t limit 10;查前10条

实际操作:创建一个内部表 person_inside,加载一个逗号分隔的 txt 文件,然后查询 — 像在教室里用 SQL 玩数据!

五、HWI 网页界面 & HiveServer2

1.HWI (Web 界面)

  • 通过浏览器访问 Hive,不用装客户端
  • 查看表结构、执行查询、查看任务状态
  • 适合不想敲命令的同学

配置后访问 http://ip:9999/hwi

2.HiveServer2

  • 提供JDBC/ODBC接口,让程序(如 Java、Python)连接 Hive
  • 支持多用户并发,比 HiveServer1 强大
  • 自带Web UI(端口 10002),能看到会话、查询日志

Beeline 连接:!connect jdbc:hive2://...

总结: HWI 是 “浏览器版 Hive”,HiveServer2 是 “服务版 Hive”,让其他程序也能调用它。

六、常用查询 & 多表连接

1.连接(JOIN)

  • 内连接:只返回两边都匹配的数据
  • 左外连接:左边全保留,右边没匹配就 NULL
  • 全外连接:左右全部保留
  • 左半连接:相当于 IN 子查询
SELECT * FROM employee JOIN job ON employee.id = job.emp_id;

2.导出 & 排序

  • 导出到本地INSERT OVERWRITE LOCAL DIRECTORY '/tmp' SELECT ...
  • 导出到HDFSINSERT OVERWRITE DIRECTORY '/hivedb' SELECT ...
  • 排序SELECT * FROM t SORT BY age DESC LIMIT 5;取年龄最大的5个
  • 模糊查询SELECT * FROM t WHERE name LIKE '张%';

注意:Hive 的 SQL 和 MySQL 很像,但 Hive 更偏向分析,不支持行级更新、事务,它主打 “一次写入,多次分析”。

http://www.jsqmd.com/news/1079752/

相关文章:

  • 小程序计算机毕设之基于 SpringBoot 的社团成员管理与活动统计系统设计与实现 校园文化建设下高校社团服务管理系统设计与实现(完整前后端代码+说明文档+LW,调试定制等)
  • 小程序毕业设计-基于 SpringBoot 与微信小程序的美妆线上商城设计与实现 前后端分离架构下美妆店铺销售服务小程序设计与实现(源码+LW+部署文档+全bao+远程调试+代码讲解等)
  • 330kV线路距离保护设计:从原理到整定与调试的工程实践
  • DiffusionGemma与自回归模型的对决:26B MoE文本扩散模型的推理效率实测
  • 掌握Stardew Valley自动化:Pathoschild模组集合完全指南
  • 小程序制作平台哪家好该怎么挑选?
  • 从文档到问答助手:Claude API 在知识库检索中的应用
  • 《Windows 10深度攻略》第2版 - 第1章
  • FK-Percolation相变解析性证明:从簇展开到对偶性的数学物理桥梁
  • 拓扑数据分析核心算法:FB持久性算法原理与应用详解
  • 小程序毕业设计-基于 SpringBoot 与微信小程序的儿童疫苗管理系统设计与实现 前后端分离架构下儿童疫苗接种服务小程序设计与实现(源码+LW+部署文档+全bao+远程调试+代码讲解等)
  • Java SE 部分总结2
  • Backup Exec 停服背景下的替代方案评估:Veeam 的核心优势
  • 芋道 yudao-cloud 微服务架构深度解析:基于 Spring Cloud Alibaba 的企业级开发平台实战指南
  • HTML+CSS 前端基础(下篇)超详细整理,从入门到精通
  • RAG上下文压缩实战:降低70%成本的四层优化方法
  • 什么养生茶能祛湿又补气血?5款药食同源配方,一壶喝出好气色
  • Anosov子群极限集Hausdorff维数与自仿射复杂性关联探究
  • 持续集成部署最佳实践
  • Deepseek 代码解释
  • 图书管理系统-ssm vue mysql
  • AI工程师的职业规划:如何在这个风口上找到好工作?
  • CVIntegratedPlatform 开源项目深度解析:一站式计算机视觉与深度学习开发平台实战指南
  • PCF80空间单细胞蛋白组:兼容FFPE样本,充分释放临床样本研究价值
  • 国内咨询公司盘点:服务体系升级为何成为市场竞争保障
  • 泛程序的优缺点分析
  • 2026年企业数字化管理的核心引擎——HR人事薪酬系统全解析
  • Hive数据库理解
  • 收藏!小白程序员必看:大模型能力边界全解析,从底层原理到2026年实际应用
  • 计算机毕业设计之jsp基于SSM的校园社团管理系统的设计与实现