当前位置: 移动技术网 > IT编程>开发语言>Java > Hive metastore表结构

Hive metastore表结构

2020年07月19日  | 移动技术网IT编程  | 我要评论
目录Hive metastore表结构设计分析Hive metastore整体代码分析及详解Hive metastore表结构设计分析  Hive metastore主要是描述数据的属性的信息。它是用来支持如存储位置、历史数据、资源查找、文件记录等功能。DBS表 Columns:DB_ID、DESC、DB_LOCATION_URI、NAME、OWNER_NAME、OWNER_TYPEDBS 表记录基本的db信息,其中DB_ID为其主键,同时也是FUNC_RU、FUNCS、DB_PRIVS、DA

Hive metastore表结构设计分析

  Hive metastore主要是描述数据的属性的信息。它是用来支持如存储位置、历史数据、资源查找、文件记录等功能。
在这里插入图片描述

DBS表
记录数据库的信息

字段 解释
DB_ID 数据库的编号,默认的数据库编号为1,如果创建其他数据库的时候,这个字段会自增,主键
DESC 对数据库进行一个简单的介绍
DB_LOCATION_URI 数据库的存放位置,默认是存放在hdfs://ip:9000/user/hive/warehouse,如果是其他数据库,就在后面添加目录,默认位置可以通过参数hive.metastore.warehouse.dir来设置
NAME 数据库的名称
OWNER_NAME 数据库所有者名称
OWNER_TYPE 数据库所有者的类型

在这里插入图片描述

  • DBS 表记录基本的db信息,其中DB_ID为其主键,同时也是FUNC_RU、FUNCS、DB_PRIVS、DATABASE_PARAMS、以及TBLS的外键。一般来说,在hive meta初始化时都会自动创建一个名叫default的库,随后通过业务发展以及数据治理等需求,可进行不同业务域库的划分。
  • FUNC 表是用来存储udf的基本信息,一个UDF只能对应一个库下的表。FUNC_RU表,用于存储该udf的类型及指向的路径。
  • DB_PRIVS 表记录该DB下的权限记录信息(因为现在更多的集成开源的类似于sentry、range等成熟的权限框架)。
  • DATABASE_PARAMS 表记录DB的一些扩展信息,便于进行特殊属性的扩展。
  • TBLS 表自然是记录该DB下的所有Table信息。对应唯一的DB_ID。

TBLS表
记录数据表的信息

字段 解释
TBL_ID 在hive中创建表的时候自动生成的一个id,用来表示,主键
CREATE_TIME 创建的数据表的时间,使用的是时间戳
DB_ID 这个表是在哪个数据库里面
LAST_ACCESS_TIME 最后一次访问的时间戳
OWNER 数据表的所有者
RETENTION 保留时间
SD_ID 标记物理存储信息的id
TBL_NAME 数据表的名称
TBL_TYPE 数据表的类型,MANAGED_TABLE, EXTERNAL_TABLE, VIRTUAL_VIEW, INDEX_TABLE
VIEW_EXPANDED_TEXT 展开视图文本,非视图为null
VIEW_ORIGINAL_TEXT 原始视图文本,非视图为null

在这里插入图片描述
  tbl_id为TBLS的主键,同时也是TABLE_PARAMS、TBL_COL_PRIVS、IDXS、TBL_PRIVS、SDS、PARTITIONS、PARTITION_KEYS、TAB_COL_STATS表的外键。
  每个TBLS都对应唯一的DB_ID,取决于你在哪个db下创建的表。在创建表写入meta的同时,也会创建相应的物理路径。同时会在SDS表中加入DDL时设置的input output、表的location以及SERDE信息。
  TBL_PRIVS、TBL_COL_PRIVS表记录该Hive表的表及列权限认证信息。PARTITIONS表记录该表的DDL分区的信息,对于PARTITION_KEYS以及PARTITION_VALUES都是用于PartName的拼接获取。

PARTITIONS表
  PARTITIONS表,它是partition分区存储的元数据信息。Partition表在metastore中是相当重要的表,关系到partition的元数据存取。

字段 解释
PART_ID 分区的编号
CREATE_TIME 创建分区的时间
LAST_ACCESS_TIME 最近一次访问时间
PART_NAME 分区的名字
SD_ID 存储描述的id
TBL_ID 数据表的id

在这里插入图片描述
  PART_ID为PARTITIONS表的主键,同时也是PART_COL_STATS、PART_PRIVS、PARTITION_KEY_VALS、PARTITION_PARAMS、DATABASE_PARAMS表的外键。

SDS表
此对象包含有关属于表的数据的物理存储的所有信息,数据表的存储描述

字段 解释
SD_ID 主键
CD_ID 数据表编号
INPUT_FORMAT 数据输入格式
IS_COMPRESSED 是否对数据进行了压缩
IS_STOREDASSUBDIRECTORIES 是否进行存储在子目录
LOCATION 数据存放位置
NUM_BUCKETS 分桶的数量
OUTPUT_FORMAT 数据的输出格式
SERDE_ID 序列和反序列的信息

在这里插入图片描述
  SDS表主要包含计算引擎运行时需要的input与output 、location路径以及序列化的class信息。SD_ID为该表的主键,同时也是PARTITIONS、BUCKETING_COLS、SKEWD_COL_NAMES、SD_PARAMS、SORT_COLS、SKEWED_VALUES、IDXS的外键。

本文地址:https://blog.csdn.net/ThreeAspects/article/details/107393204

如您对本文有疑问或者有任何想说的,请 点击进行留言回复,万千网友为您解惑!

相关文章:

验证码:
移动技术网