开发者社区> 晓之以理的喵~~> 正文

Hive 的数据存储单元结构

简介: Hive 的数据存储单元结构
+关注继续查看
hive的数据都存储在HDFS,主要是指Hive中的数据模型存储。

Hive中的数据存储单元结构有:数据库Database、表table(内部表table、外部表external table)、分区partition、桶或簇 Buckets or Clusters。

1, 数据库 Database

在HDFS上对应相应的数据存储目录,通过hive的配置文件hive-site.xml的hive.metastore.warehouse.dir属性来配置。通过create database data_name命令创建。与传统的关系型数据库一样,数据库是一个名称空间,作用是避免表、视图、分区、列等的命名冲突。数据库还可用于为用户或用户组实施安全性。

2,表table

与传统的关系型数据库一样,具有相同模式的同质数据单元。每个表在hive中都是Database路径下的一个存储目录,在hive中知道一个表的存储路径可以通过hive命令 desc formatted table_name 显示表的详细信息;

hive的表分为内部表和外部表

内部表:数据由Hive自身管理,存储的位置是hive在hdfs中存在默认的存储路径,即default数据库(默认:/user/hive/warehouse),删除内部表会直接删除元数据(metadata)及存储数据,对内部表的修改会将修改直接同步给元数据。

外部表:数据由HDFS管理,存储的位置由自己指定,可以指定除/user/hive/warehouse以外的路径,删除外部表仅仅会删除元数据,HDFS上的文件并不会被删除,而对外部表的表结构和分区进行修改,则需要修复(MSCK REPAIR TABLE
table_name)

3,分区partition

每个表可以有一个或多个分区键,用于确定数据的存储方式。分区除了作为存储单元外,还允许用户有效地识别满足指定条件的行;在hive中,表中的每个partition对应于表下的一个子存储目录。分区键的每个唯一值定义了表的一个分区,分区列(Partition columns)是虚拟列,它们不是数据本身的一部分,而是在加载时派生的。

4,桶或簇 Buckets or Clusters

每个分区中的数据又可以基于表的散列函数值被划分为桶。每个Buckets对应一个存储文件。如果表有分区,文件保存在分区目录下,如果没有分区,文件保存在表目录下。

文章参考链接:https://www.gairuo.com/p/hive-data-units

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Hive内部表与外部表的区别及使用场景
Hive内部表与外部表的区别及使用场景
70 0
Hive内部表和外部表
Hive内部表和外部表
87 0
【Hive】(五)Hive 中动态分区与静态分区详解
【Hive】(五)Hive 中动态分区与静态分区详解
133 0
hbase的表映射到hive中
1.本文主要说一下怎么把hbase中的表映射到hive中,说之前我们先简单说一下hive的内部表和外部表的区别; (1),被external关键字修饰的表是外部表,没有被external关键字修饰的表是内部表. (2),内部表数据由Hive自身管理,外部表数据由HDFS管理. (3),内部表数据存储的位置是hive.metastore.warehouse.dir.外部表数据的存储位置由自己确定. (4),删除内部表会直接删除元数据(metadata)及存储数据;删除外部表仅仅会删除元数据,HDFS上的文件并不会被删除;
192 0
hive内部表和外部表的区别
hive内部表和外部表的区别
221 0
HBase2.0重新定义小对象实时存取
小对象,特别指1K~10MB范围的数据,比如图片,短视频,文档等广泛的存在于人工智能,医疗,教育,生活分享,电子商务等领域。HBase2.0在MOB技术的加持下重新定义小对象实时存取,具有低延迟,读写强一致,检索能力强,水平易扩展等关键能力
3266 0
+关注
晓之以理的喵~~
好好学习,天天向上!
文章
问答
视频
文章排行榜
最热
最新
相关电子书
更多
HBase2.0重新定义小对象实时存取
立即下载
Apache Flink 流式应用中状态的数据结构定义升级
立即下载
Hadoop存储与计算分离实践
立即下载