本文介紹Hive元數據庫中一些重要的表結構及用途,方便Impala、SparkSQL、Hive等組件訪問元數據庫的理解。數據庫
一、存儲Hive版本的元數據表(VERSION)apache
該表比較簡單,但很重要。函數
VER_IDoop |
SCHEMA_VERSIONspa |
VERSION_COMMENTorm |
ID主鍵索引 |
Hive版本hadoop |
版本說明ci |
1資源 |
1.1.0 |
Set by MetaStore |
若是該表出現問題,根本進入不了Hive-Cli。好比該表不存在,當啓動Hive-Cli時候,就會報錯」Table ‘hive.version’ doesn’t exist」。
二、Hive數據庫相關的元數據表(DBS、DATABASE_PARAMS)
DBS:該表存儲Hive中全部數據庫的基本信息,字段以下:
表字段 |
說明 |
示例數據 |
DB_ID |
數據庫ID |
1 |
DESC |
數據庫描述 |
Default Hive database |
DB_LOCATION_URI |
數據HDFS路徑 |
hdfs://193.168.1.75:9000/test-warehouse |
NAME |
數據庫名 |
default |
OWNER_NAME |
數據庫全部者用戶名 |
public |
OWNER_TYPE |
全部者角色 |
ROLE |
DATABASE_PARAMS:該表存儲數據庫的相關參數,在CREATE DATABASE時候用WITH DBPROPERTIES(property_name=property_value, …)指定的參數。
表字段 |
說明 |
示例數據 |
DB_ID |
數據庫ID |
1 |
PARAM_KEY |
參數名 |
createdby |
PARAM_VALUE |
參數值 |
root |
DBS和DATABASE_PARAMS這兩張表經過DB_ID字段關聯。
三、Hive表和視圖相關的元數據表
主要有TBLS、TABLE_PARAMS、TBL_PRIVS,這三張表經過TBL_ID關聯。
TBLS:該表中存儲Hive表,視圖,索引表的基本信息
表字段 |
說明 |
示例數據 |
TBL_ID |
表ID |
21 |
CREATE_TIME |
建立時間 |
1447675704 |
DB_ID |
數據庫ID |
1 |
LAST_ACCESS_TIME |
上次訪問時間 |
1447675704 |
OWNER |
全部者 |
root |
RETENTION |
保留字段 |
0 |
SD_ID |
序列化配置信息 |
41,對應SDS表中的SD_ID |
TBL_NAME |
表名 |
ex_detail_ufdr_30streaming |
TBL_TYPE |
表類型 |
EXTERNAL_TABLE |
VIEW_EXPANDED_TEXT |
視圖的詳細HQL語句 |
|
VIEW_ORIGINAL_TEXT |
視圖的原始HQL語句 |
TABLE_PARAMS:該表存儲表/視圖的屬性信息
表字段 |
說明 |
示例數據 |
TBL_ID |
表ID |
1 |
PARAM_KEY |
屬性名 |
totalSize,numRows,EXTERNAL |
PARAM_VALUE |
屬性值 |
97010733六、2123102八、TRUE |
TBL_PRIVS:該表存儲表/視圖的受權信息
表字段 |
說明 |
示例數據 |
TBL_GRANT_ID |
受權ID |
1 |
CREATE_TIME |
受權時間 |
1436320455 |
GRANT_OPTION |
0 |
|
GRANTOR |
受權執行用戶 |
root |
GRANTOR_TYPE |
受權者類型 |
USER |
PRINCIPAL_NAME |
被受權用戶 |
username |
PRINCIPAL_TYPE |
被受權用戶類型 |
USER |
TBL_PRIV |
權限 |
Select、Alter |
TBL_ID |
表ID |
21,對應TBLS表的TBL_ID |
四、Hive文件存儲信息相關的元數據表
主要涉及SDS、SD_PARAMS、SERDES、SERDE_PARAMS,因爲HDFS支持的文件格式不少,而建Hive表時候也能夠指定各類文件格式,Hive在將HQL解析成MapReduce時候,須要知道去哪裏,使用哪一種格式去讀寫HDFS文件,而這些信息就保存在這幾張表中。
SDS:
該表保存文件存儲的基本信息,如INPUT_FORMAT、OUTPUT_FORMAT、是否壓縮等。TBLS表中的SD_ID與該表關聯,能夠獲取Hive表的存儲信息。
表字段 |
說明 |
示例數據 |
SD_ID |
存儲信息ID |
41 |
CD_ID |
字段信息ID |
21,對應CDS表 |
INPUT_FORMAT |
文件輸入格式 |
org.apache.hadoop.mapred.TextInputFormat |
IS_COMPRESSED |
是否壓縮 |
0 |
IS_STOREDASSUBDIRECTORIES |
是否以子目錄存儲 |
0 |
LOCATION |
HDFS路徑 |
hdfs://193.168.1.75:9000/detail_ufdr_streaming_test |
NUM_BUCKETS |
分桶數量 |
0 |
OUTPUT_FORMAT |
文件輸出格式 |
org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat |
SERDE_ID |
序列化類ID |
41,對應SERDES表 |
SD_PARAMS: 該表存儲Hive存儲的屬性信息,在建立表時候使用STORED BY ‘storage.handler.class.name’ [WITH SERDEPROPERTIES (…)指定。
表字段 |
說明 |
示例數據 |
SD_ID |
存儲配置ID |
41 |
PARAM_KEY |
存儲屬性名 |
|
PARAM_VALUE |
存儲屬性值 |
SERDES:該表存儲序列化使用的類信息
表字段 |
說明 |
示例數據 |
SERDE_ID |
序列化類配置ID |
41 |
NAME |
序列化類別名 |
NULL |
SLIB |
序列化類 |
org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe |
SERDE_PARAMS:該表存儲序列化的一些屬性、格式信息,好比:行、列分隔符
表字段 |
說明 |
示例數據 |
SERDE_ID |
序列化類配置ID |
41 |
PARAM_KEY |
屬性名 |
field.delim |
PARAM_VALUE |
屬性值 |
| |
五、Hive表字段相關的元數據表
主要涉及COLUMNS_V2
COLUMNS_V2:該表存儲表對應的字段信息
表字段 |
說明 |
示例數據 |
CD_ID |
字段信息ID |
21 |
COMMENT |
字段註釋 |
NULL |
COLUMN_NAME |
字段名 |
air_port_duration |
TYPE_NAME |
字段類型 |
bigint |
INTEGER_IDX |
字段順序 |
119 |
六、Hive表分分區相關的元數據表
主要涉及PARTITIONS、PARTITION_KEYS、PARTITION_KEY_VALS、PARTITION_PARAMS
PARTITIONS:該表存儲表分區的基本信息
表字段 |
說明 |
示例數據 |
PART_ID |
分區ID |
21 |
CREATE_TIME |
分區建立時間 |
1450861405 |
LAST_ACCESS_TIME |
最後一次訪問時間 |
0 |
PART_NAME |
分區名 |
hour=15/last_msisdn=0 |
SD_ID |
分區存儲ID |
43 |
TBL_ID |
表ID |
22 |
LINK_TARGET_ID |
NULL |
PARTITION_KEYS:該表存儲分區的字段信息
表字段 |
說明 |
示例數據 |
TBL_ID |
表ID |
22 |
PKEY_COMMENT |
分區字段說明 |
NULL |
PKEY_NAME |
分區字段名 |
hour |
PKEY_TYPE |
分區字段類型 |
int |
INTEGER_IDX |
分區字段順序 |
0 |
PARTITION_KEY_VALS:該表存儲分區字段值
表字段 |
說明 |
示例數據 |
PART_ID |
分區ID |
21 |
PART_KEY_VAL |
分區字段值 |
0 |
INTEGER_IDX |
分區字段值順序 |
1 |
PARTITION_PARAMS:該表存儲分區的屬性信息
表字段 |
說明 |
示例數據 |
PART_ID |
分區ID |
21 |
PARAM_KEY |
分區屬性名 |
numFiles,numRows |
PARAM_VALUE |
分區屬性值 |
1,502195 |
六、其餘不經常使用的元數據表
DB_PRIVS
數據庫權限信息表。經過GRANT語句對數據庫受權後,將會在這裏存儲。
IDXS
索引表,存儲Hive索引相關的元數據
INDEX_PARAMS
索引相關的屬性信息
TBL_COL_STATS
表字段的統計信息。使用ANALYZE語句對錶字段分析後記錄在這裏
TBL_COL_PRIVS
表字段的受權信息
PART_PRIVS
分區的受權信息
PART_COL_PRIVS
分區字段的權限信息
PART_COL_STATS
分區字段的統計信息
FUNCS
用戶註冊的函數信息
FUNC_RU
用戶註冊函數的資源信息