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

相关文章
|
2月前
|
SQL 分布式计算 Hadoop
Hadoop-14-Hive HQL学习与测试 表连接查询 HDFS数据导入导出等操作 逻辑运算 函数查询 全表查询 WHERE GROUP BY ORDER BY(一)
Hadoop-14-Hive HQL学习与测试 表连接查询 HDFS数据导入导出等操作 逻辑运算 函数查询 全表查询 WHERE GROUP BY ORDER BY(一)
48 4
|
2月前
|
SQL 分布式计算 关系型数据库
Hadoop-21 Sqoop 数据迁移工具 简介与环境配置 云服务器 ETL工具 MySQL与Hive数据互相迁移 导入导出
Hadoop-21 Sqoop 数据迁移工具 简介与环境配置 云服务器 ETL工具 MySQL与Hive数据互相迁移 导入导出
68 3
|
2月前
|
SQL
Hadoop-14-Hive HQL学习与测试 表连接查询 HDFS数据导入导出等操作 逻辑运算 函数查询 全表查询 WHERE GROUP BY ORDER BY(二)
Hadoop-14-Hive HQL学习与测试 表连接查询 HDFS数据导入导出等操作 逻辑运算 函数查询 全表查询 WHERE GROUP BY ORDER BY(二)
41 2
|
2月前
|
SQL 分布式计算 关系型数据库
Hadoop-24 Sqoop迁移 MySQL到Hive 与 Hive到MySQL SQL生成数据 HDFS集群 Sqoop import jdbc ETL MapReduce
Hadoop-24 Sqoop迁移 MySQL到Hive 与 Hive到MySQL SQL生成数据 HDFS集群 Sqoop import jdbc ETL MapReduce
94 0
|
4月前
|
SQL 物联网 数据处理
"颠覆传统,Hive SQL与Flink激情碰撞!解锁流批一体数据处理新纪元,让数据决策力瞬间爆表,你准备好了吗?"
【8月更文挑战第9天】数据时代,实时性和准确性至关重要。传统上,批处理与流处理各司其职,但Apache Flink打破了这一界限,尤其Flink与Hive SQL的结合,开创了流批一体的数据处理新时代。这不仅简化了数据处理流程,还极大提升了效率和灵活性。例如,通过Flink SQL,可以轻松实现流数据与批数据的融合分析,无需在两者间切换。这种融合不仅降低了技术门槛,还为企业提供了更强大的数据支持,无论是在金融、电商还是物联网领域,都将发挥巨大作用。
63 6
|
4月前
|
SQL 关系型数据库 HIVE
实时计算 Flink版产品使用问题之如何将PostgreSQL数据实时入库Hive并实现断点续传
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
4月前
|
SQL 分布式计算 数据处理
实时计算 Flink版产品使用问题之怎么将数据从Hive表中读取并写入到另一个Hive表中
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
4月前
|
SQL 存储 分布式计算
|
4月前
|
SQL 存储 监控
Hive 插入大量数据
【8月更文挑战第15天】