Как лучше обновить разделы?

Я хочу обновить разделы, используя приведенный ниже код.

msck repair table_name

(Я не могу использовать другие параметры, такие как оператор обновления, подобный этому)

Но я не знаю, как лучше всего обновить разделы.

1) Я запускаю этот код каждую минуту.

2) Я выбираю разделы с помощью команды show, затем, если разделы не существуют, запускаю этот код.

show partitions table_name

Каков наилучший способ обновления раздела (другой вариант подходит), чтобы не было ограничений на поиск данных?

Не могли бы вы дать мне совет?


person Bethlee    schedule 24.05.2017    source источник
comment
Возможный дубликат: stackoverflow.com/ вопросы/13815179/   -  person Keshav Pradeep Ramanath    schedule 24.05.2017
comment
Спасибо за ваш комментарий. Но я хочу знать, как правильно использовать команду восстановления msck. Результат ответа такой же, поэтому он выглядит похожим, но немного другим.   -  person Bethlee    schedule 24.05.2017


Ответы (2)


Команда msck repair table_name дорогая. Вы можете использовать команду ADD PARTITION.

E.g.

ALTER TABLE tblName ADD PARTITION (dt='2008-08-08', country='us') location '/path/to/us/part080808'

Если вы не хотите проверять, существуют разделы или нет, просто используйте IF NOT EXISTS. Он создаст раздел, если он не существует.

ALTER TABLE tblName ADD IF NOT EXISTS PARTITION (dt='2008-08-08', country='us') location '/path/to/us/part080808' 
person Manish Saraf Bhardwaj    schedule 24.05.2017
comment
Спасибо! Я использую его, чем команду восстановления msck. У меня есть вопрос. Что вы имеете в виду под msck repair table_name дорого? Я не знаком с ульем. Так не могли бы вы дать мне еще какое-то объяснение? - person Bethlee; 24.05.2017
comment
@Bethlee msck означает metastore check. Таким образом, hive пытается проверить данные в HDFS с данными в хранилище метаданных. Если он увидит какие-либо несоответствия, скажем, в разделах, он попытается добавить эти разделы все сразу или один за другим. - person philantrovert; 24.05.2017
comment
@philantrovert Большое спасибо за объяснение! - person Bethlee; 24.05.2017

другой вариант тоже будет

ALTER TABLE tblName UPDATE PARTITIONS;
person Gerhard Brueckl    schedule 04.09.2018