Если вы добавляете файлы в каталог таблиц или каталог разделов, не имеет значения, внешняя или управляемая таблица в Hive, данные будут доступны для запросов, вам не нужно делать никаких дополнительных шагов, чтобы сделать данные доступными, обновление не будет необходимо.
Таблица / раздел Hive - это метаданные (DDL, местоположение, статистика, права доступа и т. Д.) Плюс файлы данных в местоположении. Таким образом, данные хранятся в расположении таблицы / раздела в HDFS.
Только если вы создадите новый каталог для нового раздела, который еще не создан , вам нужно будет выполнить команду ALTER TABLE ADD PARTITION LOCATION=<new location>
или MSCK REPAIR TABLE
. Эквивалентная команда в версии Hive для Amazon Elastic MapReduce (EMR): ALTER TABLE table_name RECOVER PARTITIONS
.
Если вы добавляете файлы в уже созданные расположения таблиц / разделов, обновление не требуется.
CBO может использовать статистику для расчета запроса без чтения файлов данных, например count(*)
. Работает только для простых запросов, таких как count (*), max ().
Если вы используете CBO со статистикой для расчета запроса, вам может потребоваться обновить его, используя ANALYZE TABLE hive_table PARTITION(partitioned_col) COMPUTE STATISTICS
. Смотрите этот ответ для более подробной информации: https://stackoverflow.com/a/39914232/2700344
Если вам не нужна статистика и вы хотите, чтобы местоположение таблицы проверялось каждый раз, когда вы запрашиваете ее, отключите ее: set hive.compute.query.using.stats=false;