内容简介:众所周知,hive表中的数据是HDFS上的文件,可是hive怎么知道这些文件的内容都对应哪个字段,对应哪个分区呢?就是hive的元数据管理着这一切。通常在hive-site.xml中的元数据库配置成MySQL,替换Derby。下面我们进MySQL看看元数据的表具体有哪些。
众所周知,hive表中的数据是HDFS上的文件,可是hive怎么知道这些文件的内容都对应哪个字段,对应哪个分区呢?
就是hive的元数据管理着这一切。通常在hive-site.xml中的元数据库配置成MySQL,替换Derby。
<property> <name>javax.jdo.option.ConnectionUserName</name> <value>root</value> </property> <property> <name>javax.jdo.option.ConnectionPassword</name> <value>root</value> </property> <property> <name>javax.jdo.option.ConnectionURL</name> <value>jdbc:mysql:///metastore?createDatabaseIfNotExists=true</value> </property> <property> <name>javax.jdo.option.ConnectionDriverName</name> <value>com.mysql.jdbc.Driver</value> </property>
下面我们进 MySQL 看看元数据的表具体有哪些。
1.VERSION
这个存hive版本,有且仅有一条数据
如果多了,会报错
Caused by: MetaException(message:Metastore contains multiple versions (2)
2.库相关表
DBS是数据库主表,字段名顾名思义,样例数据如下
DATABASE_PARAMS是创建数据库 WITH DBPROPERTIES (property_name=property_value, …)指定的参数
FUNCS是函数表
FUNC_RU是函数在哪个jar包中
3.表相关表
PS:调整里半天位置来截个图,感觉像站队合影一样……哈哈
TBLS是表的主表,存放hive所有表的主要信息,其中 TBL_TYPE
是表类型, MANAGED_TABLE
表示内部表, EXTERNAL_TABLE
表示外部表
TABLE_PARAMS是表参数,类似DATABASE_PARAMS
TBL_PRIVS,TBL_COL_PRIVS分别是表权限与列权限
PARTITION_KEYS是分区信息表, INTEGER_IDX
是分区字段序号
PARTITIONS是具体的分区记录,当某表添加新的分区时,会增加一条记录
4.存储相关表
SDS是存储主表,包含数据文件的输入输出格式,所在HDFS路径,是否压缩等
COLUMNS_V2是列的信息,INTEGER_IDX是列的下标,对应文件的内容顺序
SD_PARAMS是在创建表时候使用STORED BY ‘storage.handler.class.name’ [WITH SERDEPROPERTIES (…)指定
SERDES是序列化使用类的表
SERDE_PARAMS存储列分隔符,行分隔符等
在序列化参数表中记录列的分隔符,意味着Hive的存储是对每个字段各自序列化的。
以上所述就是小编给大家介绍的《Hive元数据管理》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- 数据仓库的“元数据管理”
- 数据安全实践之数据资产管理
- 数据分析:基于智能标签,精准管理数据
- 活动运营需具备的数据管理能力以及数据分析思路
- 数据源管理 | 基于JDBC模式,适配和管理动态数据源
- 数据搬运组件:基于 Sqoop 管理数据导入和导出
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
CSS 压缩/解压工具
在线压缩/解压 CSS 代码
RGB转16进制工具
RGB HEX 互转工具