数据仓库技术及应用(Hive的存储格式)

一、Hive的存储格式

Hive中的数据有真实数据与元数据之分,元数据是表示真实数据与Hive表的映射关系。

1. Hive真实数据的存储格式:

  • TEXTFILE,文本文件格式
  • SEQUENCEFILE,二进制序列化过的文本存储文件格式
  • RCFILE,面向列的数据存储格式
  • ORCFILE,对RCFILE的优化格式

2. Hive数据单元介绍:

  • Databases,数据库,在HDFS中为hive.metastore。warehouse.dir目录下的一个文件夹
  • Tables,表,内部表类似于RDBMS中的表,由Hive管理;外部表指向已经存在HDFS中的数据,外部表的真实数据不被Hive管理。
  • 分区,每个表都可以按指定的键分为多个分区,作用是为了提高查询的效率,在HDFS中是表目录的子目录
  • 分桶,根据表中某一列的哈希值将数据分为多个桶,在HDFS最终为同一目录下根据哈希散列后的多个文件

3. Hive存储模型

Hive数据在HDFS的典型存储结构表现:

/数据仓库地址/数据库名/表名/数据文件(或分桶文件)

/数据仓库地址/数据库名/表妹/分区键/数据文件(或粪桶文件)

Hive数据存储模型图

4. Hive的基本数据类型(具体的字节数)

  1. 整型:TINYINT、SMALLINT、INT、BIGINT使用整数面量时,默认是INT,其他整型需要加后缀,TINYINT、SMALLINT、BIGINT后缀为Y、S、L
  2. 浮点型:FLOAT、DOUBLE、DECIMAL
  3. 文本类型:STRING、CHAR、VARCHAR
  4. 布尔及二进制:-BOOLEAN(布尔值型),值为true和false,-BINARY(二进制型)(转化要记住)
  5. 时间类型:-DATE,存储日期;-TEMESTAMP,存储纳秒级别时间戳;-INTERVAL,存储时间间隔(要记住)

5. Hive的复杂数据类型

  • ARRAY :具有相同类型变量的集合,如:["a","b"]
  • MAP :一组键值对组合,如:{"a","b","c":"d"}\
  • STRUCT :封装了一组有名字的字段,其类型可以是任意基本类型
  • UNIONTYPE :类似于Java中的泛型,任一时刻只有其中一种类型生效

6. 总结

  • Hive是Hadoop上处理结构化数据的数据仓库基础工具,用来处理储存在Hadoop上的海量数据
  • Hive使用HQL替代MapReduce,使传统数据库开发人员更容易使用Hadoop
  • Hive依赖Hadoop的HDFS和YARN
  • Hive与RDBMS用法相似,但应用场景有显著区别
  • CLI、HiveServer2、HWI、Driver、Metastore
  • Hive数据存储模型与RDBMS类似,分区和分桶是Hive为了提升查询性能而特有的概念
  • Hive元数据释放对真实数据的描述,通常单独存储在MySQL中
  • Hive除了两种命令行开发工具(CLI和Beeline)之外还有许多第三方工具(HUE、Ambari、zeppelin)
  • 5
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值