hive的metadata中的表用途說明

在本例中將Hive的metadata存儲在mysql中;


透徹理解每個表的用途,以及每個表之間是通過什麼進行關聯,對於用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的版本信息;

image.png


DBS表

此表記錄了Hive中的數據庫信息;
包括數據庫的ID(DB_ID)、在HDFS上的存儲位置(DB_LOCATION_URI)、DB的名字(NAME字段)

image.png


TBLS表

此表記錄了Hive庫中的表信息;
包含了表的ID(TBL_ID)、所屬的數據庫(DB_ID)、表名(TBL_NAME)、表類型(TBL_TYPE,比如是內部表還是外部表),表的存儲格式(SD_ID);
select * from TBLS\G;

image.png


SDS表

此表記錄了表的輸入、輸出格式、存儲位置等信息;
select * from SDS\G;

image.png


COLUMNS_V2表

此表記錄了hive表中的列字段信息;通過CD_ID進行關聯;
包含了表的列名(COLUMN_NAME)、列的數據類型(TYPE_NAME)、列的編號(INTEGER_IDX)
select * from COLUMNS_V2\G

注:hive通過列的編號(INTEGER_IDX)來確定列的位置,以防止數據錯亂;

image.png


PARTITIONS(分區)表

此表記錄了分區表的信息;
包括了分區表的分區值(PART_NAME)、表的輸入輸出格式(SD_ID)、所屬的表(TBL_ID); 
select * from PARTITIONS;

image.png


PARTITION_KEYS(分區的key)表

此表記錄了分區的key;通過TBL_ID關聯到表;
select * from PARTITION_KEYS;
注:可以看到分區的key是day;

image.png


PARTITION_KEY_VALS(分表key的value)表

此表記錄了分區的key的value;通過TBL_ID關聯到表;
select * from PARTITION_KEY_VALS;
注:可以看重到key的value值

image.png






發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章