-
Hive数据模型包括:
-
Database 数据库:Hive数据模型的概念等同于关系型数据库的schema,是数据库的组织和结构,描述了数据库的表、列、视图等对象的信息
-
Table 表:Hive中表的概念与关系型数据库中表的概念一致
-
Partition 分区:类似关系数据中的表分区,Hive中同一分区的数据会放到同一目录下,使用分区在一些条件下能够提高计算效率,同一分区的数据可以进一步划分为桶,类似于子分区。
-
Bucket 桶:分区的数据可以进一步划分为桶,类似于子分区。
-
-
与关系数据库的区别在于Hive的表可以分为内部表和外部表
-
内部表Drop的时候会删除HDFS上的数据,适用于中间表等不需要从外部导入数据的情况。
-
外部表Drop时候不会删除HDFS上的数据,适用于将外部数据映射到表中的源表。
-
描述数据的数据
元数据是对具体数据的一种格式化,Hive将SQL翻译成MapReduce的过程需要结合元数据来完成,Hive的元数据存储在关系型数据库中,这个数据库可以是Hive自带的derby,也可以是外部的MySQL数据库。
字段 | 用途 |
---|---|
VERSION | 存储Hive版本的元数据表 |
DBS、DATABASE_PARAMS | Hive数据库相关的源数据表 |
TBLS、TBL_PRIVS、TABLE_PARAMS | Hive表和视图相关的元数据表 |
SDS、SD_PARAMS、SERDES、SERDE_PARAMS | Hive文件存储信息相关的元数据表 |
注:
DBS中存储Hive中所有数据库的基本信息。
DATABASE_PARAMS存储数据库的相关参数。
不太常用的源数据表
字段 | 用途 |
---|---|
COLUMNS_V2 | 表字段相关元数据 |
PARTITIONS、PARTITION_KEYS、PARTITION_KEY_VALS、PARTITION_PARAMS | 数据库权限信息表 |
DB_PRIVS | 数据库权限信息表 |
IDXS | 存储Hive索引相关元信息 |
INDEX_PARAMS | 索引相关的属性信息 |
TAB_COL_STATS | 表字段的统计信息 |
TBL_COL_PRIVS | 表字段的授权信息 |
PART_PRIVS | 分区的授权信息 |
PART_COL_STATS | 分区字段的统计信息 |
PART_COL_PRIVS | 分区字段的权限信息 |
FUNCS | 用户注册的函数信息 |
FUNC_RU | 用户注册函数的资源信息 |