【转载】Hive 元数据表简介

Hive 元数据表简介

作为Hive基础中的基础,Hive中的元数据表还是很有必要mark一下的,hive元数据可以存在Mysql或者postgreSQL等关系型数据库中。元数据表结构基础,不同的文章博客大多大同小异,基本都贴合官网描述,这里直接Mark一下,方便随手对照查看和平时使用。
内容转自hive 元数据表理解,直接对照官网或者参考下面博客:
Hive学习之路 (三)Hive元数据信息对应MySQL数据库表
Hive 元数据表结构详解
Hive的元数据表结构详解
Hive 元数据库表信息
分析Hive表和分区的统计信息(Statistics)
系列文章: Hive系列学习

转自 hive 元数据表理解

hive的元数据存在于mysql中,在mysql中会有一个hive库,存放相应的表,一共53张表。

1、version表

 version表存hive的版本信息,该表中数据只有一条,如果存在多条,会造成hive启动不起来。

2、Hive数据库相关的元数据表(DBS、DATABASE_PARAMS)

dbs表:

DB_ID:数据库ID,DESC:数据库描述,DB_LOCATION_URI:数据HDFS路径,NAME:数据库名,OWNER_NAME:数据库所有者用户名,OWNER_TYPE:所有者角色。

3、Hive表和视图相关的元数据表

主要有TBLS、TABLE_PARAMS、TBL_PRIVS,这三张表通过TBL_ID关联。

tbls表

tbls表显示表的详细信息,tbl_id为主键,唯一表示该表,里面存放表的创建时间create_time,表所属的库id(DB_ID),表的拥有着(OWNER),SD_ID ,表的名称TBL_NAME,表的类型(TBL_TYPE)表示内部表还是外部表,上图所示为一个内部表。

其中TBL_ID为主键,其中还包括三个外键SD_ID,DB_ID,LIKE_TARGET_ID。

table_params表

该表存放表的一些额外信息,

 

 如表的最后一次ddl时间,表的注释,如果是非分区表还有该表对应着HDFS文件个数,大小,如上图21为非分区表。

4、Hive文件存储信息相关的元数据表

主要涉及SDS、SD_PARAMS、SERDES、SERDE_PARAMS,由于HDFS支持的文件格式很多,而建Hive表时候也可以指定各种文件格式,Hive在将HQL解析成MapReduce时候,需要知道去哪里,使用哪种格式去读写HDFS文件,而这些信息就保存在这几张表中。

SDS:

该表对应的文件存储的基本信息,如INPUT_FORMAT、OUTPUT_FORMAT、是否压缩等。TBLS表中的SD_ID与该表关联,可以获取Hive表的存储信息。

SD_ID 为存储信息id,CD_ID为字段信息id,INPUT_FORMAT为文件输入格式,IS_COMPERSEED:该文件是否压缩,IS_STOREDASSUBDIRECTORIES为是否以子目录存储,LOCATION:为文件对应的HDFS目录,NUM_BUCKETS为分桶数量。OUTPUT_FORMAT:为文件输出格式,SERDE_ID为序列化类ID

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

表字段

说明

示例数据

SD_ID

存储配置ID

41

PARAM_KEY

存储属性名

 

PARAM_VALUE

存储属性值

 

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

表字段

说明

示例数据

SERDE_ID

序列化类配置ID

41

NAME

序列化类别名

NULL

SLIB

序列化类

org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe

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

表字段

说明

示例数据

SERDE_ID

序列化类配置ID

41

PARAM_KEY

属性名

field.delim

PARAM_VALUE

属性值

|

 

5、Hive表分分区相关的元数据表

主要涉及PARTITIONS、PARTITION_KEYS、PARTITION_KEY_VALS、PARTITION_PARAMS

partitions表:

PART_ID:分区ID,CREATE_TIME:分区创建时间,LAST_ACCESS_TIME:最后一次访问时间,PART_NAME:分区名,SD_ID:分区存储ID,TBL_ID:表ID

partition_params表:

 numfiles:该分区下的文件数,numRows:该分区下记录数,rawDataSize是指原始数据的大小,totalSize是指占用HDFS存储空间大小,transient_lastDdlTime最后一次ddl时间。

partition_keys表:

TBL_ID:表ID,PKEY_COMMENT:分区字段说明,PKEY_NAME:分区字段名,PKEY_TYPE:分区字段类型,INTEGER_IDX:分区字段顺序 。

partition_key_vals表:

PART_ID:分区ID,PART_KEY_VAL:分区字段值,INTEGER_IDX:分区字段值顺序 

6、字段相关的元数据表 cds和columns_v2 ,通过CD_ID关联

CD_ID:字段信息ID,COMMENT:字段注释,COLUMN_NAME:字段名,TYPE_NAME:字段类型,INTEGER_IDX:字段顺序 

7、桶元数据表 bucketing_cols

别的后续再补充。

参考博客:https://blog.csdn.net/haozhugogo/article/details/73274832

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值