Hive元数据表结构详解

您所在的位置:网站首页 hive的元数据存储在哪里 Hive元数据表结构详解

Hive元数据表结构详解

2023-09-21 23:19| 来源: 网络整理| 查看: 265

概述

我们知道Apache Hive 是构建在Apache Hadoop之上的数据仓库。有助于对大型的数据集进行读、写和管理。这也是官网介绍的第一句话,虽然简短但是却能提炼出很多东西,大家可以去细细品味下。该篇博客不做过多讲述。本文我们介绍Hive的原数据表,他默认是存储再derby中的,但是我们一般会修改会mysql。作者使用的也是mysql进行的管理。

Hive元数据表结构 hive-site.xml javax.jdo.option.ConnectionURL jdbc:mysql://localhost:3306/basic01?createDatabaseIfNotExist=true javax.jdo.option.ConnectionDriverName com.mysql.jdbc.Driver 通过mysql查看basic01数据库 show tables; +---------------------------+ | Tables_in_basic01 | +---------------------------+ | bucketing_cols | | cds | | columns_v2 | | database_params | | dbs | | func_ru | | funcs | | global_privs | | idxs | | index_params | | part_col_privs | | part_col_stats | | part_privs | | partition_key_vals | | partition_keys | | partition_params | | partitions | | roles | | sd_params | | sds | | sequence_table | | serde_params | | serdes | | skewed_col_names | | skewed_col_value_loc_map | | skewed_string_list | | skewed_string_list_values | | skewed_values | | sort_cols | | tab_col_stats | | table_params | | tbl_col_privs | | tbl_privs | | tbls | | version | +---------------------------+

下面我们就一个一个讲解看看其中到底是什么关系。

version(存储Hive版本的元数据表) VER_IDSCHEMA_VERSIONVERSION_COMMENTID主键Hive版本版本说明10.12.0Set by MetaStore [email protected]

如果该表出现问题,根本进入不了Hive-Cli。比如该表不存在,当启动Hive-Cli时候,就会报错”Table ‘hive.version’ doesn’t exist”。

Hive数据库相关的元数据表(DBS、DATABASE_PARAMS) select * from dbs 该表存储Hive中所有数据库的基本信息,字段如下: 数据库ID数据库描述数据库HDFS路径数据库名数据库所有者用户名所有者角色DB_IDDESCDB_LOCATION_URINAMEOWNER_NAMEOWNER_TYPE1Default Hive databasehdfs://192.168.137.130:9000/user/hive/warehousedefaultpublicROLE6NULLhdfs://192.168.137.130:9000/user/hive/warehouse/hive.dbhivehadoopUSER select * from database_params; 该表存储数据库的相关参数,在CREATE DATABASE时候用 WITH DBPROPERTIES (property_name=property_value, …)指定的参数。 元数据表字段说明示例数据DB_ID数据库ID2PARAM_KEY参数名createdbyPARAM_VALUE参数值lxw1234 Hive表和视图相关的元数据表

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

select * from tbls; 该表中存储Hive表、视图、索引表的基本信息。 表ID创建时间数据库ID上次访问时间所有者保留字段序列化配置信息( 对应SDS表中的SD_ID)表名表类型视图的详细HQL语句视图的原始HQL语句TBL_IDCREATE_TIMEDB_ID LAST_ACCESS_TIMEOWNERRETENTIONSD_IDTBL_NAMETBL_TYPEVIEW_EXPANDED_TEXTVIEW_ORIGINAL_TEXT1151994417060hadoop01page_viewsMANAGED_TABLENULLNULL2151994431360hadoop02page_views_bzip2MANAGED_TABLENULLNULL3151994481960hadoop03page_views_snappyMANAGED_TABLENULLNULL select * from table_params; 该表存储表/视图的属性信息。 表ID(对应TBLS的tbl_id)属性名属性值TBL_IDPARAM_KEYPARAM_VALUE1COLUMN_STATS_ACCURATEtrue1numFiles11numRows01rawDataSize01totalSize190149931transient_lastDdlTime15199442122COLUMN_STATS_ACCURATEtrue2numFiles12numRows1000002rawDataSize189149932totalSize38146742transient_lastDdlTime1519944314 TBL_PRIVS 该表存储表/视图的授权信息 Hive文件存储信息相关的元数据表

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

select * from sds; 文件存储的基本信息: 存储信息ID(对应tbls表中的SD_ID )字段信息ID(对应column_v2 的CD_ID)文件输入格式是否压缩是否以子目录存储HDFS路径分桶数量文件输出格式序列化类IDSD_IDCD_IDINPUT_FORMATIS_COMPRESSEDIS_STOREDASSUBDIRECTORIESLOCATIONNUM_BUCKETSOUTPUT_FORMATSERDE_ID11org.apache.hadoop.mapred.TextInputFormathdfs://192.168.137.130:9000/user/hive/warehouse/hive.db/page_views-1org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat122org.apache.hadoop.mapred.TextInputFormathdfs://192.168.137.130:9000/user/hive/warehouse/hive.db/page_views_bzip2-1org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat233org.apache.hadoop.mapred.TextInputFormathdfs://192.168.137.130:9000/user/hive/warehouse/hive.db/page_views_snappy-1org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat32121org.apache.hadoop.mapred.TextInputFormathdfs://192.168.137.130:9000/user/hive/warehouse/hive.db/tt-1org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat212222org.apache.hadoop.mapred.SequenceFileInputFormathdfs://192.168.137.130:9000/user/hive/warehouse/hive.db/page_views_seq-1org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat222323org.apache.hadoop.hive.ql.io.RCFileInputFormathdfs://192.168.137.130:9000/user/hive/warehouse/hive.db/page_views_rcfile-1org.apache.hadoop.hive.ql.io.RCFileOutputFormat232424org.apache.hadoop.hive.ql.io.orc.OrcInputFormathdfs://192.168.137.130:9000/user/hive/warehouse/hive.db/page_views_orc_zlib-1org.apache.hadoop.hive.ql.io.orc.OrcOutputFormat242727com.hadoop.mapred.DeprecatedLzoTextInputFormathdfs://192.168.137.130:9000/user/hive/warehouse/hive.db/page_views_lzo_index-1org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat27

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

select * from serdes; 该表存储序列化使用的类信息

序列化类配置ID(对应SDS的 SERDE_ID)序列化类别名序列化类SERDE_ID NAMESLIB1NULLorg.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe2NULLorg.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe3NULLorg.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe21NULLorg.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe22NULLorg.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe23NULLorg.apache.hadoop.hive.serde2.columnar.ColumnarSerDe24NULLorg.apache.hadoop.hive.ql.io.orc.OrcSerde select * from serde_params; 该表存储序列化的一些属性、格式信息,比如:行、列分隔符 序列化类配置ID(对应SDS的 SERDE_ID)属性名属性值SERDE_IDPARAM_KEYPARAM_VALUE1field.delim1serialization.format2field.delim2serialization.format3field.delim3serialization.format21field.delim Hive表字段相关的元数据表 select * from columns_v2; 表的字段信息 字段信息ID(对应SDS 表CD_ID)字段注释字段名字段类型字段顺序 CD_IDCOMMENTCOLUMN_NAMETYPE_NAMEINTEGER_IDX1NULLcity_idstring61NULLend_user_idstring51NULLipstring41NULLrefererstring31NULLsession_idstring21NULLtrack_timestring01NULLurlstring12NULLcity_idstring62NULLend_user_idstring52NULLipstring42NULLrefererstring32NULLsession_idstring22NULLtrack_timestring02NULLurlstring1 Hive表分区相关的元数据表

主要涉及PARTITIONS、PARTITION_KEYS、PARTITION_KEY_VALS、PARTITION_PARAMS

select * from partitions ; 分区的基本信息 分区ID分区创建时间最后一次访问时间分区名分区存储ID表IDPART_IDCREATE_TIMELAST_ACCESS_TIMEPART_NAMESD_IDTBL_ID11506226696pt=2015-06-12212 select * from partition_keys; 分区的字段信息 元数据表字段说明示例数据TBL_ID表ID2PKEY_COMMENT分区字段说明PKEY_NAME分区字段名ptPKEY_TYPE分区字段类型stringINTEGER_IDX分区字段顺序1 select * from partition_key_vals; 该表存储分区字段值 元数据表字段说明示例数据PART_ID分区ID2PART_KEY_VAL分区字段值2015-06-12INTEGER_IDX分区字段值顺序0 select * from partition_params; 该表存储分区的属性信息。 元数据表字段说明示例数据PART_ID分区ID2PARAM_KEY分区属性名numFiles、numRows、rawDataSize、totalSize、transient_lastDdlTimePARAM_VALUE分区属性值15、502195 其他不常用的元数据表 表明作用DB_PRIVS数据库权限信息表。通过GRANT语句对数据库授权后,将会在这里存储。IDXS索引表,存储Hive索引相关的元数据INDEX_PARAMS索引相关的属性信息。TAB_COL_STATS表字段的统计信息。使用ANALYZE语句对表字段分析后记录在这里。TBL_COL_PRIVS表字段的授权信息PART_PRIVS分区的授权信息PART_COL_STATS分区字段的统计信息。PART_COL_PRIVS分区字段的权限信息。FUNCS用户注册的函数信息FUNC_RU用户注册函数的资源信息

最后我们总结下他们之间的关系图: 这里写图片描述



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3