0


Hive内部表(管理表)和外部表的区别【重点】

** 一、内部表和外部表的区别: **

内部表和外部表的区别可以从三方面讨论,创建表时、删除表时、选择表时:

** 1.创建表: **

建表时,未被external修饰的是内部表,被external修饰的是外部表。

内部表数据由hive自身管理,外部表数据由HDFS管理。

内部表数据存储的位置默认是“user/hive/warehouse”,外部表数据存储的位置由自己制定。(如果没有location,hive将在HDFS上的“user/hive/warehouse”文件夹下以外部表的表名创建一个文件夹,并将属于这个表的数据存放在这里)

** 2.删除表: **

删除内部表会直接删除元数据以及数据,所以管理表不适合和其他工具共享数据

删除外部表仅仅会删除元数据,HDFS上的文件不会被删除,所以外部表相对更加安全,方便共享元数据。

** 3.选择表: **

内部表适合数据临时处理、转换等操作,及对数据进行清洗、统计分析、计算等需求; 外部表适用于数据的长期存储、备份和共享等需求。

内部表和外部表没有太大区别,如果所有数据都由hive处理则创建内部表;如果数据的处理由hive和其他工具一起处理,则创建外部表;

** 二、 他们各自的应用场景,你们公司建表是内部还是外部: **

内部表适合数据临时处理、转换等操作,及对数据进行清洗、统计分析、计算等需求; 外部表适用于数据的长期存储、备份和共享等需求。

对于建表,不同公司有不同的实践。

一般来说,在数据分析和处理的场景下,内部表应用更加广泛,因为它可以提供更好的数据管理和查询性能。

而外部表更多用于数据仓库和数据湖等需要长期存储和备份的场景。


本文转载自: https://blog.csdn.net/m0_51697147/article/details/132060625
版权归原作者 Java大数据运动猿 所有, 如有侵权,请联系我们删除。

“Hive内部表(管理表)和外部表的区别【重点】”的评论:

还没有评论