欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 房产 > 家装 > Hive的数据模型

Hive的数据模型

2025/2/24 0:50:51 来源:https://blog.csdn.net/wusuoweiieq/article/details/141623179  浏览:    关键词:Hive的数据模型

目录

  • 一、内部表
    • 1.创建
    • 2.插入
    • 3.载入
  • 二、分区表
  • 三、外部表
  • 四、桶表

HiveHDFS
目录
分区目录
数据文件
文件

一、内部表

介绍

最简单的一种表,相当于Mysql、Oracle中的表
只是将数据保存到Hive自己的数据仓库中hive/warehouse/
每个表在hive中都有一个对应的目录存储数据,当删除此表时,元数据和数据都将会被删除

1.创建

和Mysql等数据库一样的创建流程,最后一行表示设置分割符为,以便于载入csv文件

create table emp(
id int,
name string,
job string,
department int
)
row format delimited fields terminated by ',';

2.插入

insert语句

INSERT INTO emp (id, name, job, department) 
VALUES (1, 'John Doe', 'Engineer', 101);

3.载入

load语句,可以导入csv文件
文件处于本地磁盘中(不在hdfs中)

load data local inpath '/root/tools/01.csv' into table emp;

在这里插入图片描述

上传后的文件将会保存在如下的hdfs路径中
在这里插入图片描述

文件处于Hdfs中

load data inpath '/input/01.csv' into table emp;

导入之后相当于执行剪切操作,即将此文件移动到hive/warehouse/emp的目录下

二、分区表

概念
在这里插入图片描述

create table emp_part(
id int,
name string,
job string
)
partitioned by (department int)
row format delimited fields terminated by ',';

插入语句

INSERT INTO TABLE emp_part PARTITION (department = 101)  
VALUES (1, 'John Doe', 'Engineer');  

以下为查询效果
在这里插入图片描述
HDFS中的存储
在这里插入图片描述

三、外部表

和内部表类似,在元数据的组织上相同,区别仅在于数据保存在HDFS中,Hive不会将其转移到数据仓库的目录内(/user/hive/warehouse),而是与这个数据建立一个链接,并且允许创建分区,当删除一个外部表时,仅删除链接

CREATE EXTERNAL TABLE emp_part_external(  id int,  name string,  job string  
)  
PARTITIONED BY (department int)  
ROW FORMAT DELIMITED  
FIELDS TERMINATED BY ','  
LOCATION '/input/emp_part_external';

数据存储于hdfs的/input/emp_part_external目录下,并且此表已经设置了分区

四、桶表

对数据进行哈希取值,存储在不同的文件中,类似于hash分区
在这里插入图片描述
以下为创建代码,将根据部门进行“分桶”

CREATE TABLE emp_bucketed(  id int,  name string,  job string,  department int  
)  
CLUSTERED BY (department) INTO 10 BUCKETS  
ROW FORMAT DELIMITED  
FIELDS TERMINATED BY ',';

hdfs中的存储文件
在这里插入图片描述

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com