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

【赵渝强老师】Hive的内部表与外部表

1

​Hive是基于HDFS之上的数据仓库,它把所有的数据存储在HDFS中,Hive并没有专门的数据存储格式。当在Hive中创建了表,可以使用load语句将本地或者HDFS上的数据加载到表中,从而使用SQL语句进行分析和处理。

Hive的数据模型主要是指Hive的表结构,可以分为:内部表、外部表、分区表、临时表和桶表,同时Hive也支持视图。

image.png
点击这里查看视频讲解:【赵渝强老师】Hive的数据模型

一、使用Hive的内部表

内部表与关系型数据库中的表是一样的。使用create table语句可以创建内部表,并且每张表在HDFS上都会对应一个目录。这个目录将默认创建在HDFS的/user/hive/warehouse下。除外部表外,表中如果存在数据,数据所对应的数据文件也将存储在这个目录下。删除内部表的时候,表的元信息和数据都将被删除。

image.png
点击这里查看视频讲解:【赵渝强老师】Hive的内部表

下面使用之前的员工数据(emp.csv)来创建内部表。

(1)执行create table语句创建表结构。

hive> create table emp
(empno int,
ename string,
job string,
mgr int,
hiredate string,
sal int,
comm int,
deptno int)
row format delimited fields terminated by ',';

由于csv文件是采样逗号进行分隔的,因此在创建表的时候需要指定分隔符是逗号。Hive表的默认分隔符是一个不可见字符。

(2)使用load语句加载本地的数据文件。

hive> load data local inpath '/root/temp/emp.csv' into table emp;

(3)使用下面的语句加载HDFS的数据文件。

hive> load data inpath '/scott/emp.csv' into table emp;

(4)执行SQL的查询。

hive> select * from emp order by sal;

(5)整个执行的过程如下图所示。

2

(6)查看HDFS的/user/hive/warehouse/目录可以看到创建的emp表和加载的emp.csv文件,如下图所示。

3

二、使用外部表

与内部表不同的是,外部表可以将数据存在HDFS的任意目录下。可以把外部表理解成是一个快捷方式,它的本质是建立一个指向HDFS上已有数据的链接,在创建表的同时会加重数据。而当删除外部表的时候,只会删除这个链接和对应的元信息,实际的数据不会从HDFS上删除。

image.png
点击这里查看视频讲解:【赵渝强老师】Hive的外部表

下面通过具体的步骤演示如何创建Hive的外部表。

[root@bigdata111 ~]# more students01.txt 
1,Tom,23
2,Mary,22
[root@bigdata111 ~]# more students02.txt 
3,Mike,24

(2)将数据文件上传到HDFS的任意目录。

hdfs dfs -mkdir /students
hdfs dfs -put students0*.txt /students

(3)在Hive中创建外部表。

hive> create external table ext_students
(sid int,sname string,age int)
row format delimited fields terminated by ','
location '/students';

(4)执行SQL的查询。

hive> select * from ext_students;

(5)执行的结果如下图所示。

4

http://www.gsyq.cn/news/108665.html

相关文章:

  • 模块热替换 (HMR):前端开发的“魔法”与提速秘籍
  • 拥抱未来:ECMAScript Modules (ESM) 深度解析
  • 告别论文AIGC焦虑:主流降AI工具深度实测与选择指南
  • 一台服务器能做什么
  • ATTO 655 TCO反式环辛烯是一款高性能远红荧光生物正交标记探针
  • 2025年质量好的杀菌消毒等离子发生器/空气净化等离子发生器厂家口碑热榜(用户推荐) - 行业平台推荐
  • LobeChat在电商客服机器人中的实际应用效果
  • 【机器学习】VC维从入门到实战
  • 保姆级教程!Agentic AI框架全景图:2026年必备的20个神器,其特征、场景、优劣,收藏这一篇,彻底搞明白!
  • 【数据科学家必看】如何用Conda统一管理R与Python库版本?
  • 农业产量的R语言模型评估:3步快速诊断模型优劣并优化预测精度
  • 【高频交易背后的秘密武器】:R语言蒙特卡洛模拟在金融风险中的十大应用场景
  • Kali Linux
  • 互联网大厂Java面试实战:从核心语言到微服务与AI技术全覆盖解析
  • 揭秘空间转录组数据差异表达:如何用R语言精准挖掘关键基因
  • 南大一篇84页的统一多模态理解和生成综述......
  • 世岩清上:作为普通人,我们如何搭乘“人工智能+”快车?
  • 25、Linux使用指南:资源、优势与许可详解
  • 大同市软件公司哪家专业
  • 【临床数据ROC曲线优化全攻略】:掌握R语言高效建模的7大核心技巧
  • 【农业产量预测R模型评估】:20年专家揭秘精准建模5大核心指标
  • R量子计算电路优化完全指南(从入门到高阶的7个关键步骤)
  • 第139篇:美国苹果手机“三角测量“验证器后门样本及0day漏洞是如何被捕捉到的 | “三角测量“系列第5篇
  • 帮我推荐短视频seo电话
  • 5个Apache Weex渲染性能提升技巧:终极优化指南
  • 【操作实践】Linux find 高级用法与多级目录查找实战
  • 语音识别效率革命:whisper-large-v3-turbo一键部署指南
  • Whistle客户端:网络抓包与请求调试的终极利器
  • 基于Java的压力容器智慧管理系统的设计与实现全方位解析:附毕设论文+源代码
  • 基于Java的原材料管理智慧管理系统的设计与实现全方位解析:附毕设论文+源代码