NightPxy 个人技术博客

Hive 元数据梳理

Posted on By NightPxy

MetaStore 关系图

hive-metastore-关系图

DataBase系

dbs

数据库相关信息-主表
DB_ID为其主键 ,同时也是与DB相关的database_params,db_privs,tbls,funcs,Ffunc_ru表外键

字段名 描述
DB_ID 数据库的唯一KEY_ID
DESC 数据库的描述
DB_LOCATION_URI 数据库的存储地址
NAME 数据库名
OWNER_NAME 数据库归属用户
OWNER_TYPE 数据库归属用户的类型

database_params

记录数据库的扩展信息.本身是一个数据库主键下的键值对结构
外键关联 dbs.DB_ID

db_privs

记录数据库的权限控制信息.
外键关联 dbs.DB_ID

Table 系

tbls

表相关信息-主表
表是必须归属数据库的,所以 tbls.DB_ID 外键关联 dbs.DB_ID
同时表键(TBL_ID),也是一下表相关信息外键

  • 表附属信息table_params,tbl_col_privs,tbl_privs,tab_col_stats,
  • 表索引相关信息 idxs
  • 表分区相关信息 partitions,partition_keys
  • 表的文件相关信息 sds
字段名 描述
TBL_ID 表的唯一KEY_ID
CREATE_TIME 表创建时间
DB_ID 外键关联表归属的数据库(dbs.DB_ID)
LAST_ACCESS_TIME 表的上次访问时间
OWNER 表归属用户
RETENTION 保留字段:0
SD_ID 外键存储表文件系相关信息(sds.SD_ID)???多个
TBL_NAME 表名
TBL_TYPE 表类型:外部表(EXTERNAL_TABLE),内部表(MANAGED_TABLE),INDEX_TABLE,VIRTUAL_VIEW
VIEW_EXPANDED_TEXT 视图的详细HQL语句
VIEW_ORIGINAL_TEXT 视图的原始HQL语句

table_params

记录表的扩展信息.本身是一个表主键下的键值对结构
外键关联 tbls.TBL_ID

常见的表属性键

描述
transient_lastDdlTime 表最后修改时间
numFiles 表文件数
numRows 表数据总行数
totalSize 总占用HDFS存储空间大小
rawDataSize 原始数据的大小
EXTERNAL true/false 标识是否是外部表
COLUMN_STATS_ACCURATE 列数据准确

tbl_privs / tbl_col_privs

表权限相关信息 / 表的列权限相关信息 都外键关联 tbls.TBL_ID

文件Schema

sds

文件系相关信息主表.
在Hadoop中的数据主体是文件,所以设计思路为 表->文件->字段

描述
SD_ID 文件唯一KEY_ID
CD_ID 外键关联cds.CD_ID
INPUT_FORMAT 文件输入格式.如:org.apache.hadoop.mapred.TextInputFormat
IS_COMPRESSED 文件是否被压缩
IS_STOREDASSUBDIRECTORIES 是否以子目录存储
LOCATION HDFS路径
NUM_BUCKETS 分桶数量
OUTPUT_FORMAT 文件输出格式.如:org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
SERDE_ID 序列化类ID 外键关联 serdes.SERDE_ID

sd_params

文件存储相关配置. 外键关联文件主表 sds.SD_ID
一般来自与 STORED BY ‘storage.handler.class.name’ [WITH SERDEPROPERTIES (…)指定

columns_v2

描述
CD_ID 文件唯一KEY_ID
COMMENT 字段描述
COLUMN_NAME 字段名称
TYPE_NAME 字段数据类型
INTEGER_IDX 文件内字段顺序

https://www.cnblogs.com/1130136248wlxk/articles/5517909.html https://blog.csdn.net/qq_32252917/article/details/78458115