1. 程式人生 > >(三)Hive元資料資訊對應MySQL資料庫表

(三)Hive元資料資訊對應MySQL資料庫表

(三)Hive元資料資訊對應MySQL資料庫表

 

目錄

 

正文

回到頂部

概述

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 
 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

使用者註冊函式的資源資訊