У меня есть секционированный стол - с 201 разделом. Мне нужно найти последний раздел в этой таблице и использовать его для публикации моих данных. Запрос для поиска списка всех разделов:Как найти последний раздел в таблице HIVE
use db;
show partitions table_name;
Мне нужен запрос, чтобы найти последний из этих разделов. Перегородки находятся в формате
ingest_date=2016-03-09
Я пробовал использовать max(), что дало мне неправильный результат. Я не хочу, чтобы пройти через всю таблицу, делая
select max(ingest_date) from db.table_name;
Это дало бы мне ожидаемый выход .. но убить весь смысл наличия перегородок в 1-ом месте.
Есть ли более эффективный запрос для получения последнего раздела для таблицы HIve?
Возможный дубликат [Hive: как показать все разделы таблицы?] (Http://stackoverflow.com/questions/15616290/hive-how-to-show-all-partitions-of-a-table) – zero323
Увы, Hive не предоставляет метаданные в виде виртуальных таблиц - ничего похожего на базу данных 'SYS' или' INFORMATION_SCHEMA'. Единственный эффективный способ перечислить разделы таблицы Hive - это использовать API-интерфейс ** Metastore java **. Или реверсировать процесс упорядочения разделов ** в HDFS ** _ (довольно просто на самом деле) _ затем перечислить каталоги, надеясь, что HDFS и Metastore будут синхронизированы на 100%. –
Или, если вы можете напрямую запросить базу данных Metastore * (возможно, в MySQL или PostgreSQL) *, перепроектировать модель данных и запустить любой SQL, который вам нравится. –