[学习笔记]Hive数据模型

版权声明:欢迎转载,注明出处即可 https://blog.csdn.net/yolohohohoho/article/details/87824389

Hive数据模型

Hive中的数据模型主要分为:

  • 表,这些类似于关系数据库中的表。表可以过滤,投影,连接和联合。此外,表的所有数据都存储在HDFS的目录中。 Hive还支持外部表的概念,其中通过向表创建DDL提供适当的位置,可以在HDFS中的现有文件或目录上创建表。
  • 分区,每个表可以有一个或多个分区键,用于确定数据的存储方式,例如,带有日期分区列ds的表T 的数据将会被存储在<table location>/ds=<dateX>的HDFS目录中。另一方面,利用分区键可以大大加快了查询速度,例如,当我们查询T.ds ='2008-09-01’的数据时, Hive只需查看子目录ds=2008-09-01即可。
  • 桶 ,每个分区中的数据可以依次根据表中列的散列(hash)划分为桶。每个存储桶都以文件形式存储在分区目录中。 分桶允许系统有效地执行依赖于数据样本(SAMPLE)的查询。

除了原始列类型(整数integers,浮点数floating point numbers,泛型字符串generic strings,日期和布尔值dates and booleans)之外,Hive还支持数组(array)和映射(map)。此外,用户可以基于基本类型定义自己的数据类型。
用户可以通过实现自己的对象检查器(object inspectors)来创建自己的类型。也可以使用这些对象检查器,他们可以创建自己的序列化/反序列化器来将其数据序列化/反序列化到HDFS文件中。

猜你喜欢

转载自blog.csdn.net/yolohohohoho/article/details/87824389