Hive元数据在MySQL的存储逻辑及关系

 

2017年11月01日 10:51:51 A_ChunUnique 阅读数:1037收起

个人分类: HiveMySQL

在大数据中,很多情况下是将hive的元数据存放在mysql数据库中,通过hive配置的连接字符串:

       

               javax.jdo.option.ConnectionURL

               jdbc:mysql://localhost:3306/hive3?createDatabaseIfNotExist=true

       

能确认连接的mysql的哪个库。

现在分析下常用元数据中表有什么关联关系

 

1、hive版本的元数据表(version)

字段

含义

VER_ID

id主键

1

SCHEMA_VERSION

hive 版本

1.1.0

VERSION_COMMENT

版本说明

Set by MetaStore [email protected]

如果该表出现问题,根本进入不了Hive-Cli。

比如该表不存在,当启动Hive-Cli时候,就会报错”Table ‘hive.version’ doesn’t exist”。

 

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

DBS:hive中所有数据库的基本信息

字段

含义

DB_ID

数据库ID

6

DESC

数据库描述

wxk

DB_LOCATION_URI

数据库HDFS路径

hdfs://hadoop002:8020/user/hive/warehouse/wxk.db

NAME

Hive数据库名

wxk

OWNER_NAME

Hive数据库所有者用户名

root

OWNER_TYPE

Hive所有者角色

USER

 

DATABASE_PARAMS:

 

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

TBLS 存储 hive 表、视图、索引表的基本信息

字段

含义

TBL_ID

表ID

43

CREATE_TIME

创建时间

1506333442

DB_ID

数据库ID

6

LAST_ACCESS_TIME

上次访问时间

0

OWNER

所有者

root

RETENTION

保留字段

0

SD_ID

序列化配置信息

53  ;对应SDS表中的SD_ID

TBL_NAME

表名

dept

TBL_TYPE

表类型

MANAGED_TABLE 或者 EXTERNAL_TABLE、INDEX_TABLE、VIRTUAL_VIEW

VIEW_EXPANDED_TEXT

视图的详细HQL

NULL

VIEW_ORIGINAL_TEXT

视图的原始HQL

NULL

 

TABLE_PARAMS 存储 表、视图 的属性信息

字段

含义

TBL_ID

表ID

43 ;对应TBLS的tbl_id

PARAM_KEY

表属性名

numFiles、totalSize、transient_lastDdlTime

PARAM_VALUE

表属性值

1、35、1506333450

 

TBL_PRIVS

 

4、Hive 文件存储信息相关的元数据SDS、SD_PARAMS、SERDES、SERDE_PARAMS

SDS 存储文件存储的基本信息:

字段

含义

SD_ID

存储信息ID

53 对应tbl_id

CD_ID

字段信息ID

43 对应column_v2 的CD_ID

INPUT_FORMAT

文件输入格式

org.apache.hadoop.mapred.TextInputFormat

IS_COMPRESSED

是否压缩

0

IS_STOREDASSUBDIRECTORIES

是否以子目录存储

0

LOCATION

HDFS路径

hdfs://hadoop002:8020/user/hive/warehouse/wxk.db/dept

NUM_BUCKETS

分桶

-1

OUTPUT_FORMAT

文件输出格式

org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat

SERDE_ID

序列化类ID

53 ,对应SERDES 的 SERDE_ID

 

SD_PARAMS 空

 

SERDES

字段

含义

SERDE_ID

序列化类配置ID

53 ,对应SDS的 SERDE_ID

NAME

序列化类别名

NULL

SLIB

序列化类

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

 

SERDE_PARAMS 存储序列化的一些属性、格式信息,比如行、列

字段

含义

SERDE_ID

序列化配置ID

53 ,对应SDS的 SERDE_ID

PARAM_KEY

属性名

field.delim 分列、serialization.format

PARAM_VALUE

属性值

 

 

5、Hive 表字段相关元数据表COLUMNS_V2

COLUMNS_V2 存储对应的字段信息

字段

含义

CD_ID

字段信息ID

43 对应SDS 表CD_ID

COMMENT

字段注释

NULL

COLUMN_NAME

字段名

deptno、deptname、depadd

TYPE_NAME

字段类型

int、string、string

INTEGER_IDX

字段顺序

0、1、2

 

6、Hive表分区相关的元数据表 PARTITIONS、PARTITION_KEYS、PARTITION_KEY_VALS、PARTITION_PARAMS

PARTITIONS 存储分区的基本信息

字段

含义

PART_ID

分区ID

14、15、16、17

CREATE_TIME

分区创建时间

1506226696

LAST_ACCESS_TIME

最后一次访问时间

0

PART_NAME

分区名

deptno=10、deptno=20、deptno=30、deptno=__HIVE_DEFAULT_PARTITION__

SD_ID

分区存储ID

15、16、17、18  对应SDS表的SD_ID

TBL_ID

表ID

6 对应TBLS的tbl_id

 

PARTITION_KEYS 存储分区的字段信息

字段

含义

TBL_ID

表ID

6 对应TBLS的tbl_id

PKEY_COMMENT

分区字段名说明

null

PKEY_NAME

分区字段名

deptno

PKEY_TYPE

分区字段类型

int

INTEGER_IDX

分区字段顺序

0

 

PARTITION_KEY_VALS 存储分区字段值

字段

含义

PART_ID

分区ID

17、16、15、14 对应PARTITIONS 的PART_ID

PART_KEY_VAL

分区字段值

10、20、30、__HIVE_DEFAULT_PARTITION__

INTEGER_IDX

分区字段顺序

0

 

PARTITION_PARAMS 存储分区的属性信息

字段

含义

PART_ID

分区ID

17

PARAM_KEY

分区属性名

numFiles、numRows、rawDataSize、totalSize、transient_lastDdlTime

PARAM_VALUE

分区属性值

1、3、127、130、1506226696

 

从以上这些表中,可以看到这些表由几个关键字作为连接的:

DB_ID 、TBL_ID、SD_ID、CD_ID、SERDE_ID 、PART_ID

 

各表关系图【主键】:

Hive元数据在MySQL的存储逻辑及关系_第1张图片

 

你可能感兴趣的:(hive)