Hive MetaStore常用的元数据在Mysql中对应的表

Hive admin 2年前 (2019-01-06) 107次浏览 0个评论 扫描二维码

1、Hive中databases的信息-》DBS

字段关联,以及表
TBL_ID(TBLS)-> SD_ID(SDS)-> CD_ID(CDS)-> SERDE_ID(SERDES)

元数据表字段 说明
DB_ID 数据库ID
DESC 数据库描述
DB_LOCATION_URI 数据库HDFS路径
NAME 数据库名
OWNER_NAME 数据库所有者用户名
OWNER_TYPE 所有者角色

未创建database
mysql> select * from DBS \G;
*************************** 1. row ***************************
          DB_ID: 1     ----database id
           DESC: Default Hive database  ----database描述
DB_LOCATION_URI: hdfs://localhost:9000/user/hive/warehouse   ----database在hdfs中的目录
           NAME: default
     OWNER_NAME: public
     OWNER_TYPE: ROLE
1 row in set (0.00 sec)

在hive中创建database bigdata

hive (default)> create database bigdata;
OK
Time taken: 0.173 seconds

再次查询

mysql> select * from DBS \G;
*************************** 1. row ***************************
          DB_ID: 1
           DESC: Default Hive database
DB_LOCATION_URI: hdfs://localhost:9000/user/hive/warehouse
           NAME: default
     OWNER_NAME: public
     OWNER_TYPE: ROLE
*************************** 2. row ***************************
          DB_ID: 6
           DESC: NULL
DB_LOCATION_URI: hdfs://localhost:9000/user/hive/warehouse/bigdata.db
           NAME: bigdata
     OWNER_NAME: wn
     OWNER_TYPE: USER
2 rows in set (0.00 sec)

2、Hive的version信息-》VERSION

字段关联,以及表
TBL_ID(TBLS)-> SD_ID(SDS)-> CD_ID(CDS)-> SERDE_ID(SERDES)

VER_ID ID主键
SCHEMA_VERSION Hive版本
VERSION_COMMENT 版本说明
这张表记录了hive的信息,
并且、并且、并且:该表有且仅有一条数据的时候hive才能启动

mysql> select * from VERSION;
+--------+----------------+-------------------+----------------------------------+
| VER_ID | SCHEMA_VERSION | SCHEMA_VERSION_V2 | VERSION_COMMENT                  |
+--------+----------------+-------------------+----------------------------------+
|      1 | 1.1.0          | NULL              | Set by MetaStore wn@100.5.12.171 |
+--------+----------------+-------------------+----------------------------------+

3、Hive的表信息-》TBLS

字段关联,以及表
TBL_ID(TBLS)-> SD_ID(SDS)-> CD_ID(CDS)-> SERDE_ID(SERDES)

在hive中建表

create table test(id int,name string);

查看TBLS

mysql> select * from TBLS \G;
*************************** 1. row ***************************
            TBL_ID: 1    ---->表ID
       CREATE_TIME: 1551423522    ---->创建时间
             DB_ID: 1    ---->数据库ID
  LAST_ACCESS_TIME: 0    ---->上次访问时间
             OWNER: wn    ---->所有者
         RETENTION: 0    
             SD_ID: 1    ---->序列化配置信息 SDS的id
          TBL_NAME: test    ---->表名
          TBL_TYPE: MANAGED_TABLE    ---->表类型MANAGED_TABLE、EXTERNAL_TABLE、INDEX_TABLE、VIRTUAL_VIEW
VIEW_EXPANDED_TEXT: NULL    ---->视图的详细HQL语句
VIEW_ORIGINAL_TEXT: NULL    ---->视图的原始HQL语句

3.1MANAGED_TABLE内部表、EXTERNAL_TABLE外部表的区别:

内部表数据由Hive自身管理,外部表数据由HDFS管理;
内部表数据存储的位置是hive.metastore.warehouse.dir(默认:/user/hive/warehouse),外部表数据的存储位置由自己制定;
对内部表的修改会将修改直接同步给元数据,而对外部表的表结构和分区进行修改,则需要修复(MSCK REPAIR TABLE table_name;)

创建内部表:

create table t1(
    id      int
   ,name    string
   ,hobby   array<string>
   ,add     map<String,string>
)
row format delimited
fields terminated by ','
collection items terminated by '-'
map keys terminated by ':'
;

load data local inpath '/home/hadoop/Desktop/data' overwrite into table t1;
数据会被转移到/user/hive/warehouse/bigdata.db/t1/目录下
drop table 表的TBLS数据会被删除,并且对应t1目录下的数据也会被删除

创建外部表:

create external table t2(
    id      int
   ,name    string
   ,hobby   array<string>
   ,add     map<String,string>
)
row format delimited
fields terminated by ','
collection items terminated by '-'
map keys terminated by ':'
location '/user/t2'
;

load data local inpath '/home/hadoop/Desktop/data' overwrite into table t2;
数据会被转移到location '/user/t2'目录下,并且drop table /user/t2的数据不会被删除,仅仅删除了表对应的TBLS数据,重新建表location '/user/t2'后可以重新访问数据

查看TBLS

mysql> select * from TBLS \G;
*************************** 1. row ***************************
            TBL_ID: 1
       CREATE_TIME: 1551423522
             DB_ID: 1
  LAST_ACCESS_TIME: 0
             OWNER: wn
         RETENTION: 0
             SD_ID: 1
          TBL_NAME: test
          TBL_TYPE: MANAGED_TABLE
VIEW_EXPANDED_TEXT: NULL
VIEW_ORIGINAL_TEXT: NULL
*************************** 2. row ***************************
            TBL_ID: 6
       CREATE_TIME: 1551429586
             DB_ID: 6
  LAST_ACCESS_TIME: 0
             OWNER: wn
         RETENTION: 0
             SD_ID: 6
          TBL_NAME: t1
          TBL_TYPE: MANAGED_TABLE
VIEW_EXPANDED_TEXT: NULL
VIEW_ORIGINAL_TEXT: NULL
*************************** 3. row ***************************
            TBL_ID: 7
       CREATE_TIME: 1551429600
             DB_ID: 6
  LAST_ACCESS_TIME: 0
             OWNER: wn
         RETENTION: 0
             SD_ID: 7
          TBL_NAME: t2
          TBL_TYPE: EXTERNAL_TABLE
VIEW_EXPANDED_TEXT: NULL
VIEW_ORIGINAL_TEXT: NULL
3 rows in set (0.00 sec)

4、Hive表数据信息统计-》TABLE_PARAMS

字段关联,以及表
TBL_ID(TBLS)-> SD_ID(SDS)-> CD_ID(CDS)-> SERDE_ID(SERDES)
mysql> select * from TABLE_PARAMS;
+--------+-----------------------+-------------+
| TBL_ID | PARAM_KEY             | PARAM_VALUE |
+--------+-----------------------+-------------+
|      1 | COLUMN_STATS_ACCURATE | true        |
|      1 | numFiles              | 7           |
|      1 | numRows               | 13          |
|      1 | rawDataSize           | 57          |
|      1 | totalSize             | 70          |
|      1 | transient_lastDdlTime | 1551432870  |
|      6 | transient_lastDdlTime | 1551429586  |
|      7 | EXTERNAL              | TRUE        |
|      7 | transient_lastDdlTime | 1551429600  |

TBL_ID 表id
numFiles 文件个数
numRows 数据行数
rawDataSize 原始数据大小
totalSize 总的大小
transient_lastDdlTime 最后一次修改时间

5、SDS

字段关联,以及表
TBL_ID(TBLS)-> SD_ID(SDS)-> CD_ID(CDS)-> SERDE_ID(SERDES)
mysql> select * from SDS \G;
*************************** 1. row ***************************
                    SD_ID: 1
                    CD_ID: 1  --->CDS CD_ID
             INPUT_FORMAT: org.apache.hadoop.mapred.TextInputFormat  --->文件输入格式
            IS_COMPRESSED:       --->是否压缩 lzo 
IS_STOREDASSUBDIRECTORIES:   --->是否以子目录存储
                 LOCATION: hdfs://localhost:9000/user/hive/warehouse/test   --->文件存储位置
              NUM_BUCKETS: -1   ---> 分桶数量数量
            OUTPUT_FORMAT: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat   --->文件输出格式
                 SERDE_ID: 1   --->序列化类ID  对应SERDES表
*************************** 2. row ***************************
                    SD_ID: 6
                    CD_ID: 6
             INPUT_FORMAT: org.apache.hadoop.mapred.TextInputFormat
            IS_COMPRESSED:  
IS_STOREDASSUBDIRECTORIES:  
                 LOCATION: hdfs://localhost:9000/user/hive/warehouse/bigdata.db/t1
              NUM_BUCKETS: -1
            OUTPUT_FORMAT: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
                 SERDE_ID: 6
*************************** 3. row ***************************
                    SD_ID: 7
                    CD_ID: 7
             INPUT_FORMAT: org.apache.hadoop.mapred.TextInputFormat
            IS_COMPRESSED:  
IS_STOREDASSUBDIRECTORIES:  
                 LOCATION: hdfs://localhost:9000/user/t2
              NUM_BUCKETS: -1
            OUTPUT_FORMAT: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
                 SERDE_ID: 7
3 rows in set (0.00 sec)

6、SERDES

字段关联,以及表
TBL_ID(TBLS)-> SD_ID(SDS)-> CD_ID(CDS)-> SERDE_ID(SERDES)

记录的我们的表使用的是ORC、parquet还是textfile等

mysql> select * from serdes;
+----------+------+----------------------------------------------------+
| SERDE_ID | NAME | SLIB                                               |
+----------+------+----------------------------------------------------+
|        1 | NULL | org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe |
|        6 | NULL | org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe |
|        7 | NULL | org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe |
|       11 | NULL | org.apache.hadoop.hive.ql.io.orc.OrcSerde          |
+----------+------+----------------------------------------------------+

7、COLUMNS_V2

字段关联,以及表
TBL_ID(TBLS)-> SD_ID(SDS)-> CD_ID(CDS)-> SERDE_ID(SERDES)

记录的是每一张表的字段注释,字段名,字段类型,字段的index

mysql> select * from COLUMNS_V2;
+-------+---------+-------------+--------------------+-------------+
| CD_ID | COMMENT | COLUMN_NAME | TYPE_NAME          | INTEGER_IDX |
+-------+---------+-------------+--------------------+-------------+
|     1 | NULL    | id          | int                |           0 |
|     1 | NULL    | name        | string             |           1 |
|     6 | NULL    | add         | map<string,string> |           3 |
|     6 | NULL    | hobby       | array<string>      |           2 |
|     6 | NULL    | id          | int                |           0 |
|     6 | NULL    | name        | string             |           1 |
|     7 | NULL    | add         | map<string,string> |           3 |
|     7 | NULL    | hobby       | array<string>      |           2 |
|     7 | NULL    | id          | int                |           0 |
|     7 | NULL    | name        | string             |           1 |
|    11 | NULL    | id          | int                |           0 |
|    11 | NULL    | name        | string             |           1 |
+-------+---------+-------------+--------------------+-------------+

8、PARTITIONS

create table partition_test
(member_id string,
name string
)
partitioned by (
stat_date string,
province string)
ROW FORMAT DELIMITED FIELDS TERMINATED BY ',';
##以下代码仅用于测试,生产上不要用以下方式插入数据,一条数据也会执行mapreduce过程
insert into partition_test partition(stat_date='20190304',province='beijing') values (1,'zhangsan');

TBL_ID 对应的表
PART_NAME 分区名,hdfs上是对应表的目录
CREATE_TIME 分区的创建时间
LAST_ACCESS_TIME 最后一次访问时间,

mysql> select * from partitions;
+---------+-------------+------------------+-------------------------------------+-------+--------+
| PART_ID | CREATE_TIME | LAST_ACCESS_TIME | PART_NAME                           | SD_ID | TBL_ID |
+---------+-------------+------------------+-------------------------------------+-------+--------+
|       1 |  1551669247 |                0 | stat_date=20190304/province=beijing |    13 |     12 |
+---------+-------------+------------------+-------------------------------------+-------+--------+

9、partition_keys

TBL_ID 表id
PKEY_NAME partion名字
PKEY_TYPE partion类型
INTEGER_IDX partition顺序

mysql> select * from partition_keys;
+--------+--------------+-----------+-----------+-------------+
| TBL_ID | PKEY_COMMENT | PKEY_NAME | PKEY_TYPE | INTEGER_IDX |
+--------+--------------+-----------+-----------+-------------+
|     12 | NULL         | province  | string    |           1 |
|     12 | NULL         | stat_date | string    |           0 |
+--------+--------------+-----------+-----------+-------------+

10、partition_key_vals

PART_ID partition id
PART_KEY_VAL partition key 对应的内容
INTEGER_IDX partition的index

mysql> select * from partition_key_vals;
+---------+--------------+-------------+
| PART_ID | PART_KEY_VAL | INTEGER_IDX |
+---------+--------------+-------------+
|       1 | 20190304     |           0 |
|       1 | beijing      |           1 |
|       2 | 20190305     |           0 |
|       2 | beijing      |           1 |
+---------+--------------+-------------+

11、PARTITION_PARAMS

PART_ID partition id
numFiles 分区文件数
numRows 分区数据数量
rawDataSize 分区原始数据大小
totalSize 分区数据总大小
transient_lastDdlTime 最后一次变更数据的时间

mysql> select * from PARTITION_PARAMS;
+---------+-----------------------+-------------+
| PART_ID | PARAM_KEY             | PARAM_VALUE |
+---------+-----------------------+-------------+
|       1 | COLUMN_STATS_ACCURATE | true        |
|       1 | numFiles              | 1           |
|       1 | numRows               | 1           |
|       1 | rawDataSize           | 10          |
|       1 | totalSize             | 11          |
|       1 | transient_lastDdlTime | 1551669247  |
|       2 | COLUMN_STATS_ACCURATE | true        |
|       2 | numFiles              | 2           |
|       2 | numRows               | 2           |
|       2 | rawDataSize           | 20          |
|       2 | totalSize             | 22          |
|       2 | transient_lastDdlTime | 1551670467  |
+---------+-----------------------+-------------+

codeobj , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:Hive MetaStore常用的元数据在Mysql中对应的表
喜欢 (0)
[a37free@163.com]
分享 (0)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址