2013-06-10 5 views
5

позволяет сказать, что я создал внешнюю таблицу Hive «myTable» из файла myFile.csv (находится в HDFS).Обновление внешней таблицы Hive с изменениями HDFS

myFile.csv меняется каждый день, тогда мне интересно обновлять «myTable» один раз в день.

Есть ли какой-либо запрос HiveQL, который сообщает обновлять таблицу каждый день?

спасибо.

P.S.

Я хотел бы знать, работает ли он так же с каталогами: скажем, я создаю раздел Hive из каталога HDFS «myDir», когда «myDir» содержит 10 файлов. На следующий день «myDIr» содержит 20 файлов (добавлено 10 файлов). Должен ли я обновить раздел Hive?

ответ

6

Существует два типа таблиц в улье в основном.

Одна управляемая таблица, управляемая складом куста, всякий раз, когда вы создаете данные таблицы, будет скопирована на внутренний склад. Вы can not have latest data in the query output.

Другая внешняя таблица, в которой улей will not copy its data to internal warehouse.

Поэтому всякий раз, когда вы запускаете запрос на таблицу, он извлекает данные из файла.

Таким образом, вы можете даже иметь самые последние данные в выводе запроса.

That is one of the goals of external table.

Вы можете даже удалить таблицу и данные не будут потеряны.

+0

благодарим вас за наш ответ! – sunny

+0

Я хотел бы знать, работает ли он так же с каталогами: позволяет сказать, что я создаю раздел Hive из каталога HDFS «myDir», когда «myDir» содержит 10 файлов. на следующий день «myDIr» содержит 20 файлов (добавлено 10 файлов). Должен ли я обновить раздел Hive? – sunny

+0

да, он должен работать –

4

Если вы добавите в инструкцию create table LOCATION '/path/to/myFile.csv', вам не нужно ничего обновлять в Hive. Он всегда будет использовать последнюю версию файла в запросах.

Смежные вопросы