внешние таблицы в Hive

  1. Я добавил CSV-файл в HDFS, используя R-скрипт.

  2. Я обновляю этот CSV новым CSV / добавляю в него данные

  3. Создана таблица с использованием оттенка в Hive поверх этого CSV.

  4. Изменил его на внешнюю таблицу.

Теперь, если при изменении данных в расположении hdfs, будут ли данные автоматически обновляться в таблице улья?


person S Khurana    schedule 06.06.2016    source источник


Ответы (1)


Так обстоит дело с внешними (а также управляемыми) таблицами в Hive. На самом деле это не столы. Вы можете думать о них как о ссылке на местоположение HDFS. Поэтому всякий раз, когда вы запрашиваете внешнюю таблицу, Hive считывает все данные из местоположения, которое вы выбрали при создании этой таблицы.

Из документа Hive:

ВНЕШНЯЯ таблица указывает на любое расположение HDFS для своего хранилища, а не хранится в папке, указанной свойством конфигурации hive.metastore.warehouse.dir.

person bartektartanus    schedule 06.06.2016
comment
На самом деле, даже управляемые таблицы являются ссылками на каталоги HDFS, и все, что происходит с файлами данных на уровне HDFS, будет отображаться в следующем запросе Hive (который открывает двери для множества забавных вещей, например резервного копирования / восстановления на уровне HDFS. ). Реальная разница в том, что команда drop для управляемой таблицы исключает каталог HDFS; на ВНЕШНЕЙ таблице он оставит файлы и каталог в покое. - person Samson Scharfrichter; 06.06.2016
comment
Да, управляемые таблицы тоже не настоящие :) Я отредактировал свой ответ. - person bartektartanus; 06.06.2016
comment
вытягивает ли улей данные внешней / внутренней таблицы в память при выполнении операции SELECT для таблицы? Я спорю, если он не хранится в памяти, как он выполняется быстрее во второй раз, чем в первый раз. - person NK7983; 16.10.2020