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 这样。两个分区字段)