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

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

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

Hive的数据模型
【赵渝强老师】Hive的数据模型

一、使用Hive的内部表

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

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

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

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

sql 复制代码
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语句加载本地的数据文件。

sql 复制代码
hive> load data local inpath '/root/temp/emp.csv' into table emp;

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

sql 复制代码
hive> load data inpath '/scott/emp.csv' into table emp;

(4)执行SQL的查询。

sql 复制代码
hive> select * from emp order by sal;

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

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

二、使用外部表

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

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

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

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

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

shell 复制代码
hdfs dfs -mkdir /students
hdfs dfs -put students0*.txt /students

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

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

(4)执行SQL的查询。

sql 复制代码
hive> select * from ext_students;

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

相关推荐
Nefu_lyh14 小时前
【Hive】七、Hive 函数:聚合 / 统计 / 分位数 / 集合 / 高级分组
数据仓库·hive·hadoop
阿 才14 小时前
跟文件系统(busybox)的构建
大数据·hadoop·分布式
KANGBboy17 小时前
hive UDF函数
数据仓库·hive·hadoop
暴躁小师兄数据学院2 天前
【AI大数据工程师特训笔记】第15讲:大数据环境安装
大数据·hadoop·flink·spark
王小王-1232 天前
基于 Hadoop + Flask 的电动汽车数据分析与可视化系统设计与实现
hadoop·数据分析·flask·电动汽车·新能源汽车数据分析·新能源汽车销量分析·新能源汽车销售分析
云器科技2 天前
螳螂科技:从组装到统一,如何用云器 Lakehouse 完美替代“MC+DW+ADB”三件套?
数据库·数据仓库·人工智能
王小王-1232 天前
基于机器学习与Hadoop的心脏病数据分析与可视化设计与实现
hadoop·机器学习·数据分析·心脏病预测
知识分享小能手2 天前
Hadoop学习教程,从入门到精通, Hadoop 3.x 高可用集群 — 知识点详解(6)
大数据·hadoop·学习
王小王-1233 天前
基于商品评价的评论情感分析与可视化系统
hive·情感分析·商品评价分析·主题分析·商品评论分析
知识分享小能手3 天前
Hadoop学习教程,从入门到精通, ZooKeeper 分布式协调服务 — 全面知识点与案例代码(5)
hadoop·分布式·zookeeper