4种表结构:内部表,外部表,分区表,分桶表.
内部表与外部表的区别:
- 有external关键词修饰的外部表,没有external关键词修饰的是内部表
- 外部表的数据由HDFS管理,内部表的数据由hive自身管理
- 删除外部表只会删除元数据信息,存储的数据不会删除;删除内部表,存储的数据与元数据信息都会被删除
分区表与分桶表的区别:
- 数据粒度不同,分区表是针对目录进行分区,分桶表是针对文件进行分桶
- 分区表可以进一步分桶,分桶表不可再分区
- 分区的字段是表外的字段,分桶的字段是表中已经存在的字段
- 分区数可以修改,分桶数修改不了
- 分区主要是提高查询效率,分桶主要是提高join效率及进行数据采样