Hive 中有内部表 与 外部表 两种表。
Hive 主要是用于数据仓库建设的。那么在数据仓库中,那我们该如何在两种表的类型中选择呢 ??
下面是几条原则 :
1.在大部分场景下,两种表的应用没有太大的区别。
2.数据场景简单, 几乎都是在Hive中的流转, 可以优先选用内部表。
3.需要对数据内容和元数据进行紧凑的管理, 建议内部表。
比如负责计算过程中用到的临时表, 数据内容随用随删, 而不希望关注底层文件。
4.数据处理场景较多,复杂, 建议采用外部表。
比如需要用Spark, Mapreduce等处理复杂的数据, 然后用Hive 做后续处理的; 需要处理非结构化日志数据的情况。
5.需要对数据和元数据分开管理的场景, 对数据安全性要求更高的场景, 建议采用外部表。