1. 模式设计
1.1 数据模型-数据的组织方式
- Database: 和关系型数据库的Database一样
- Table: Hive将数据表分为内部表和外部表。
内部表
在Hive中创建的普通表都可称作“内部表”。因为Hive可以(或多或少)控制其数据的生命周期,内部表对数据拥有所有权。如我们所见,通常Hive会将内部表的数据储存在由hive.metastore.warehouse.dir所定义的目录下。
外部表所以,当删除一个内部表时,相应的数据也会被删除。
内部表不方便共享数据源。例如,当采用如Pig或MapReduce等技术工具进行数据处理时,我们将无法读取内部表的数据,也不能将外部数据直接作为内部表数据源分享给Hive。这样的需求就诞生了外部表。不同于内部表,Hive 对外部表的数据仅仅拥有使用权,而数据位置可由表管理者任意配置。
如何理解外部表呢?