cdh版本的hive元数据表可能和apache hive有一定区别,不过大同小异,在这里介绍 1.1.0-cdh5.12.0版本的hive元数据表。hive元数据存储在mysql的metastore库里。以_PRIVS结尾的权限信息相关表都需要在hive里使用grant授权才会产生,如果结合sentry来做权限信息,相关数据不会保存在这里,而是保存到了sentry的元数据库里。要想做元数据管理,可以通过以下这些表做关联查询查到需要的信息。
1. 常用表概览
表名 | 描述 |
BUCKETING_COLS | 表bucket字段信息 |
CDS | 表字段id,单个字段,CD_ID |
COLUMNS_V2 | 表字段相关的信息 |
DATABASE_PARAMS | 数据库的属性信息 |
DBS | 数据库信息 |
DB_PRIVS | 数据库权限信息,通过GRANT语句对数据库授权后,将会在这里存储 |
FUNCS | 用户注册的函数信息 |
FUNC_RU | 用户注册函数的资源信息,比如jar包等 |
GLOBAL_PRIVS | 全局权限信息 |
IDXS | 索引相关的信息 |
INDEX_PARAMS | 索引相关的属性信息 |
PARTITIONS | 分区信息 |
PARTITION_KEYS | 分区字段列 |
PARTITION_KEY_VALS | 分区的值 |
PARTITION_PARAMS | 分区属性信息,比如文件数、文件大小、记录数等 |
PART_COL_PRIVS | 分区字段的权限信息 |
PART_COL_STATS | 分区字段的统计信息 |
PART_PRIVS | 分区的权限信息 |
ROLES | 角色表 |
ROLE_MAP | 角色映射表 |
SDS | 表存储的相关信息,比如文件格式、位置、压缩、序列化等信息 |
SD_PARAMS | 表存储的属性,STORED BY ‘storage.handler.class.name’ [WITH SERDEPROPERTIES (…)指定。 |
SEQUENCE_TABLE | sqeuence相关信息 |
SERDES | 列化反序列化使用的类信息 |
SERDE_PARAMS | 序列化反序列化的属性 |
SKEWED_COL_NAMES | 倾斜列名信息,建表时指定了SKEWED BY (col_name, col_name, ...) -- (Note: Available in Hive 0.10.0 and later)] ON ((col_value, col_value, ...), (col_value, col_value, ...), ...) |
SKEWED_COL_VALUE_LOC_MAP | 倾斜列的位置映射 |
SKEWED_STRING_LIST | 保存了SKEWED_STRING_LIST_VALUES的id值 |
SKEWED_STRING_LIST_VALUES | 保存了倾斜列的值 |
SKEWED_VALUES | 保存了SDS的SD_ID和SKEWED_STRING_LIST_VALUES的STRING_LIST_ID映射关系 |
SORT_COLS | 排序字段,包含字段名、排序方式等 |
TABLE_PARAMS | 表属性相关信息 |
TAB_COL_STATS | 表中字段的统计信息 |
TBLS | 表相关信息 |
TBL_COL_PRIVS | 表中字段的权限信息 |
TBL_PRIVS | 表权限信息 |
VERSION | hive版本 |
2. 存储Hive版本相关的元数据表
VERSION
+-------------------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------------------+--------------+------+-----+---------+-------+
| VER_ID | bigint(20) | NO | PRI | NULL | |
| SCHEMA_VERSION | varchar(127) | NO | | NULL | hive版本
| VERSION_COMMENT | varchar(255) | YES | | NULL | |
| SCHEMA_VERSION_V2 | varchar(255) | YES | | NULL | |
+-------------------+--------------+------+-----+---------+-------+
3. Hive数据库相关的元数据表
DBS
DBS-存储Hive中所有数据库的基本信息
+-----------------+---------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-----------------+---------------+------+-----+---------+-------+
| DB_ID | bigint(20) | NO | PRI | NULL | 数据库id
| DESC | varchar(4000) | YES | | NULL | 数据库描述
| DB_LOCATION_URI | varchar(4000) | NO | | NULL | 数据库HDFS路径
| NAME | varchar(128) | YES | UNI | NULL | 数据库名
| OWNER_NAME | varchar(128) | YES | | NULL | 数据库所有者用户名
| OWNER_TYPE | varchar(10) | YES | | NULL | 所有者角色
+-----------------+---------------+------+-----+---------+-------+
DATABASE_PARAMS
DATABASE_PARAMS-存储数据库的属性
+-------------+---------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------------+---------------+------+-----+---------+-------+
| DB_ID | bigint(20) | NO | PRI | NULL | 数据库id
| PARAM_KEY | varchar(180) | NO | PRI | NULL | 属性名
| PARAM_VALUE | varchar(4000) | YES | | NULL | 属性值
+-------------+---------------+------+-----+---------+-------+
DB_PRIVS
DB_PRIVS-存储数据库的权限相关信息
+----------------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+----------------+--------------+------+-----+---------+-------+
| DB_GRANT_ID | bigint(20) | NO | PRI | NULL | 库授权id
| CREATE_TIME | int(11) | NO | | NULL | 创建时间
| DB_ID | bigint(20) | YES | MUL | NULL | 数据库id
| GRANT_OPTION | smallint(6) | NO | | NULL | 授权操作
| GRANTOR | varchar(128) | YES | | NULL | 授权人
| GRANTOR_TYPE | varchar(128) | YES | | NULL | 授权人类型
| PRINCIPAL_NAME | varchar(128) | YES | | NULL | PRINCIPAL名
| PRINCIPAL_TYPE | varchar(128) | YES | | NULL | PRINCIPAL类型
| DB_PRIV | varchar(128) | YES | | NULL | 权限
+----------------+--------------+------+-----+---------+-------+
DBS和 DATABASE_PARAMS 这两张表通过DB_ID字段关联。
4. Hive表和视图相关的元数据表
TBLS
TBLS-存储Hive表、视图、索引表的基本信息
+--------------------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+--------------------+--------------+------+-----+---------+-------+
| TBL_ID | bigint(20) | NO | PRI | NULL | 表id
| CREATE_TIME | int(11) | NO | | NULL | 创建时间
| DB_ID | bigint(20) | YES | MUL | NULL | 数据库id
| LAST_ACCESS_TIME | int(11) | NO | | NULL | 上次访问时间
| OWNER | varchar(767) | YES | | NULL | 所有者
| RETENTION | int(11) | NO | | NULL | 保留字段
| SD_ID | bigint(20) | YES | MUL | NULL | 序列化表id,对应SDS表中的SD_ID
| TBL_NAME | varchar(128) | YES | MUL | NULL | 表名
| TBL_TYPE | varchar(128) | YES | | NULL | 表类型
| VIEW_EXPANDED_TEXT | mediumtext | YES | | NULL | 视图的详细HQL语句
| VIEW_ORIGINAL_TEXT | mediumtext | YES | | NULL | 视图的原始HQL语句
| LINK_TARGET_ID | bigint(20) | YES | MUL | NULL |
+--------------------+--------------+------+-----+---------+-------+
TABLE_PARAMS
TABLE_PARAMS-存储表/视图的属性信息
+-------------+---------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------------+---------------+------+-----+---------+-------+
| TBL_ID | bigint(20) | NO | PRI | NULL | 表id
| PARAM_KEY | varchar(256) | NO | PRI | NULL | 属性名
| PARAM_VALUE | varchar(4000) | YES | | NULL | 属性值
+-------------+---------------+------+-----+---------+-------+
TBL_PRIVS
TBL_PRIVS-存储表/视图的授权信息
+----------------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+----------------+--------------+------+-----+---------+-------+
| TBL_GRANT_ID | bigint(20) | NO | PRI | NULL | 表授权id
| CREATE_TIME | int(11) | NO | | NULL | 创建时间
| GRANT_OPTION | smallint(6) | NO | | NULL | 授权操作
| GRANTOR | varchar(128) | YES | | NULL | 授权人
| GRANTOR_TYPE | varchar(128) | YES | | NULL | 授权人类型
| PRINCIPAL_NAME | varchar(128) | YES | | NULL | PRINCIPAL名
| PRINCIPAL_TYPE | varchar(128) | YES | | NULL | PRINCIPAL类型
| TBL_PRIV | varchar(128) | YES | | NULL | 权限信息
| TBL_ID | bigint(20) | YES | MUL | NULL | 表id
+----------------+--------------+------+-----+---------+-------+
TBLS、TABLE_PARAMS、TBL_PRIVS这几张表通过TBL_ID关联
5. Hive表字段相关的元数据表
CDS
CDS-只有一个字段,字段id
+-------+------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+------------+------+-----+---------+-------+
| CD_ID | bigint(20) | NO | PRI | NULL | 字段id
+-------+------------+------+-----+---------+-------+
COLUMNS_V2
COLUMNS_V2-存储表对应的字段信息
+-------------+---------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------------+---------------+------+-----+---------+-------+
| CD_ID | bigint(20) | NO | PRI | NULL | 字段信息id,对应CDS表
| COMMENT | varchar(256) | YES | | NULL | 字段注释
| COLUMN_NAME | varchar(128) | NO | PRI | NULL | 字段名
| TYPE_NAME | varchar(4000) | YES | | NULL | 字段类型
| INTEGER_IDX | int(11) | NO | | NULL | 字段顺序
+-------------+---------------+------+-----+---------+-------+
6. Hive表分区相关的元数据表
PARTITIONS
PARTITIONS-存储表分区的基本信息
+------------------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+------------------+--------------+------+-----+---------+-------+
| PART_ID | bigint(20) | NO | PRI | NULL | 分区id
| CREATE_TIME | int(11) | NO | | NULL | 创建时间
| LAST_ACCESS_TIME | int(11) | NO | | NULL | 上次访问时间
| PART_NAME | varchar(767) | YES | MUL | NULL | 分区名
| SD_ID | bigint(20) | YES | MUL | NULL | 存储信息id,对应SDS的SD_ID
| TBL_ID | bigint(20) | YES | MUL | NULL | 表id
| LINK_TARGET_ID | bigint(20) | YES | MUL | NULL |
+------------------+--------------+------+-----+---------+-------+
PARTITION_KEYS
PARTITION_KEYS-存储分区的字段信息
+--------------+---------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+--------------+---------------+------+-----+---------+-------+
| TBL_ID | bigint(20) | NO | PRI | NULL | 表id
| PKEY_COMMENT | varchar(4000) | YES | | NULL | 分区字段注释
| PKEY_NAME | varchar(128) | NO | PRI | NULL | 分区字段名
| PKEY_TYPE | varchar(767) | NO | | NULL | 分区字段类型
| INTEGER_IDX | int(11) | NO | | NULL | 分区字段顺序
+--------------+---------------+------+-----+---------+-------+
PARTITION_KEY_VALS
PARTITION_KEY_VALS-存储分区字段值
+--------------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+--------------+--------------+------+-----+---------+-------+
| PART_ID | bigint(20) | NO | PRI | NULL | 分区id
| PART_KEY_VAL | varchar(256) | YES | | NULL | 分区字段值
| INTEGER_IDX | int(11) | NO | PRI | NULL | 分区字段顺序
+--------------+--------------+------+-----+---------+-------+
PARTITION_PARAMS
PARTITION_PARAMS-存储分区的属性信息
+-------------+---------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------------+---------------+------+-----+---------+-------+
| PART_ID | bigint(20) | NO | PRI | NULL | 分区id
| PARAM_KEY | varchar(256) | NO | PRI | NULL | 分区属性名
| PARAM_VALUE | varchar(4000) | YES | | NULL | 分区属性值
+-------------+---------------+------+-----+---------+-------+
PARTITIONS、PARTITION_KEY_VALS、PARTITION_PARAMS这几张表通过PART_ID关联
7. Hive文件存储信息相关的元数据表
SDS
SDS-保存文件存储的基本信息,如INPUT_FORMAT、OUTPUT_FORMAT、是否压缩等。
+---------------------------+---------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+---------------------------+---------------+------+-----+---------+-------+
| SD_ID | bigint(20) | NO | PRI | NULL | 存储信息id,对应SDS的SD_ID
| CD_ID | bigint(20) | YES | MUL | NULL | 字段id,对应CDS的CD_ID
| INPUT_FORMAT | varchar(4000) | YES | | NULL | 文件输入格式
| IS_COMPRESSED | bit(1) | NO | | NULL | 是否压缩
| IS_STOREDASSUBDIRECTORIES | bit(1) | NO | | NULL | 是否以子目录存储
| LOCATION | varchar(4000) | YES | | NULL | hdfs路径
| NUM_BUCKETS | int(11) | NO | | NULL | 分桶数
| OUTPUT_FORMAT | varchar(4000) | YES | | NULL | 文件输出格式
| SERDE_ID | bigint(20) | YES | MUL | NULL | 序列化id,对应SERDES的SERDE_ID
+---------------------------+---------------+------+-----+---------+-------+
SD_PARAMS
SD_PARAMS-存储Hive存储的属性信息
+-------------+---------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------------+---------------+------+-----+---------+-------+
| SD_ID | bigint(20) | NO | PRI | NULL | 存储信息id
| PARAM_KEY | varchar(256) | NO | PRI | NULL | 属性名
| PARAM_VALUE | varchar(4000) | YES | | NULL | 属性值
+-------------+---------------+------+-----+---------+-------+
SERDES
SERDES-存储序列化使用的类信息
+----------+---------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+----------+---------------+------+-----+---------+-------+
| SERDE_ID | bigint(20) | NO | PRI | NULL | 序列化id
| NAME | varchar(128) | YES | | NULL | 序列化类别名
| SLIB | varchar(4000) | YES | | NULL | 序列化类
+----------+---------------+------+-----+---------+-------+
SERDE_PARAMS
SERDE_PARAMS-存储序列化的属性
+-------------+---------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------------+---------------+------+-----+---------+-------+
| SERDE_ID | bigint(20) | NO | PRI | NULL | 序列化id
| PARAM_KEY | varchar(256) | NO | PRI | NULL | 属性名
| PARAM_VALUE | varchar(4000) | YES | | NULL | 属性值
+-------------+---------------+------+-----+---------+-------+