улей, получите расположение данных с помощью однострочного

Интересно, есть ли способ получить местоположение данных из улья с помощью однострочника. Что-то вроде

select d.location from ( describe formatted table_name partition ( .. ) ) as d;

Мое текущее решение - получить полный вывод, а затем проанализировать его.


person ozw1z5rd    schedule 15.11.2017    source источник
comment
Вы имеете в виду расположение вашего стола?   -  person Ani Menon    schedule 15.11.2017
comment
да, расположение таблицы / раздела.   -  person ozw1z5rd    schedule 15.11.2017
comment
С другой стороны, вы можете использовать MetaStore Java API для создания собственного приложения и получить соответствующий StorageDescriptor за 72 простых шага ... Шучу.   -  person Samson Scharfrichter    schedule 16.11.2017


Ответы (2)


В отличие от традиционных СУБД, метаданные Hive хранятся в отдельной базе данных. В большинстве случаев это MySQL или Postgres. Подробную информацию о базе данных хранилища метаданных можно найти в hive-site.conf. Если у вас есть доступ к базе данных хранилища метаданных, вы можете запустить SELECT для таблицы TBLS, чтобы получить сведения о таблицах, и COLUMNS_V2, чтобы получить сведения о столбцах и т. Д.

Если у вас нет доступа к хранилищу метаданных, единственный вариант - описать каждую таблицу, чтобы получить подробные сведения. Если у вас много баз данных и таблиц, вы можете написать сценарий оболочки, чтобы получить список таблиц, используя «показать таблицы» и перебирать таблицы.

person Ramesh    schedule 15.11.2017
comment
Интересно, не стоит ли добавлять способ запроса хранилища метаданных из улья. - person ozw1z5rd; 15.11.2017

Два метода, если у вас нет доступа к метаданным.

Разберите DESCRIBE TABLE в оболочке, как в этом ответе: https://stackoverflow.com/a/43804621/2700344

Также в Hive есть виртуальный столбец INPUT__FILE__NAME.

select INPUT__FILE__NAME from table

будет выводить URL-адреса местоположений для каждого файла. Вы можете разделить URL-адрес на '/', получить нужный элемент, агрегировать и т. Д.

person leftjoin    schedule 16.11.2017
comment
Ваш оператор выведет файлы, которые будут отправлены картографу: плохая идея. Это огромный и подробный результат. Боюсь, что единственный вариант - проанализировать вывод в форматированном описании. По-прежнему плохо разбирается, но это единственный вариант. - person ozw1z5rd; 16.11.2017