Любой способ получить ограничения таблицы Hive
Kerberized HDP-2.6.3.0.
Таблица имеет "Id" в качестве первичного ключа и "DepartmentId" в качестве внешнего ключа:
+---------------------------------------------------------+-------------------------------------------------------------------------+-----------------------------+--+
| col_name | data_type | comment |
+---------------------------------------------------------+-------------------------------------------------------------------------+-----------------------------+--+
| # col_name | data_type | comment |
| | NULL | NULL |
| id | int | Surrogate PK is not fun |
| firstname | string | |
| lastname | string | |
| dob | date | |
| departmentid | int | |
| | NULL | NULL |
| # Detailed Table Information | NULL | NULL |
| Database: | group_hadoopdeveloper | NULL |
| Owner: | ojoqcu | NULL |
| CreateTime: | Fri Nov 24 13:39:02 UTC 2017 | NULL |
| LastAccessTime: | UNKNOWN | NULL |
| Retention: | 0 | NULL |
| Location: | hdfs://devhadoop/apps/hive/warehouse/group_hadoopdeveloper.db/employee | NULL |
| Table Type: | MANAGED_TABLE | NULL |
| Table Parameters: | NULL | NULL |
| | COLUMN_STATS_ACCURATE | {\"BASIC_STATS\":\"true\"} |
| | numFiles | 0 |
| | numRows | 0 |
| | rawDataSize | 0 |
| | totalSize | 0 |
| | transient_lastDdlTime | 1511530742 |
| | NULL | NULL |
| # Storage Information | NULL | NULL |
| SerDe Library: | org.apache.hadoop.hive.ql.io.orc.OrcSerde | NULL |
| InputFormat: | org.apache.hadoop.hive.ql.io.orc.OrcInputFormat | NULL |
| OutputFormat: | org.apache.hadoop.hive.ql.io.orc.OrcOutputFormat | NULL |
| Compressed: | No | NULL |
| Num Buckets: | -1 | NULL |
| Bucket Columns: | [] | NULL |
| Sort Columns: | [] | NULL |
| Storage Desc Params: | NULL | NULL |
| | serialization.format | 1 |
| | NULL | NULL |
| # Constraints | NULL | NULL |
| | NULL | NULL |
| # Primary Key | NULL | NULL |
| Table: | group_hadoopdeveloper.employee | NULL |
| Constraint Name: | pk_203923149_1511530742932_0 | NULL |
| Column Names: | id | |
| | NULL | NULL |
| # Foreign Keys | NULL | NULL |
| Table: | group_hadoopdeveloper.employee | NULL |
| Constraint Name: | fk_employee_department | NULL |
| Parent Column Name:group_hadoopdeveloper.department.id | Column Name:departmentid | Key Sequence:1 |
| | NULL | NULL |
+---------------------------------------------------------+-------------------------------------------------------------------------+-----------------------------+--+
Я пробовал следующие способы получения ограничений:
- Hive JDBC - может извлекать первичные ключи, но внешние ключи не реализованы в драйвере
WebHCat: http://l4283t.sss.se.com:50111/templeton/v1/ddl/database/group_hadoopdeveloper/table/employee
{"columns": [{"name": "id", "type": "int", "comment": "Суррогатное ПК - это не весело"},{"name":"firstname","type":" строка "}, {" имя ":" фамилия " "тип": "строка"}, { "имя": "д.р.", "тип": "дата"}, { "имя": "DepartmentID"," типа ":" ИНТ "}]," база данных ":"group_hadoopdeveloper","стол": "Сотрудник"}
Все еще борется с реализацией HiveMetaStoreClient для получения внешних ключей, но я не уверен
У меня есть следующие вопросы:
- Где и как хранятся эти ограничения в метасольве Hive
- Есть ли способ извлечь (НЕ из Билайна, но те должны быть доступны для внешних программ) эти ограничения