searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

Hive元数据的采集

2023-05-26 02:30:51
36
0

Hive-Cli

  • 获取库信息
DESC DATABASE database

  • 获取表信息
DESC FORMATTED database table
  • 获取指定表下的字段
DESCRIBE table

MetaStore数据库

metastore服务一般使用mysql或者pg存储hive的元数据,通过jdbc方式查询数据库可获取元数据,其中下表为hive元数据的主要表信息。

表名

作用

DBS

database信息

DATABASE_PARAMS

数据库的相关参数

FUNCS

用户注册的函数信息

FUNC_RU

用户注册函数的资源信息

TBLS

存储Hive表、试图、索引表的基本信息

TABLE_PARAMS

表相关信息

TAB_COL_STATS

 

TBL_COL_PRIVS

 

TBL_PRIVS

 

IDXS

索引表,存储Hive索引相关的元数据

INDEX_PARAMS

索引相关的属性信息

BUCKETING_COLS

存储bucket字段信息,通过SD_ID与其他表关联

CDS

一个字段CD_ID,与SDS表关联

COLUMNS_V2

存储字段信息,通过CD_ID与其他表关联

PARTITIONS

分区记录,SD_ID,TBL_ID关联

PARTITION_KEYS

存储分区字段,TBL_ID关联

PARTITION_KEY_VALS

分区的值,通过PART_ID关联。与PARTITION_KEYS共用INTEGER_IDX来标示不同的分区字段

PARTITION_PARAMS

存储某分区相关信息,包括文件数,文件大小,记录条数等PART_ID关联

PART_COL_PRIVS

分区字段的权限信息

PART_COL_STATS

分区字段的统计信息

PART_PRIVS

分区的授权信息

SDS

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

SD_PARAMS

该表存储Hive存储的属性信息

SORT_COLS

排序字段,通过SD_ID关联

SERDES

存储序列化反序列化使用的类

SERDE_PARAMS

序列化反序列化相关信息,通过SERDE_ID关联

SKEWED_COL_NAMES

 

SKEWED_COL_VALUE_LOC_MAP

 

SKEWED_STRING_LIST

 

SKEWED_STRING_LIST_VALUES

 

SKEWED_VALUES

 

GLOBAL_PRIVS

存储全局变量

ROLES

角色表,和GLOBAL_PRIVS配合

VERSION

存储hive的版本信息

SEQUENCE_TABLE

存储sqeuence相关信息

HiveMetastore

通过hive-cli和访问元数据库方式通常称为为直连方式,Metastore服务亦可通过thrift网络方式获取元数据。Java可通过Apache 提供的HiveMetaStoreClient获取对应元数据。

数据库信息

public Database getDatabase(String name) throws TException {
    return this.getDatabase(MetaStoreUtils.getDefaultCatalog(this.conf), name);
}

表信息

public Table getTable(String dbname, String name) throws TException {
    return this.getTable(MetaStoreUtils.getDefaultCatalog(this.conf), dbname, name);
}

分区信息

public List<Partition> listPartitions(String catName, String db_name, String tbl_name, int max_parts) throws TException {
    List<Partition> parts = this.client.get_partitions(MetaStoreUtils.prependCatalogToDbName(catName, db_name, this.conf), tbl_name, this.shrinkMaxtoShort(max_parts));
    return this.deepCopyPartitions(this.filterHook.filterPartitions(parts));
}

0条评论
作者已关闭评论
黄*****
4文章数
0粉丝数
黄*****
4 文章 | 0 粉丝
原创

Hive元数据的采集

2023-05-26 02:30:51
36
0

Hive-Cli

  • 获取库信息
DESC DATABASE database

  • 获取表信息
DESC FORMATTED database table
  • 获取指定表下的字段
DESCRIBE table

MetaStore数据库

metastore服务一般使用mysql或者pg存储hive的元数据,通过jdbc方式查询数据库可获取元数据,其中下表为hive元数据的主要表信息。

表名

作用

DBS

database信息

DATABASE_PARAMS

数据库的相关参数

FUNCS

用户注册的函数信息

FUNC_RU

用户注册函数的资源信息

TBLS

存储Hive表、试图、索引表的基本信息

TABLE_PARAMS

表相关信息

TAB_COL_STATS

 

TBL_COL_PRIVS

 

TBL_PRIVS

 

IDXS

索引表,存储Hive索引相关的元数据

INDEX_PARAMS

索引相关的属性信息

BUCKETING_COLS

存储bucket字段信息,通过SD_ID与其他表关联

CDS

一个字段CD_ID,与SDS表关联

COLUMNS_V2

存储字段信息,通过CD_ID与其他表关联

PARTITIONS

分区记录,SD_ID,TBL_ID关联

PARTITION_KEYS

存储分区字段,TBL_ID关联

PARTITION_KEY_VALS

分区的值,通过PART_ID关联。与PARTITION_KEYS共用INTEGER_IDX来标示不同的分区字段

PARTITION_PARAMS

存储某分区相关信息,包括文件数,文件大小,记录条数等PART_ID关联

PART_COL_PRIVS

分区字段的权限信息

PART_COL_STATS

分区字段的统计信息

PART_PRIVS

分区的授权信息

SDS

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

SD_PARAMS

该表存储Hive存储的属性信息

SORT_COLS

排序字段,通过SD_ID关联

SERDES

存储序列化反序列化使用的类

SERDE_PARAMS

序列化反序列化相关信息,通过SERDE_ID关联

SKEWED_COL_NAMES

 

SKEWED_COL_VALUE_LOC_MAP

 

SKEWED_STRING_LIST

 

SKEWED_STRING_LIST_VALUES

 

SKEWED_VALUES

 

GLOBAL_PRIVS

存储全局变量

ROLES

角色表,和GLOBAL_PRIVS配合

VERSION

存储hive的版本信息

SEQUENCE_TABLE

存储sqeuence相关信息

HiveMetastore

通过hive-cli和访问元数据库方式通常称为为直连方式,Metastore服务亦可通过thrift网络方式获取元数据。Java可通过Apache 提供的HiveMetaStoreClient获取对应元数据。

数据库信息

public Database getDatabase(String name) throws TException {
    return this.getDatabase(MetaStoreUtils.getDefaultCatalog(this.conf), name);
}

表信息

public Table getTable(String dbname, String name) throws TException {
    return this.getTable(MetaStoreUtils.getDefaultCatalog(this.conf), dbname, name);
}

分区信息

public List<Partition> listPartitions(String catName, String db_name, String tbl_name, int max_parts) throws TException {
    List<Partition> parts = this.client.get_partitions(MetaStoreUtils.prependCatalogToDbName(catName, db_name, this.conf), tbl_name, this.shrinkMaxtoShort(max_parts));
    return this.deepCopyPartitions(this.filterHook.filterPartitions(parts));
}

文章来自个人专栏
元数据
2 文章 | 1 订阅
0条评论
作者已关闭评论
作者已关闭评论
0
0