Hive 的元数据信息通常存储在关系型数据库中,常用MySQL数据库作为元数据库管理。上一篇hive的安装也是将元数据信息存放在MySQL数据库中。
Hive的元数据信息在MySQL数据中有57张表
一、存储Hive版本的元数据表(VERSION)
VERSION -- 查询版本信息
该表比较简单,但很重要。
VER_ID
SCHEMA_VERSION
VERSION_COMMENT
Hive版本
0.13.0
Set by MetaStore
如果该表出现问题,根本进入不了Hive-Cli。
比如该表不存在,当启动Hive-Cli时候,就会报错”Table ‘hive.version’ doesn’t exist”。
二、Hive数据库相关的元数据表(DBS、DATABASE_PARAMS)
1、DBS
DBS -- 存储Hive中所有数据库的基本信息
DBS和DATABASE_PARAMS这两张表通过DB_ID字段关联。
三、Hive表和视图相关的元数据表
主要有TBLS、TABLE_PARAMS、TBL_PRIVS,这三张表通过TBL_ID关联。
1、TBLS
该表中存储Hive表、视图、索引表的基本信息。
VIEW_EXPANDED_TEXT
视图的详细HQL语句
select `lxw1234`.`pt`, `lxw1234`.`pcid` from `liuxiaowen`.`lxw1234`
VIEW_ORIGINAL_TEXT
视图的原始HQL语句
select * from lxw1234
2、
TABLE_PARAMS
该表存储表/视图的属性信息。
元数据表字段
TBL_ID
PARAM_KEY
totalSize、numRows、EXTERNAL
PARAM_VALUE
970107336、21231028、TRUE
3、
TBL_PRIVS
该表存储表/视图的授权信息
元数据表字段
TBL_GRANT_ID
CREATE_TIME
1436320455
GRANT_OPTION
GRANTOR
授权执行用户
liuxiaowen
GRANTOR_TYPE
授权者类型
PRINCIPAL_NAME
被授权用户
username
PRINCIPAL_TYPE
被授权用户类型
TBL_PRIV
Select、Alter
TBL_ID
22,对应TBLS表中的TBL_ID
四、Hive文件存储信息相关的元数据表
主要涉及SDS、SD_PARAMS、SERDES、SERDE_PARAMS
由于HDFS支持的文件格式很多,而建Hive表时候也可以指定各种文件格式,Hive在将HQL解析成MapReduce时候,需要知道去哪里,使用哪种格式去读写HDFS文件,而这些信息就保存在这几张表中。
1、SDS
该表保存文件存储的基本信息,如INPUT_FORMAT、OUTPUT_FORMAT、是否压缩等。
TBLS表中的SD_ID与该表关联,可以获取Hive表的存储信息。
六、Hive表分区相关的元数据表
主要涉及PARTITIONS、PARTITION_KEYS、PARTITION_KEY_VALS、PARTITION_PARAMS
1、PARTITIONS
该表存储表分区的基本信息。