前言

在对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的主键

hive 元数据 hive 元数据分割_序列化

table 相关

tlbs

  • 存储hive数据表的所属库,owner,创建时间,最后访问时间[默认无效,需修改源码生效]等信息

TABLE_PARAMS

  • 该表存储表/视图的属性信息,创建表时的tbl_properties

TBL_PRIVS

-该表存储表/视图的授权信息

hive 元数据 hive 元数据分割_数据倾斜_02

partions相关

partitions

  • 存储hive分区表的分区记录,访问时间,table_id等

PARTITION_KEYS

-该表存储分区的字段信息

hive 元数据 hive 元数据分割_序列化_03

PARTITION_KEY_VALS

-该表存储分区字段值

hive 元数据 hive 元数据分割_序列化_04

PARTITION_PARAMS

-该表存储分区的属性信息

hive 元数据 hive 元数据分割_序列化_05

存储相关

SDS

  • 该表保存文件存储的基本信息,如输入、输出格式、压缩格式、是否压缩、序列化等信息。TBLS表中的SD_ID与该表关联,可以获取Hive表的存储信息。

SD_PARAMS

  • 该表存储Hive存储的属性信息,在创建表时候使用STORED BY ‘storage.handler.class.name’ [WITH SERDEPROPERTIES (…)指定。

SERDES

  • 该表存储序列化使用的类信息

SERDE_PARAMS

  • 该表存储序列化的一些属性、格式等信息,比如:行、列分隔符

其他

  • 其他有诸如 索引相关信息,数据倾斜,权限管理,分区统计、授权等,不一一赘述