2016-03-28 7 views
0

Я новичок в улье. Я хочу захватить список таблиц и связанных метаданных (например, столбцы, строки и т. Д.) Во всех базах данных. Я ищу какой-то сценарий, который я могу передать, и любой может запустить его и предоставить мне вывод, записав его в файл.просмотреть параметры метаданных куста

Один из подходов - написать программу mapreduce, которая будет подключаться к улью и извлекать эту информацию.

Другой подход состоит в том, чтобы каким-то образом пройти через список таблиц и получить эту информацию. Я знаю команды show tables и describe table, но не знаю, как использовать эти команды в скрипте и как запустить этот скрипт.

Какой подход следует принять? Какие другие варианты/подходы доступны для выполнения этой задачи? Спасибо за любую помощь. [Для РСУБД я мог бы сделать это, просто писать SQL запрос на таблицы системного каталога.]

ответ

0

Я хотел бы использовать Спарк, MapReduce, или HPL/SQL цикл по списку таблиц (как вы упомянули), а затем захватить необходимые данные, используя различные показательные заявления. Сначала я бы рассмотрел подход HPL/SQL, поэтому его можно запустить как любой запрос Hive, затем я попытался бы его с помощью Spark, если бы первый подход не сработал.

-- loop on the values displayed in show tables 
show tables; 
-- then execute tblproperties and describe to get the metadata you are after 
show tblproperties yourTableName; 
describe yourTableName; 
+0

Как сделать I цикла через выход из 'ш Столы? Где я могу запустить этот скрипт? – stech

+0

Это просто логика кода psuedo, для чего вам понадобится программа, а не только отправная точка уровня улья. Я бы посмотрел на HPL/SQL, который вы бы выполнили в Hive. – Jared

0

Использование API-интерфейсов улья метасторе является одним из возможных решений. См HiveMetaStore APIs

Вы также можете посмотреть на WebHcat API, Hcat for Hive

0

Я считаю, что вам нужно будет настроить улей metastore использовать MYSQL или оракул, то вы можете запросить таблицы SYS В MySQL или Oracle Database и получить то, что вы want.By по умолчанию улей использует базу Derby

См https://dzone.com/articles/how-configure-mysql-metastore

Надеется, что это помогает

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