内部表:看名字,限于内部使用。
删除内部表时,表的元数据和数据都会被删除。
外部表:看名字,可以外部共享。
删除外部表时,表的元数据会被删除,但是数据不会被删除。
适用场景:
由上面的描述可知,外部表可以大家一起使用,即便误删了也可以恢复,比如日志的原始数据。而内部表仅限于少数人使用,比如存储自己的中间结果。
外部表误删后的恢复:
创建一个新表指定到(location 数据路径)这个位置,那么数据就会恢复。数据路径例如’/hive/external_table/’。
举例:
每天收集到的网站数据,需要做大量的统计数据分析,所以在数据源上可以使用外部表进行存储,方便数据的共享,在做统计分析时候用到的中间表,结果表可以使用内部表,因为这些数据不需要共享,使用内部表更为合适。
例子参考文献:hive中的内部表和外部表的区别和使用场景