Hive及其工作机制简介

Hive是一个基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一个表。并提供类SQL查询功能。

数据仓库

数据库是用来支撑在线联机业务的。比如页面上的数据的展示,保存客户操作产生的数据。这类要求变更是实时的、事务的

数据仓库:如果联机数据库中的数据太大了,需要将历史信息导入到离线的仓库中。可以存入各种各样的系统的数据。可以按照一定主题来组织这些表。每一个主题中的数据可能结构跟系统的表不同。可能需要从运行数据库中多个表中得到。面向历史的。

数据仓库的建模模型

不遵循数据库范式,绝大部分是宽表,冗余没关系。因为目标不同,设计就不同。大部分都是以空间换时间。

几个建模的模型:

  • 星型
  • 雪花型
  • 三范式型(不常用)

数据仓库有什么用

做统计,做数据分析。比如统计年度销售额,月度销售额,广告推荐等。

为什么用Hive

使用Hadoop面临的问题:

  • 学习成本很高
  • 项目周期要求太短
  • MapReduce实现复杂查询逻辑开发难度太大

为什么用Hive:

  • 操作接口采用类SQL语法,提供快速开发的能力。
  • 避免了写MapReduce

Hive的工作机制

将清洗过的数据放入到HDFS中,就可以进行各种统计了。但是有些需求用MapReduce写起来非常难,所以有了Hive。

先上一张架构图。

Hive提供接口,用户可以用它创建表。表会放在/user/hive/warehouse/,一张表就是一个目录。元信息会记录在关系型数据库中(MySQL),它也内置了Debby,但是它是嵌入式的数据库,会造成不同Hive建表不可见的问题。

可以在Hive中建表,最好字段类型都用String,比较方便。

然后就可以使用SQL语句查询了。每一个SQL语句都被Hive的语法解析器解析、组装成一个MapReduce程序,然后提交给YARN,运行完成后就可以把结果输出出来。也可以把结果写到其他表里面。

发布了187 篇原创文章 · 获赞 102 · 访问量 32万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 编程工作室 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览