1. 程式人生 > >Hive學習之路 (三)Hive元數據信息對應MySQL數據庫表

Hive學習之路 (三)Hive元數據信息對應MySQL數據庫表

需要 pri from metastore node rom lazy 測試 安裝

概述

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

用戶註冊函數的資源信息

Hive學習之路 (三)Hive元數據信息對應MySQL數據庫表