Advertisement

Hive的分桶机制和分区功能

阅读量:

目录

  • 分区
      • 单值分区
      • 范围分区
    • 分桶

      • 创建分桶表
      • 向分桶表写入数据
    • 索引

    • Hive索引/分区/分桶

      • 索引
      • 分区
      • 分桶(桶表)
      • 总结

传统的关系型数据库通常具备对表进行分区的能力,通过实施表分区,可以在特定的数据区域中进行检索,从而降低数据扫描的成本,并在一定程度上提升查询的效率。此外,还可以在分区的基础上进一步建立索引,以进一步增强查询性能。
Hive同样支持分区与分桶的概念,在逻辑层面,分区表与未进行分区的表并无差异;但在物理存储上,分区表会依据所设定的分区键列的值将数据存放在对应的子目录中,子目录名称通常为“分区键=键值”的形式。值得注意的是,用于划分的分区键值并不一定需要基于表中的某一具体字段,只要在执行查询时指定了相应的键即可实现检索。同时,可以对这些已有的分区执行添加、删除、重命名或清空等操作。由于数据被存储在特定的子目录中,在检索时仅需访问对应区域即可完成操作,其功能与传统关系型数据库中的表分区类似,核心目标都是减少不必要的扫描开销。
所谓分桶操作,则是根据某列的数据特征将其按照哈希取模的方式随机且均匀地分配至各个桶文件之中。由于该过程依赖于具体的列数据来进行哈希计算和取模处理,因此所选择用于分桶的列必须基于表格中的实际

全部评论 (0)

还没有任何评论哟~