hive中内部表外部表,分区表分桶表的区别

内部表和外部表的区别:

  • 删除内部表,删除表元数据和数据
  • 删除外部表,删除元数据,不删除数据

内部表和外部表的使用选择:

  • 大多数情况,他们的区别不明显,如果数据的所有处理都在 Hive 中进行,那么倾向于 选择内部表,但是如果 Hive
    和其他工具要针对相同的数据集进行处理,外部表更合适。

  • 使用外部表访问存储在 HDFS 上的初始数据,然后通过 Hive 转换数据并存到内部表中
  • 使用外部表的场景是针对一个数据集有多个不同的 Schema(是数据库的组织和结构)
  • 通过外部表和内部表的区别和使用选择的对比可以看出来,hive 其实仅仅只是对存储在 HDFS 上的数据提供了一种新的抽象。而不是管理存储在
    HDFS 上的数据。所以不管创建内部 表还是外部表,都可以对 hive 表的数据存储目录中的数据进行增删操作。

分区表和分桶表的区别:

  • Hive 数据表可以根据某些字段进行分区操作,细化数据管理,可以让部分查询更快。同 时表和分区也可以进一步被划分为
    Buckets,分桶表的原理和 MapReduce 编程中的 HashPartitioner 的原理类似。
  • 分区和分桶都是细化数据管理,但是分区表是手动添加区分,由于 Hive 是读模式,所
    以对添加进分区的数据不做模式校验,分桶表中的数据是按照某些分桶字段进行 hash 散列 形成的多个文件,所以数据的准确性也高很多

猜你喜欢

转载自blog.csdn.net/weixin_44703894/article/details/113863076