在本例中将Hive的metadata存储在MySQL中;
10年积累的成都网站设计、成都网站制作、外贸网站建设经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先做网站后付款的网站建设流程,更有天镇免费网站建设让你可以放心的选择与我们合作。
透彻理解每个表的用途,以及每个表之间是通过什么进行关联,对于用hive用着很大的帮助;
Hive的版本不同,表的个数也有可能不同;Hive 1.1是36张表,1.2是35张表;
要重点理解的表:
VERSION
DBS
CDS
TBLS
COLUMNS_V2
PARTITIONS
PARTITION_KEYS
PARTITION_KEY_VALUES
FUNCS
VERSION表
此表中只能有一条信息,如果为0条或者大于1条,Hive均无法启动; 此表记录了Hive的版本信息;
DBS表
此表记录了Hive中的数据库信息; 包括数据库的ID(DB_ID)、在HDFS上的存储位置(DB_LOCATION_URI)、DB的名字(NAME字段)
TBLS表
此表记录了Hive库中的表信息; 包含了表的ID(TBL_ID)、所属的数据库(DB_ID)、表名(TBL_NAME)、表类型(TBL_TYPE,比如是内部表还是外部表),表的存储格式(SD_ID); select * from TBLS\G;
SDS表
此表记录了表的输入、输出格式、存储位置等信息; select * from SDS\G;
COLUMNS_V2表
此表记录了hive表中的列字段信息;通过CD_ID进行关联; 包含了表的列名(COLUMN_NAME)、列的数据类型(TYPE_NAME)、列的编号(INTEGER_IDX) select * from COLUMNS_V2\G 注:hive通过列的编号(INTEGER_IDX)来确定列的位置,以防止数据错乱;
PARTITIONS(分区)表
此表记录了分区表的信息; 包括了分区表的分区值(PART_NAME)、表的输入输出格式(SD_ID)、所属的表(TBL_ID); select * from PARTITIONS;
PARTITION_KEYS(分区的key)表
此表记录了分区的key;通过TBL_ID关联到表; select * from PARTITION_KEYS; 注:可以看到分区的key是day;
PARTITION_KEY_VALS(分表key的value)表
此表记录了分区的key的value;通过TBL_ID关联到表; select * from PARTITION_KEY_VALS; 注:可以看重到key的value值