Может показаться странным, но мне нужно сравнить список имен таблиц и столбцов, хранящихся в таблице кустов, со столбцами фактических таблиц и получить результат сравнения. Запрашивать улей metastore не возможно для меня. Похоже, экспорт 'show columns in db.tbl' в файл и сравнение его с таблицей поиска возможны, но я смотрю, можно ли добиться результата, используя только запрос улья. Есть идеи?
Пример таблицы поиска схемы улья:
+----------+-----------+-----------------------------+------------------+
| tbl_name | col_name | type | desc |
+----------+-----------+-----------------------------+------------------+
| mario | issue_id | timestamp without time zone | blank |
+----------+-----------+-----------------------------+------------------+
| mario | create_id | bigint | dob |
+----------+-----------+-----------------------------+------------------+
| mario | status | bigint | some info |
+----------+-----------+-----------------------------+------------------+
| mario | location | bigint | some other info |
+----------+-----------+-----------------------------+------------------+
| luigi | issue_id | character varying(65535) | some more info |
+----------+-----------+-----------------------------+------------------+
| luigi | cust_id | bigint | enough info here |
+----------+-----------+-----------------------------+------------------+
| yoshi | status | int | blank |
+----------+-----------+-----------------------------+------------------+
| yoshi | property | int | blank |
+----------+-----------+-----------------------------+------------------+
примеры таблиц с именами столбцов-
mario: luigi: yoshi:
issue_id issue_id status
create_id cust_id
status
health
quality
Я ищу вывод, который даст флаг существует / не существует для каждого col_name в таблице поиска. (обратите внимание, что в реальных таблицах могут быть столбцы, которые могут отсутствовать при поиске, но мы можем игнорировать это)
Итак, ожидаемый результат примерно такой:
+----------+-----------+-----------------------------+------------------+--------------+
| tbl_name | col_name | type | desc | presence |
+----------+-----------+-----------------------------+------------------+--------------+
| mario | issue_id | timestamp without time zone | blank | exists |
+----------+-----------+-----------------------------+------------------+--------------+
| mario | create_id | bigint | dob | exists |
+----------+-----------+-----------------------------+------------------+--------------+
| mario | status | bigint | some info | exists |
+----------+-----------+-----------------------------+------------------+--------------+
| mario | location | bigint | some other info | do not exist |
+----------+-----------+-----------------------------+------------------+--------------+
| luigi | issue_id | character varying(65535) | some more info | exists |
+----------+-----------+-----------------------------+------------------+--------------+
| luigi | cust_id | bigint | enough info here | exists |
+----------+-----------+-----------------------------+------------------+--------------+
| yoshi | status | int | blank | exists |
+----------+-----------+-----------------------------+------------------+--------------+
| yoshi | property | int | blank | do not exist |
+----------+-----------+-----------------------------+------------------+--------------+
ОБНОВЛЕНИЕ: в конечном итоге я прошел более длинный путь, извлек список существующих столбцов таблицы с помощью цикла в файл и затем загрузил во внешнюю таблицу. (если кто-то пытается добиться того же)