Hive中管理表、外部表、分区表的示例分析
发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,这篇文章主要介绍Hive中管理表、外部表、分区表的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完! *管理表 --我们目前所创建的表都是管理表,也叫
千家信息网最后更新 2026年11月02日Hive中管理表、外部表、分区表的示例分析
这篇文章主要介绍Hive中管理表、外部表、分区表的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!
*管理表
--我们目前所创建的表都是管理表,也叫内部表
--Hive会控制管理表数据的生命周期,Hive默认会将表数据存储在/user/hive/warehouse子目录下
--删除一个管理表时,Hive也会删除这个表中数据
--管理表不方便和其他工具共享数据
eg:我们有一份由Pig或其他工具创建并且主要由这一工具使用的数据,同时我们还想使用Hive执行查询,可以创建一个外部表指向这份数据,并不需要对其具有所有权
*外部表
--文件位于分布式文件系统的/data/test
eg:CREATE EXTERNAL TABLE IF NOT EXISTS app (
hour string,
name string,
pv string,
uv string)
ROW FORMAT DELIMITED FIELDS TERMINATED BY ','
LOCATION '/data/test';
对以上语句分析:
1.关键字EXTERNAL告诉Hive这个表是外部表,LOCATION告诉Hive数据位于哪个路径下
2.因为是外部表,所以Hive并非认为其完全拥有这份数据,删除该表时并不会删除这份数据,只会删除描述表的元数据信息
*管理表VS外部表
--可以用 DESCRIBE EXTENDED tablename语句的输出中查看到表是否是管理表或外部表
--对于管理表,可看到如下信息
... tableType:MANAGED_TABLE)
--对于外部表,可看到如下信息
... tableType:EXTERNAL_TABLE)
注:如果语句省略 EXTERNAL 关键字而源表是外部表的话,那么生成的新表也是外部表
如果语句省略 EXTERNAL 关键字而源表是管理表的话,那么生成的新表也是管理表
如果语句有EXTERNAL关键字而源表是管理表的话,那么生成的新表是外部表
*分区管理表
--管理表和外部表都可以加分区
eg:CREATE TABLE IF NOT EXISTS tmp.table1(
userId string COMMENT '用户ID',
name string COMMENT '用户姓名',
createtime string COMMENT '创建时间'
)
PARTITIONED BY (country string,state string );
--分区表改变了Hive对数据存储的组织方式。如果我们在tmp库下创建这个表,那么对于这个表只会有一个table1目录与之对应:
/user/hive/warehouse/tmp/table1
但是,Hive在表目录下将会建好可以反映分区结构的子目录
eg:/table1/country=CA/state=AB
/table1/country=CA/state=BC
...
/table1/country=US/state=AL
/table1/country=US/state=AK
...
这些都是实际的目录名称,州目录下将会包含有零个文件或者多个文件,这些文件中存放着那些州的用户信息
分区字段一旦创建好,表现得就和普通字段一样,除非优化查询性能,否则不需要关心是否是分区字段
如果要查某个国家的用户,那仅仅需要扫描那个国家对应的目录就可以
--查看表中存在的所有分区
eg: hive> SHOW PARTITIONS table1;
country=CA/state=AB
country=CA/state=BC
...
country=US/state=AL
country=US/state=AK
...
查看某个特定分区
eg: hive> SHOW PARTITIONS table1 PARTITION(country='US');
country=US/state=AL
country=US/state=AK
...
*外部分区表
--创建外部分区表
eg: CREATE EXTERNAL TABLE IF NOT EXISTS app (
hour string,
name string,
pv string,
uv string)
PARTITIONED BY (timetype string,clct_day string )
ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t';
--增加指定分区的值
eg: ALTER TABLE app ADD PARTITION (timetype=hour, clct_day='2018-07-26')
LOCATION '/data/test/table1/hour/'2018-07-26' ';
*自定义表的存储格式
--Hive的默认存储格式是文本文件格式,也可以用STORED AS TEXTFILE 指定,同时在创建表的时候指定各种分隔符
-- 使用TEXTFILE意味着每一行被认为是一个单独的记录
--也可以保存为其他Hive支持的文件格式,包括SEQUENCEFILE和RCFILE,这两种文件格式都是使用二进制编码和压缩来优化磁盘空间使用以及I/O带宽性能的
eg: CREATE TABLE IF NOT EXISTS tmp.table1(
userId string COMMENT '用户ID',
name string COMMENT '用户姓名',
createtime string COMMENT '创建时间')
ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t'
STORED AS TEXTFILE;
以上是"Hive中管理表、外部表、分区表的示例分析"这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注行业资讯频道!
管理
数据
文件
用户
分区表
格式
目录
语句
信息
关键
关键字
存储
分析
字段
工具
生成
示例
内容
同时
国家
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
咖啡网
互联网科技工作委员会
河南真二互联网科技有限公司
互联网 科技公司
深圳齐家互联网科技
大白互联网科技
佰商互联网科技有限公司
金融科技和互联网金融
科技与互联网的利与弊
剑昆互联网络科技有限公司临桂
昭通云南众福互联网科技有限公司
成都铂石互联网科技做什么的
互联网公司科技股
江阴互联网智能科技产品进口
卓翼科技产业互联网合作
无锡工业互联网科技有限公司
互联网科技收购价值
西安左小互联网科技有限公司
数字互联网科技有限公司
山东蛋芒互联网科技有限公司
农村开互联网科技讲堂
北京三清互联网科技
中盈科技互联网信息有限公司
金融科技与互联网金融相同和不同
赶超互联网科技 微信多开
坤平互联网科技
互联网保险科技创业
工业互联网山东科技大学
北京市互联网新科技
六子台科技互联网展会