(三)Hive元資料資訊對應MySQL資料庫表
(三)Hive元資料資訊對應MySQL資料庫表
目錄
- 概述
- 一、儲存Hive版本的元資料表(VERSION)
- 二、Hive資料庫相關的元資料表(DBS、DATABASE_PARAMS)
- 三、Hive表和檢視相關的元資料表
- 四、Hive檔案儲存資訊相關的元資料表
- 五、Hive表字段相關的元資料表
- 六、Hive表分割槽相關的元資料表
- 七、其他不常用的元資料表
正文
概述
Hive 的元資料資訊通常儲存在關係型資料庫中,常用MySQL資料庫作為元資料庫管理。上一篇hive的安裝也是將元資料資訊存放在MySQL資料庫中。
Hive的元資料資訊在MySQL資料中有57張表
一、儲存Hive版本的元資料表(VERSION)
VERSION -- 查詢版本資訊
該表比較簡單,但很重要。
VER_ID | SCHEMA_VERSION | VERSION_COMMENT |
ID主鍵 | Hive版本 | 版本說明 |
1 | 0.13.0 | Set by MetaStore |
如果該表出現問題,根本進入不了Hive-Cli。
比如該表不存在,當啟動Hive-Cli時候,就會報錯”Table ‘hive.version’ doesn’t exist”。
二、Hive資料庫相關的元資料表(DBS、DATABASE_PARAMS)
1、DBS
DBS -- 儲存Hive中所有資料庫的基本資訊
元資料表字段 | 說明 | 示例資料 |
DB_ID | 資料庫ID | 2 |
DESC | 資料庫描述 | 測試庫 |
DB_LOCATION_URI | 資料庫HDFS路徑 | hdfs://namenode/user/hive/warehouse/lxw1234.db |
NAME | 資料庫名 | lxw1234 |
OWNER_NAME | 資料庫所有者使用者名稱 | lxw1234 |
OWNER_TYPE | 所有者角色 | USER |
2、DATABASE_PARAMS
DATABASE_PARAMS --該表儲存資料庫的相關引數,在CREATE DATABASE時候用
WITH DBPROPERTIES (property_name=property_value, …)指定的引數。
元資料表字段 | 說明 | 示例資料 |
DB_ID | 資料庫ID | 2 |
PARAM_KEY | 引數名 | createdby |
PARAM_VALUE | 引數值 | lxw1234 |
注意:
DBS和DATABASE_PARAMS這兩張表通過DB_ID欄位關聯。
三、Hive表和檢視相關的元資料表
主要有TBLS、TABLE_PARAMS、TBL_PRIVS,這三張表通過TBL_ID關聯。
1、TBLS
該表中儲存Hive表、檢視、索引表的基本資訊。
元資料表字段 | 說明 | 示例資料 |
TBL_ID | 表ID | 1 |
CREATE_TIME | 建立時間 | 1436317071 |
DB_ID | 資料庫ID | 2,對應DBS中的DB_ID |
LAST_ACCESS_TIME | 上次訪問時間 | 1436317071 |
OWNER | 所有者 | liuxiaowen |
RETENTION | 保留欄位 | 0 |
SD_ID | 序列化配置資訊 | 86,對應SDS表中的SD_ID |
TBL_NAME | 表名 | lxw1234 |
TBL_TYPE | 表型別 | MANAGED_TABLE、EXTERNAL_TABLE、INDEX_TABLE、VIRTUAL_VIEW |
VIEW_EXPANDED_TEXT | 檢視的詳細HQL語句 | select `lxw1234`.`pt`, `lxw1234`.`pcid` from `liuxiaowen`.`lxw1234` |
VIEW_ORIGINAL_TEXT | 檢視的原始HQL語句 | select * from lxw1234 |
2、TABLE_PARAMS
該表儲存表/檢視的屬性資訊。
元資料表字段 | 說明 | 示例資料 |
TBL_ID | 表ID | 1 |
PARAM_KEY | 屬性名 | totalSize、numRows、EXTERNAL |
PARAM_VALUE | 屬性值 | 970107336、21231028、TRUE |
3、TBL_PRIVS
該表儲存表/檢視的授權資訊
元資料表字段 | 說明 | 示例資料 |
TBL_GRANT_ID | 授權ID | 1 |
CREATE_TIME | 授權時間 | 1436320455 |
GRANT_OPTION | 0 | |
GRANTOR | 授權執行使用者 | liuxiaowen |
GRANTOR_TYPE | 授權者型別 | USER |
PRINCIPAL_NAME | 被授權使用者 | username |
PRINCIPAL_TYPE | 被授權使用者型別 | USER |
TBL_PRIV | 許可權 | Select、Alter |
TBL_ID | 表ID | 22,對應TBLS表中的TBL_ID |
四、Hive檔案儲存資訊相關的元資料表
主要涉及SDS、SD_PARAMS、SERDES、SERDE_PARAMS
由於HDFS支援的檔案格式很多,而建Hive表時候也可以指定各種檔案格式,Hive在將HQL解析成MapReduce時候,需要知道去哪裡,使用哪種格式去讀寫HDFS檔案,而這些資訊就儲存在這幾張表中。
1、SDS
該表儲存檔案儲存的基本資訊,如INPUT_FORMAT、OUTPUT_FORMAT、是否壓縮等。
TBLS表中的SD_ID與該表關聯,可以獲取Hive表的儲存資訊。
元資料表字段 | 說明 | 示例資料 |
SD_ID | 儲存資訊ID | 1 |
CD_ID | 欄位資訊ID | 21,對應CDS表 |
INPUT_FORMAT | 檔案輸入格式 | org.apache.hadoop.mapred.TextInputFormat |
IS_COMPRESSED | 是否壓縮 | 0 |
IS_STOREDASSUBDIRECTORIES | 是否以子目錄儲存 | 0 |
LOCATION | HDFS路徑 | hdfs://namenode/hivedata/warehouse/ut.db/t_lxw |
NUM_BUCKETS | 分桶數量 | 5 |
OUTPUT_FORMAT | 檔案輸出格式 | org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat |
SERDE_ID | 序列化類ID | 3,對應SERDES表 |
2、SD_PARAMS
該表儲存Hive儲存的屬性資訊,在建立表時候使用
STORED BY ‘storage.handler.class.name’ [WITH SERDEPROPERTIES (…)指定。
元資料表字段 |
說明 | 示例資料 |
SD_ID | 儲存配置ID | 1 |
PARAM_KEY | 儲存屬性名 | |
PARAM_VALUE | 儲存屬性值 |
3、SERDES
該表儲存序列化使用的類資訊
元資料表字段 | 說明 | 示例資料 |
SERDE_ID | 序列化類配置ID | 1 |
NAME | 序列化類別名 | |
SLIB | 序列化類 | org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe |
4、SERDE_PARAMS
該表儲存序列化的一些屬性、格式資訊,比如:行、列分隔符
元資料表字段 | 說明 | 示例資料 |
SERDE_ID | 序列化類配置ID | 1 |
PARAM_KEY | 屬性名 | field.delim |
PARAM_VALUE | 屬性值 | , |
五、Hive表字段相關的元資料表
主要涉及COLUMNS_V2
1、COLUMNS_V2
該表儲存表對應的欄位資訊。
元資料表字段 | 說明 | 示例資料 |
CD_ID | 欄位資訊ID | 1 |
COMMENT | 欄位註釋 | |
COLUMN_NAME | 欄位名 | pt |
TYPE_NAME | 欄位型別 | string |
INTEGER_IDX | 欄位順序 | 2 |
六、Hive表分割槽相關的元資料表
主要涉及PARTITIONS、PARTITION_KEYS、PARTITION_KEY_VALS、PARTITION_PARAMS
1、PARTITIONS
該表儲存表分割槽的基本資訊。
元資料表字段 | 說明 | 示例資料 |
PART_ID | 分割槽ID | 1 |
CREATE_TIME | 分割槽建立時間 | |
LAST_ACCESS_TIME | 最後一次訪問時間 | |
PART_NAME | 分割槽名 | pt=2015-06-12 |
SD_ID | 分割槽儲存ID | 21 |
TBL_ID | 表ID | 2 |
2、PARTITION_KEYS
該表儲存分割槽的欄位資訊。
元資料表字段 | 說明 | 示例資料 |
TBL_ID | 表ID | 2 |
PKEY_COMMENT | 分割槽欄位說明 | |
PKEY_NAME | 分割槽欄位名 | pt |
PKEY_TYPE | 分割槽欄位型別 | string |
INTEGER_IDX | 分割槽欄位順序 | 1 |
3、PARTITION_KEY_VALS
該表儲存分割槽欄位值。
元資料表字段 | 說明 | 示例資料 |
PART_ID | 分割槽ID | 2 |
PART_KEY_VAL | 分割槽欄位值 | 2015-06-12 |
INTEGER_IDX | 分割槽欄位值順序 | 0 |
4、PARTITION_PARAMS
該表儲存分割槽的屬性資訊。
元資料表字段 | 說明 | 示例資料 |
PART_ID | 分割槽ID | 2 |
PARAM_KEY | 分割槽屬性名 | numFiles、numRows |
PARAM_VALUE | 分割槽屬性值 | 15、502195 |
七、其他不常用的元資料表
- DB_PRIVS
資料庫許可權資訊表。通過GRANT語句對資料庫授權後,將會在這裡儲存。
- IDXS
索引表,儲存Hive索引相關的元資料
- INDEX_PARAMS
索引相關的屬性資訊。
- TAB_COL_STATS
表字段的統計資訊。使用ANALYZE語句對錶欄位分析後記錄在這裡。
- TBL_COL_PRIVS
表字段的授權資訊
- PART_PRIVS
分割槽的授權資訊
- PART_COL_STATS
分割槽欄位的統計資訊。
- PART_COL_PRIVS
分割槽欄位的許可權資訊。
- FUNCS
使用者註冊的函式資訊
- FUNC_RU
使用者註冊函式的資源資訊