Рабочая команда Alter Table / Partition "Concatenate" - PullRequest
0 голосов
/ 17 января 2020

Хотел узнать, как работает команда Alter Table/Partition Concatenate, не могу найти много на https://cwiki.apache.org/confluence/display/Hive/LanguageManual+DDL#LanguageManualDDL -AlterTable / PartitionConcatenate .

Предположительно, я запускаю эту команду для определенного раздел, и в то же время я запускаю команду SELECT на том же разделе.

Может ли быть состояние гонки, которое я пытаюсь прочитать только тогда, когда команда сцепления удаляла несколько файлов, уже присутствующих в этом раздел и еще не заменил его новым комбинированным файлом из созданной им временной папки.

Воспроизвести это будет сложно, если у кого-то есть идеи, пожалуйста, помогите!

1 Ответ

2 голосов
/ 17 января 2020

Будет no race условие, когда мы будем работать alter table <tb_name> concatenate;, будет Exclusive блокировка, полученная на столе (if specific partition mentioned then lock on that specific partition only).

Exclusive Lock будет выпущен после завершения задания MR.

Тогда только ваш Select query будет выполняться на столе, пока Exclusive lock для таблицы ваш запрос на выбор будет просто ждать в очереди.

Из официальной документации Hive:

Hive Command                                Locks Acquired
---------------------------------------     ---------------
alter table T1 partition P1 concatenate  |  EXCLUSIVE Lock on T1.P1
alter table T1 concatenate               |  EXCLUSIVE Lock on T1

To check locks on specific Hive table:

show locks <db>.<tb_name>;
...