Запрос метаданных HIVE - PullRequest
       66

Запрос метаданных HIVE

0 голосов
/ 28 июня 2018

Мне нужно запросить следующую таблицу и просмотреть информацию из моего кластера Apache HIVE:

Каждая строка должна содержать следующее:

СХЕМА СТОЛОВ

НАИМЕНОВАНИЕ СТОЛОВ

ОПИСАНИЕ ТАБЛИЦЫ

ИМЯ КОЛОННЫ

ТИП ДАННЫХ КОЛОННЫ

ДЛИНА КОЛОННЫ

ТОЧНОСТЬ КОЛОННЫ

КОЛОННА МАСШТАБ

NULL ИЛИ НЕ NULL

ПЕРВИЧНЫЙ КЛЮЧЕВОЙ ИНДИКАТОР

Это можно легко запросить из большинства СУБД (таблиц / представлений метаданных), но я изо всех сил пытаюсь найти много информации об эквивалентных таблицах / представлениях метаданных в HIVE.

Пожалуйста, помогите:)

1 Ответ

0 голосов
/ 29 июня 2018

Эту информацию можно получить в метавторе Hive. Приведенный ниже пример запроса относится к метасторному хранилищу с поддержкой MySQL (версия Hive 1.2).

SELECT 
DBS.NAME AS TABLE_SCHEMA,
TBLS.TBL_NAME AS TABLE_NAME,
TBL_COMMENTS.TBL_COMMENT AS TABLE_DESCRIPTION,
COLUMNS_V2.COLUMN_NAME AS COLUMN_NAME,
COLUMNS_V2.TYPE_NAME AS COLUMN_DATA_TYPE_DETAILS
FROM DBS
JOIN TBLS ON DBS.DB_ID = TBLS.DB_ID
JOIN SDS ON TBLS.SD_ID = SDS.SD_ID
JOIN COLUMNS_V2 ON COLUMNS_V2.CD_ID = SDS.CD_ID
JOIN 
    (
        SELECT DISTINCT TBL_ID, TBL_COMMENT 
        FROM 
        (
            SELECT TBLS.TBL_ID TBL_ID, TABLE_PARAMS.PARAM_KEY, TABLE_PARAMS.PARAM_VALUE, CASE WHEN TABLE_PARAMS.PARAM_KEY = 'comment' THEN TABLE_PARAMS.PARAM_VALUE ELSE '' END TBL_COMMENT
            FROM TBLS JOIN TABLE_PARAMS
            ON TBLS.TBL_ID = TABLE_PARAMS.TBL_ID
        ) TBL_COMMENTS_INTERNAL
    ) TBL_COMMENTS 
ON TBLS.TBL_ID = TBL_COMMENTS.TBL_ID;

Пример вывода:

+--------------+----------------------+-----------------------+-------------------+------------------------------+
| TABLE_SCHEMA | TABLE_NAME           | TABLE_DESCRIPTION     | COLUMN_NAME       | COLUMN_DATA_TYPE_DETAILS     |
+--------------+----------------------+-----------------------+-------------------+------------------------------+
| default      | temp003              | This is temp003 table | col1              | string                       |
| default      | temp003              | This is temp003 table | col2              | array<string>                |
| default      | temp003              | This is temp003 table | col3              | array<string>                |
| default      | temp003              | This is temp003 table | col4              | int                          |
| default      | temp003              | This is temp003 table | col5              | decimal(10,2)                |
| default      | temp004              |                       | col11             | string                       |
| default      | temp004              |                       | col21             | array<string>                |
| default      | temp004              |                       | col31             | array<string>                |
| default      | temp004              |                       | col41             | int                          |
| default      | temp004              |                       | col51             | decimal(10,2)                |
+--------------+----------------------+-----------------------+-------------------+------------------------------+

Таблицы Metastore, указанные в запросе:

DBS: Details of databases/schemas.
TBLS: Details of tables.
COLUMNS_V2: Details about columns.
SDS: Details about storage.
TABLE_PARAMS: Details about table parameters (key-value pairs)
...