我想知道一件事在Hive动态分区。在执行动态分区时,我们必须设置以下属性
SET hive.exec.dynamic.partition = true; SET hive.exec.dynamic.partition.mode = nonstrict;
没有这些属性,我们就不能进行动态分区。我想知道为什么需要这些?有人能告诉我为什么我们需要设置这个属性吗。
nfg76nw01#
它是作为防止分区被无意覆盖的附加保护措施来执行的。医生说:我们要防止动态分区插入的另一种情况是,用户可能会意外地将所有分区指定为动态分区,而不指定一个静态分区,而其初衷是只覆盖一个根分区的子分区。我们定义另一个参数 hive.exec.dynamic.partition.mode=strict 防止全动态分区情况。在严格模式下,必须至少指定一个静态分区。默认模式是严格的。另外,我们还有一个参数 hive.exec.dynamic.partition=true/false 控制是否允许动态分区。默认值在配置单元0.9.0之前为false,在配置单元0.9.0及更高版本中为true
hive.exec.dynamic.partition.mode=strict
hive.exec.dynamic.partition=true/false
1条答案
按热度按时间nfg76nw01#
它是作为防止分区被无意覆盖的附加保护措施来执行的。
医生说:
我们要防止动态分区插入的另一种情况是,用户可能会意外地将所有分区指定为动态分区,而不指定一个静态分区,而其初衷是只覆盖一个根分区的子分区。我们定义另一个参数
hive.exec.dynamic.partition.mode=strict
防止全动态分区情况。在严格模式下,必须至少指定一个静态分区。默认模式是严格的。另外,我们还有一个参数hive.exec.dynamic.partition=true/false
控制是否允许动态分区。默认值在配置单元0.9.0之前为false,在配置单元0.9.0及更高版本中为true