前言
在对hive SQL进行解析,以及跟踪hive job与yarn application的关系时,
还有对hive数据仓库进行数据治理时,需要对hive元数据有个较为清楚的认识,
进而更好的在解析SQL时,对数据访问进行权限控制;
在资源管理时,进行资源归属;
在数据生命周期管理时对其进行有效管理
hive元数据库、表
- hive元数据是有mysql存储的,如果默认安装则是hive数据库,里面有一系列跟数据表、分区,数据倾斜,数据存储、压缩等相关的数据表
version
- 存储hive版本信息
database相关
dbs
- 存储hive 数据库的hdfs目录,编号等信息
DATABASE_PARAMS
- 该表存储数据库的相关参数,在CREATE DATABASE时候用WITH DBPROPERTIES(property_name=property_value, …)指定的参数,会存在该表中;其主键以为dbs的主键
table 相关
tlbs
- 存储hive数据表的所属库,owner,创建时间,最后访问时间[默认无效,需修改源码生效]等信息
TABLE_PARAMS
- 该表存储表/视图的属性信息,创建表时的tbl_properties
TBL_PRIVS
-该表存储表/视图的授权信息
partions相关
partitions
- 存储hive分区表的分区记录,访问时间,table_id等
PARTITION_KEYS
-该表存储分区的字段信息
PARTITION_KEY_VALS
-该表存储分区字段值
PARTITION_PARAMS
-该表存储分区的属性信息
存储相关
SDS
- 该表保存文件存储的基本信息,如输入、输出格式、压缩格式、是否压缩、序列化等信息。TBLS表中的SD_ID与该表关联,可以获取Hive表的存储信息。
SD_PARAMS
- 该表存储Hive存储的属性信息,在创建表时候使用STORED BY ‘storage.handler.class.name’ [WITH SERDEPROPERTIES (…)指定。
SERDES
- 该表存储序列化使用的类信息
SERDE_PARAMS
- 该表存储序列化的一些属性、格式等信息,比如:行、列分隔符
其他
- 其他有诸如 索引相关信息,数据倾斜,权限管理,分区统计、授权等,不一一赘述