为什么需要在hive中为动态分区设置属性

nwlqm0z1  于 2021-06-25  发布在  Hive
关注(0)|答案(1)|浏览(512)

我想知道一件事在Hive动态分区。在执行动态分区时,我们必须设置以下属性

SET hive.exec.dynamic.partition = true;

SET hive.exec.dynamic.partition.mode = nonstrict;

没有这些属性,我们就不能进行动态分区。
我想知道为什么需要这些?有人能告诉我为什么我们需要设置这个属性吗。

nfg76nw0

nfg76nw01#

它是作为防止分区被无意覆盖的附加保护措施来执行的。
医生说:
我们要防止动态分区插入的另一种情况是,用户可能会意外地将所有分区指定为动态分区,而不指定一个静态分区,而其初衷是只覆盖一个根分区的子分区。我们定义另一个参数 hive.exec.dynamic.partition.mode=strict 防止全动态分区情况。在严格模式下,必须至少指定一个静态分区。默认模式是严格的。另外,我们还有一个参数 hive.exec.dynamic.partition=true/false 控制是否允许动态分区。默认值在配置单元0.9.0之前为false,在配置单元0.9.0及更高版本中为true

相关问题