天天看点

Hive学习笔记10@元数据解析Mysql元数据库

Hive元数据不存放在Hdfs上,而是存放在RDBMS上,典型的如Mysql、Derby等。

Mysql元数据库

查看元数据库

use hive;   //使用 hive 数据库库

show tables;

mysql> show tables;

+---------------------------+

| Tables_in_hive            |

+---------------------------+

| BUCKETING_COLS            |

| CDS                       |

| COLUMNS_V2                |

| DATABASE_PARAMS           |

| DBS                       |

| FUNCS                     |

| FUNC_RU                   |

| GLOBAL_PRIVS              |

| IDXS                      |

| INDEX_PARAMS              |

| PARTITIONS                |

| PARTITION_KEYS            |

| PARTITION_KEY_VALS        |

| PARTITION_PARAMS          |

| PART_COL_PRIVS            |

| PART_COL_STATS            |

| PART_PRIVS                |

| ROLES                     |

| SDS                       |

| SD_PARAMS                 |

| SEQUENCE_TABLE            |

| SERDES                    |

| SERDE_PARAMS              |

| SKEWED_COL_NAMES          |

| SKEWED_COL_VALUE_LOC_MAP  |

| SKEWED_STRING_LIST        |

| SKEWED_STRING_LIST_VALUES |

| SKEWED_VALUES             |

| SORT_COLS                 |

| TABLE_PARAMS              |

| TAB_COL_STATS             |

| TBLS                      |

| TBL_COL_PRIVS             |

| TBL_PRIVS                 |

| VERSION                   |

+---------------------------+

元数据表说明

表名 表说明 关联键
COLUMNS_V2 Hive表字段信息(字段注释,字段名,字段类型,字段序号) CD_ID
DBS 元数据库信息(数据库描述、数据库LOCATION_URI,名称等)
PARTITIONS Hive表分区信息
PARTITION_KEYS Hive分区表分区键
PARTITION_KEY_VALS Hive表分区名(键值)
SDS 所有hive表、表分区所对应的hdfs数据目录和数据格式 SD_ID,CD_ID
SEQUENCE_TABLE Hive序列信息(序列名称,序列值)
SERDE_PARAM 序列化反序列化信息,如行分隔符、列分隔符、NULL的表示字符等
TABLE_PARAMS 表级属性,如是否外部表,表注释等
TBLS hive表的基本信息

Hive创建表过程

解析用户提交hive语句,对其进行解析,分解为表、字段、分区等hive对象;

根据解析到的信息构建对应的表、字段、分区等对象,从SEQUENCE_TABLE中获取构建对象的最新ID,与构建对象信息(名称,类型等)一同通过DAO方法写入到元数据表中去,成功后将SEQUENCE_TABLE中对应的最新ID+5。