Hive中表分类概念介绍

表分类

– 由Hive全权管理的表
所谓的管理表指的是hive是否具备数据的管理权限,如果该表是管理表,当用户删除表的同时hive也会将表内对应的数据删除,因此在生产环境下,为了防止误操作,带来数据损失,一般考虑将表修改为非管理表-外部表。
总结:Hive的管理,表结构, hdfs中的数据文件,都归Hive全权管理。(hive删除管理表,HDFS对应文件也会被删除。)
缺点:数据不安全。

外部表

– 引用映射HDFS数据作为表管理,但无法删除数据
外部表和管理表最大的区别在于删除外部表,只是将MySQL中对应该表的元数据信息删除,并不会删除hdfs上的数据,因此外部表可以实现和第三方应用共享数据。在创建外表的时候需要添加一个关键字"external"即可。create external xxx()…

分区表

将表按照某个列的一定规则进行分区存放,减少海量数据情况下的数据检索范围,提高查询效率;

举例:用户表、用户信息表

分区方案:按照类型分区

应用:依据实际业务功能,拿查询条件的列作为分区列来进行分区,缩小MapReduce的扫描范围,提高MapReduce的执行效率。
总结:table中的多个分区的数据是分区管理
1:删除数据按照分区删除。如果删除某个分区,则将分区对应的数据也删除(外部表,数据删除,数据文件依然在)。

2:查询统计,多个分区被一个表管理起来。
select * from 表 where 分区字段为条件。

猜你喜欢

转载自blog.csdn.net/gym02/article/details/110739664