内部表
- 未被external修饰
- 表数据由hive管理(内部表数据存储的位置是hive.metastore.warehouse.dir)
- 删除内部表会直接删除元数据(metadata)及存储数据(仅限于location的)
- 对内部表的修改会将修改直接同步给元数据
- 对于保存的一些业务维度表或者是统计好的报表使用内部表
外部表
- 被external修饰的 (create
external
table ) - 表数据由hdfs管理
- 删除外部表仅仅会删除元数据,HDFS上的文件并不会被删除;
- 对于一些公共的数据源使用外部表.
- 对外部表的表结构和分区进行修改,则需要修复(MSCK REPAIR TABLE table_name;)