HIVE 分区表

  • 在逻辑上分区表与未分区表没有区别,在物理上分区表会将数据按照分区键的列值存储在表目录的子目录中,目录名为“分区键=键值”。其中需要注意的是分区键的值不一定要基于表的某一列(字段),它可以指定任意值,只要查询的时候指定相应的分区键来查询即可。我们可以对分区进行添加、删除、重命名、清空等操作。hive中支持两种类型的分区:
    • 静态分区:若分区的值是确定的,那么称为静态分区。新增分区或者是加载分区数据时,指定分区名
      • 可以根据PARTITIONED BY创建分区表,一个表可以拥有一个或者多个分区,每个分区以文件夹的形式单独存在表文件夹的目录下
      • 分区是以字段的形式在表结构中存在,但是该字段不存放实际的数据内容,仅仅是分区的表示
      • 分区建表分为2种,一种是单分区,也就是说在表文件夹目录下只有一级文件夹目录。另外一种是多分区,表文件夹下出现多文件夹嵌套模式
    • 动态分区:分区的值是非确定的,由输入数据来确定
    • 静态分区与动态分区的主要区别在于静态分区是手动指定,而动态分区是通过数据来进行判断。详细来说,静态分区的列实在编译时期,通过用户传递来决定的;动态分区只有在SQL执行时才能决定

 

posted @ 2019-06-27 21:02  北漂屌丝  阅读(840)  评论(0编辑  收藏  举报