在本例中将蜂巢的元数据存储在mysql中;
透彻理解每个表的用途,以及每个表之间是通过什么进行关联,对于用蜂巢用着很大的帮助;
蜂巢的版本不同,表的个数也有可能不同,蜂巢1.1是36张表,1.2是35张表;
要重点理解的表:
版本DBS
cd
中环
COLUMNS_V2分区
PARTITION_KEYS PARTITION_KEY_VALUES
func
版本表
此表中只能有一条信息,如果为0条或者大于1条,蜂巢均无法启动; 此表记录了蜂巢的版本信息;
DBS表
此表记录了蜂巢中的数据库信息; 包括数据库的ID (DB_ID),在HDFS上的存储位置(DB_LOCATION_URI), DB的名字(名称字段)
中环表
此表记录了蜂巢库中的表信息; 包含了表的ID (TBL_ID)所属的数据库(DB_ID),表名(TBL_NAME),表类型(TBL_TYPE,比如是内部表还是外部表),表的存储格式(SD_ID); 从中环\ G;选择*
SDS表
此表记录了表的输入,输出格式,存储位置等信息; select * from SDS \ G;
COLUMNS_V2表
此表记录了蜂巢表中的列字段信息,通过CD_ID进行关联; 包含了表的列名(COLUMN_NAME),列的数据类型(TYPE_NAME),列的编号(INTEGER_IDX) select * from COLUMNS_V2 \ G 注:蜂巢通过列的编号(INTEGER_IDX)来确定列的位置,以防止数据错乱;
分区(分区)表
此表记录了分区表的信息; 包括了分区表的分区值(PART_NAME),表的输入输出格式(SD_ID)所属的表(TBL_ID); select * from分区;
PARTITION_KEYS(分区)的关键表
此表记录了分区的关键;通过TBL_ID关联到表; 从PARTITION_KEYS select *; 注:可以看到分区的关键是,
PARTITION_KEY_VALS(分表键的值)表
此表记录了分区的键的值,通过TBL_ID关联到表; 从PARTITION_KEY_VALS select *; 注:可以看重到键的值值