在本例中將Hive的metadata存儲在mysql中;
透徹理解每個表的用途,以及每個表之間是通過什么進行關聯(lián),對于用hive用著很大的幫助;
Hive的版本不同,表的個數(shù)也有可能不同;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中的數(shù)據(jù)庫信息; 包括數(shù)據(jù)庫的ID(DB_ID)、在HDFS上的存儲位置(DB_LOCATION_URI)、DB的名字(NAME字段)
TBLS表
此表記錄了Hive庫中的表信息; 包含了表的ID(TBL_ID)、所屬的數(shù)據(jù)庫(DB_ID)、表名(TBL_NAME)、表類型(TBL_TYPE,比如是內(nèi)部表還是外部表),表的存儲格式(SD_ID); select?*?from?TBLS\G;
SDS表
此表記錄了表的輸入、輸出格式、存儲位置等信息; select?*?from?SDS\G;
COLUMNS_V2表
此表記錄了hive表中的列字段信息;通過CD_ID進行關聯(lián); 包含了表的列名(COLUMN_NAME)、列的數(shù)據(jù)類型(TYPE_NAME)、列的編號(INTEGER_IDX) select?*?from?COLUMNS_V2\G 注:hive通過列的編號(INTEGER_IDX)來確定列的位置,以防止數(shù)據(jù)錯亂;
PARTITIONS(分區(qū))表
此表記錄了分區(qū)表的信息; 包括了分區(qū)表的分區(qū)值(PART_NAME)、表的輸入輸出格式(SD_ID)、所屬的表(TBL_ID);? select?*?from?PARTITIONS;
PARTITION_KEYS(分區(qū)的key)表
此表記錄了分區(qū)的key;通過TBL_ID關聯(lián)到表; select?*?from?PARTITION_KEYS; 注:可以看到分區(qū)的key是day;
PARTITION_KEY_VALS(分表key的value)表
此表記錄了分區(qū)的key的value;通過TBL_ID關聯(lián)到表; select?*?from?PARTITION_KEY_VALS; 注:可以看重到key的value值
另外有需要云服務器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。