Hive筆記6-hive元數(shù)據(jù)表結(jié)構(gòu)詳解

hive系列之六-hive元數(shù)據(jù)表結(jié)構(gòu)詳解

Hive自己維護(hù)了一套元數(shù)據(jù),用戶通過(guò)HQL查詢時(shí)候,Hive首先需要結(jié)合元數(shù)據(jù),將HQL翻譯成MapReduce去執(zhí)行。本文介紹一下Hive元數(shù)據(jù)中重要的一些表結(jié)構(gòu)及用途,以Hive0.13為例。

1.version

存儲(chǔ)Hive版本的元數(shù)據(jù)表(VERSION)

VER_ID SCHEMA_VERSION VERSION_COMMENT
ID主鍵 Hive版本 版本說(shuō)明
1 0.13.0 Set by MetaStore

如果該表出現(xiàn)問(wèn)題,根本進(jìn)入不了Hive-Cli。

比如該表不存在,當(dāng)啟動(dòng)Hive-Cli時(shí)候,就會(huì)報(bào)錯(cuò)”Table ‘hive.version’ doesn’t exist”。

2.數(shù)據(jù)庫(kù)相關(guān)的元數(shù)據(jù)表

  • DBS

該表存儲(chǔ)Hive中所有數(shù)據(jù)庫(kù)的基本信息,字段如下:

元數(shù)據(jù)表字段 說(shuō)明 示例數(shù)據(jù)
DB_ID 數(shù)據(jù)庫(kù)ID 2
DESC 數(shù)據(jù)庫(kù)描述 測(cè)試庫(kù)
DB_LOCATION_URI 數(shù)據(jù)庫(kù)HDFS路徑 hdfs://namenode/user/hive/warehouse/lxw1234.db
NAME 數(shù)據(jù)庫(kù)名 lxw1234
OWNER_NAME 數(shù)據(jù)庫(kù)所有者用戶名 lxw1234
OWNER_TYPE 所有者角色 USER
  • DATABASE_PARAMS

該表存儲(chǔ)數(shù)據(jù)庫(kù)的相關(guān)參數(shù),在CREATE DATABASE時(shí)候用

WITH DBPROPERTIES (property_name=property_value, …)指定的參數(shù)。

元數(shù)據(jù)表字段 說(shuō)明 示例數(shù)據(jù)
DB_ID 數(shù)據(jù)庫(kù)ID 2
PARAM_KEY 參數(shù)名 createdby
PARAM_VALUE 參數(shù)值 lxw1234

DBS和DATABASE_PARAMS這兩張表通過(guò)DB_ID字段關(guān)聯(lián)。

3.表/視圖相關(guān)元數(shù)據(jù)表

主要有TBLS、TABLE_PARAMS、TBL_PRIVS,這三張表通過(guò)TBL_ID關(guān)聯(lián)。

  • TBLS

該表中存儲(chǔ)Hive表、視圖、索引表的基本信息。

元數(shù)據(jù)表字段 說(shuō)明 示例數(shù)據(jù)
TBL_ID 表ID 1
CREATE_TIME 創(chuàng)建時(shí)間 1436317071
DB_ID 數(shù)據(jù)庫(kù)ID 2,對(duì)應(yīng)DBS中的DB_ID
LAST_ACCESS_TIME 上次訪問(wèn)時(shí)間 1436317071
OWNER 所有者 liuxiaowen
RETENTION 保留字段 0
SD_ID 序列化配置信息 86,對(duì)應(yīng)SDS表中的SD_ID
TBL_NAME 表名 lxw1234
TBL_TYPE 表類型 MANAGED_TABLE、EXTERNAL_TABLE、INDEX_TABLE、VIRTUAL_VIEW
VIEW_EXPANDED_TEXT 視圖的詳細(xì)HQL語(yǔ)句 select lxw1234.pt, lxw1234.pcid from liuxiaowen.lxw1234
VIEW_ORIGINAL_TEXT 視圖的原始HQL語(yǔ)句 select * from lxw1234
  • TABLE_PARAMS

該表存儲(chǔ)表/視圖的屬性信息。

元數(shù)據(jù)表字段 說(shuō)明 示例數(shù)據(jù)
TBL_ID 表ID 1
PARAM_KEY 屬性名 totalSize、numRows、EXTERNAL
PARAM_VALUE 屬性值 970107336、21231028、TRUE
  • TBL_PRIVS

該表存儲(chǔ)表/視圖的授權(quán)信息

元數(shù)據(jù)表字段 說(shuō)明 示例數(shù)據(jù)
TBL_GRANT_ID 授權(quán)ID 1
CREATE_TIME 授權(quán)時(shí)間 1436320455
GRANT_OPTION 0
GRANTOR 授權(quán)執(zhí)行用戶 liuxiaowen
GRANTOR_TYPE 授權(quán)者類型 USER
PRINCIPAL_NAME 被授權(quán)用戶 username
PRINCIPAL_TYPE 被授權(quán)用戶類型 USER
TBL_PRIV 權(quán)限 Select、Alter
TBL_ID 表ID 22,對(duì)應(yīng)TBLS表中的TBL_ID

4.文件存儲(chǔ)信息相關(guān)的元數(shù)據(jù)表

主要涉及SDS、SD_PARAMS、SERDES、SERDE_PARAMS

由于HDFS支持的文件格式很多,而建Hive表時(shí)候也可以指定各種文件格式,Hive在將HQL解析成MapReduce時(shí)候,需要知道去哪里,使用哪種格式去讀寫(xiě)HDFS文件,而這些信息就保存在這幾張表中。

  • SDS

該表保存文件存儲(chǔ)的基本信息,如INPUT_FORMAT、OUTPUT_FORMAT、是否壓縮等。

TBLS表中的SD_ID與該表關(guān)聯(lián),可以獲取Hive表的存儲(chǔ)信息。

元數(shù)據(jù)表字段 說(shuō)明 示例數(shù)據(jù)
SD_ID 存儲(chǔ)信息ID 1
CD_ID 字段信息ID 21,對(duì)應(yīng)CDS表
INPUT_FORMAT 文件輸入格式 org.apache.hadoop.mapred.TextInputFormat
IS_COMPRESSED 是否壓縮 0
IS_STOREDASSUBDIRECTORIES 是否以子目錄存儲(chǔ) 0
LOCATION HDFS路徑 hdfs://namenode/hivedata/warehouse/ut.db/t_lxw
NUM_BUCKETS 分桶數(shù)量 5
OUTPUT_FORMAT 文件輸出格式 org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
SERDE_ID 序列化類ID 3,對(duì)應(yīng)SERDES表
  • SD_PARAMS

該表存儲(chǔ)Hive存儲(chǔ)的屬性信息,在創(chuàng)建表時(shí)候使用

STORED BY ‘storage.handler.class.name’ [WITH SERDEPROPERTIES (…)指定。

元數(shù)據(jù)表字段 說(shuō)明 示例數(shù)據(jù)
SD_ID 存儲(chǔ)配置ID 1
PARAM_KEY 存儲(chǔ)屬性名
PARAM_VALUE 存儲(chǔ)屬性值
  • SERDES

該表存儲(chǔ)序列化使用的類信息

元數(shù)據(jù)表字段 說(shuō)明 示例數(shù)據(jù)
SERDE_ID 序列化類配置ID 1
NAME 序列化類別名
SLIB 序列化類 org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
  • SERDE_PARAMS

該表存儲(chǔ)序列化的一些屬性、格式信息,比如:行、列分隔符

元數(shù)據(jù)表字段 說(shuō)明 示例數(shù)據(jù)
SERDE_ID 序列化類配置ID 1
PARAM_KEY 屬性名 field.delim
PARAM_VALUE 屬性值 ,

5.表字段相關(guān)的元數(shù)據(jù)

主要涉及COLUMNS_V2

  • COLUMNS_V2

該表存儲(chǔ)表對(duì)應(yīng)的字段信息。

元數(shù)據(jù)表字段 說(shuō)明 示例數(shù)據(jù)
CD_ID 字段信息ID 1
COMMENT 字段注釋
COLUMN_NAME 字段名 pt
TYPE_NAME 字段類型 string
INTEGER_IDX 字段順序 2

6.表分區(qū)相關(guān)的數(shù)據(jù)表

主要涉及PARTITIONS、PARTITION_KEYS、PARTITION_KEY_VALS、PARTITION_PARAMS

  • PARTITIONS

該表存儲(chǔ)表分區(qū)的基本信息。

元數(shù)據(jù)表字段 說(shuō)明 示例數(shù)據(jù)
PART_ID 分區(qū)ID 1
CREATE_TIME 分區(qū)創(chuàng)建時(shí)間
LAST_ACCESS_TIME 最后一次訪問(wèn)時(shí)間
PART_NAME 分區(qū)名 pt=2015-06-12
SD_ID 分區(qū)存儲(chǔ)ID 21
TBL_ID 表ID 2
  • PARTITION_KEYS

該表存儲(chǔ)分區(qū)的字段信息。

元數(shù)據(jù)表字段 說(shuō)明 示例數(shù)據(jù)
TBL_ID 表ID 2
PKEY_COMMENT 分區(qū)字段說(shuō)明
PKEY_NAME 分區(qū)字段名 pt
PKEY_TYPE 分區(qū)字段類型 string
INTEGER_IDX 分區(qū)字段順序 1
  • PARTITION_KEY_VALS

該表存儲(chǔ)分區(qū)字段值。

元數(shù)據(jù)表字段 說(shuō)明 示例數(shù)據(jù)
PART_ID 分區(qū)ID 2
PART_KEY_VAL 分區(qū)字段值 2015-06-12
INTEGER_IDX 分區(qū)字段值順序 0
  • PARTITION_PARAMS

該表存儲(chǔ)分區(qū)的屬性信息。

元數(shù)據(jù)表字段 說(shuō)明 示例數(shù)據(jù)
PART_ID 分區(qū)ID 2
PARAM_KEY 分區(qū)屬性名 numFiles、numRows
PARAM_VALUE 分區(qū)屬性值 15、502195

7.其他

  • DB_PRIVS

數(shù)據(jù)庫(kù)權(quán)限信息表。通過(guò)GRANT語(yǔ)句對(duì)數(shù)據(jù)庫(kù)授權(quán)后,將會(huì)在這里存儲(chǔ)。

  • IDXS

索引表,存儲(chǔ)Hive索引相關(guān)的元數(shù)據(jù)

  • INDEX_PARAMS

索引相關(guān)的屬性信息。

  • TAB_COL_STATS

表字段的統(tǒng)計(jì)信息。使用ANALYZE語(yǔ)句對(duì)表字段分析后記錄在這里。

  • TBL_COL_PRIVS

表字段的授權(quán)信息

  • PART_PRIVS

分區(qū)的授權(quán)信息

  • PART_COL_STATS

分區(qū)字段的統(tǒng)計(jì)信息。

  • PART_COL_PRIVS

分區(qū)字段的權(quán)限信息。

  • FUNCS

用戶注冊(cè)的函數(shù)信息

  • FUNC_RU

用戶注冊(cè)函數(shù)的資源信息

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容