зачем нужно устанавливать свойства для динамического раздела в улье
Я хотел бы знать одну вещь в динамическом разделе улья. При создании динамических разделов мы должны установить следующие свойства
SET hive.exec.dynamic.partition = true;
SET hive.exec.dynamic.partition.mode = nonstrict;
Без этих свойств мы не сможем создать динамический раздел.
Я хочу знать, зачем они нужны? Может кто-нибудь сказать мне, почему нам нужно устанавливать эти свойства.
1 ответ
Это было сделано как дополнительная мера защиты от непреднамеренной перезаписи разделов.
Документы говорят:
Еще одна ситуация, которую мы хотим защитить от вставки динамических разделов, заключается в том, что пользователь может случайно указать все разделы как динамические, не указав один статический раздел, в то время как первоначальная цель состоит в том, чтобы просто перезаписать подразделы одного корневого раздела. Определяем еще один параметр
hive.exec.dynamic.partition.mode=strict
чтобы предотвратить случай полностью динамического раздела. В строгом режиме необходимо указать хотя бы один статический раздел. Режим по умолчанию - строгий. Кроме того, у нас есть параметрhive.exec.dynamic.partition=true/false
чтобы контролировать, разрешать ли вообще динамическое разделение. Значение по умолчанию - false до Hive 0.9.0 и true в Hive 0.9.0 и более поздних версиях.