Hive是否支持information_schema?如何查询表/列元数据?
Hive中查询表和列元数据的方法
Hive不存在像MSSQL、PostgreSQL这类传统关系型数据库中的information_schema视图,这就是你执行select * from information_schema.tables;时触发报错的原因。以下是Hive中查询表和列元数据的常用方法:
一、查询表级元数据
1. 使用原生SHOW命令
- 查看当前数据库下的所有表:
SHOW TABLES; - 查看指定数据库下的所有表:
SHOW TABLES IN your_database_name; - 查看单表的详细元数据(含存储位置、格式、所有者等):
DESCRIBE EXTENDED your_table_name; - 查看格式化后的友好输出:
DESCRIBE FORMATTED your_table_name;
2. 查询Hive元数据表
Hive的元数据存储在专属的元数据库中(通常名为hive_metastore,具体名称取决于部署配置),有权限的话可直接查询内部表获取批量表信息:
SELECT tbl_name, db_name, owner, create_time FROM hive_metastore.tbls;
二、查询列级元数据
1. 使用原生DESCRIBE命令
- 查看指定表的所有列名与类型:
DESCRIBE your_table_name; - 查看列的详细元数据(含注释、类型详情等):
DESCRIBE EXTENDED your_table_name; - 查看格式化后的友好输出:
DESCRIBE FORMATTED your_table_name;
2. 查询元数据表
通过关联元数据表获取指定表的列信息:
SELECT c.col_name, c.type_name, c.comment, t.tbl_name FROM hive_metastore.columns c JOIN hive_metastore.tbls t ON c.tbl_id = t.tbl_id WHERE t.db_name = 'your_database_name' AND t.tbl_name = 'your_table_name';
内容的提问来源于stack exchange,提问作者Md Kaif Khan
相关产品推荐
相关产品推荐

