一、内部表和外部表的区别:
内部表和外部表的区别可以从三方面讨论,创建表时、删除表时、选择表时:
1.创建表:
建表时,未被external修饰的是内部表,被external修饰的是外部表。
内部表数据由hive自身管理,外部表数据由HDFS管理。
内部表数据存储的位置默认是“user/hive/warehouse”,外部表数据存储的位置由自己制定。(如果没有location,hive将在HDFS上的“user/hive/warehouse”文件夹下以外部表的表名创建一个文件夹,并将属于这个表的数据存放在这里)
2.删除表:
删除内部表会直接删除元数据以及数据,所以管理表不适合和其他工具共享数据
删除外部表仅仅会删除元数据,HDFS上的文件不会被删除,所以外部表相对更加安全,方便共享元数据。
3.选择表:
内部表适合数据临时处理、转换等操作,及对数据进行清洗、统计分析、计算等需求; 外部表适用于数据的长期存储、备份和共享等需求。
内部表和外部表没有太大区别,如果所有数据都由hive处理则创建内部表;如果数据的处理由hive和其他工具一起处理,则创建外部表;
二、 他们各自的应用场景,你们公司建表是内部还是外部:
内部表适合数据临时处理、转换等操作,及对数据进行清洗、统计分析、计算等需求; 外部表适用于数据的长期存储、备份和共享等需求。
对于建表,不同公司有不同的实践。
一般来说,在数据分析和处理的场景下,内部表应用更加广泛,因为它可以提供更好的数据管理和查询性能。
而外部表更多用于数据仓库和数据湖等需要长期存储和备份的场景。
猜你喜欢
网友评论
- 搜索
- 最新文章
- 热门文章