hive中支持两种类型的分区:

  • 静态分区SP(static partition)
  • 动态分区DP(dynamic partition)

静态分区与动态分区的主要区别在于静态分区是手动指定,而动态分区是通过数据来进行判断。详细来说,静态分区的列实在编译时期,通过用户传递来决定的;动态分区只有在SQL执行时才能决定。

动态分区说明

关系型数据库(如Oracle)中,对分区表Insert数据时候,数据库自动会根据分区字段的值,将数据插入到相应的分区中,Hive中也提供了类似的机制,即动态分区(Dynamic Partition),只不过,使用Hive的动态分区,需要进行相应的配置。

按照常规的方法向分区表中插入数据,如果源数据量很大,那么针对一个分区就要写一个insert,非常麻烦,你必须先要知道源数据中都有什么样的数据才能创建分区。


引用:

https://www.jianshu.com/p/957a49aa011b

 

 

eg:

partition(log_date = <%=log_date%>)。   //分区是日期

partition(log_date,open_source)  //多分区

(多分区

20201014 mall

20201014 ticket 这样。两个分区字段)