hive元数据库理解
在hive2.1.1 里面一共有59张表
表1 VERSION
select * from VERSION limit 2;
version表存hive的版本信息,该表中数据只有一条,如果存在多条,会造成hive启动不起来。
表2 DBS
select * from DBS;
DB_ID:数据库ID,DESC:数据库描述,DB_LOCATION_URI:数据HDFS路径,NAME:数据库名,OWNER_NAME:数据库所有者用户名,OWNER_TYPE:所有者角色。
表3 DATABASE_PARAMS
select * from DATABASE_PARAMS
该表存储数据库的相关参数,在CREATE DATABASE时候用 WITH DBPROPERTIES (property_name=property_value, …)指定的参数。
表4 TBLS
select * from TBLS limit 3;
bls表显示表的详细信息,tbl_id为主键,唯一表示该表,里面存放表的创建时间create_time,表所属的库id(DB_ID),表的拥有着(OWNER),SD_ID ,表的名称TBL_NAME,表的类型(TBL_TYPE)表示内部表还是外部表.
表5
select * from table_params
如表的最后一次ddl时间,表的注释,如果是非分区表还有该表对应着HDFS文件个数,大小.(通过TBL_ID 来关联表)
表6 TBL_PRIVS
select * from TBL_PRIVS
如表的最后一次ddl时间,表的注释,如果是非分区表还有该表对应着HDFS文件个数,大小
Hive文件存储信息相关的元数据表
SDS:
该表对应的文件存储的基本信息,如INPUT_FORMAT、OUTPUT_FORMAT、是否压缩等。TBLS表中的SD_ID与该表关联,可以获取Hive表的存储信息
SDS、SD_PARAMS、SERDES、SERDE_PARAMS,由于HDFS支持的文件格式很多,而建Hive表时候也可以指定各种文件格式,Hive在将HQL解析成MapReduce时候,需要知道去哪里,使用哪种格式去读写HDFS文件,而这些信息就保存在这几张表中.