hive

hive

Hive介绍

hive 数据仓库工具

Hive是基于Hadoop的数据仓库解决方案。由于Hadoop本身在数据存储和计算方面有很好的可扩展性和高容错性,因此使用Hive构建的数据仓库也秉承了这些特性。

简单来说,Hive就是在Hadoop上架了一层SQL接口,可以将SQL翻译成MapReduce去Hadoop上执行,这样就使得数据开发和分析人员很方便的使用SQL来完成海量数据的统计和分析,而不必使用编程语言开发MapReduce那么麻烦。

Hive就是我们所说的使用传统的sql来分析海量数据的工具。

可以把Hive当成一个“数据库”,它也具备传统数据库的数据单元,数据库(Database/Schema)和表(Table).但实际上只是Hadoop上的一个工具。

所以从技术角度来看:

hive就是一个翻译器,将传统的sql转化成mapreduce。

或者说:hive是基于mapreduce 的一个上层数据分析框架

Hive的两个组成部分:

1.基于mapreduce

2.使用传统sql的编程思想(类sql语句)

所以结合hive的两大主要组件来看,hive的用处如下:

hive能够用来进行海量数据的存储、查询和离线分析

Hive原理

  • Hive架构

Hive通过给用户提供的一系列交互接口,接收到用户的指令(SQL),使用自己的Driver,结合元数据(MetaStore),将这些指令翻译成MapReduce,提交到Hadoop中执行,最后,将执行返回的结果输出到用户交互接口。

在使用过程中,只需要将Hive看做是一个数据库就行,本身Hive也具备了数据库的很多特性和功能。

  • Hive数据库

Hive中的数据库概念,本质上仅仅是表的一个目录结构或命名空间。

  • Hive表
  • Hive的数据单元

    Databases:数据库。概念等同于关系型数据库的Schema,不多解释;

    Tables:表。概念等同于关系型数据库的表,不多解释;

    Partitions:分区。概念类似于关系型数据库的表分区,没有那么多分区类型,只支持固定分区,将同一组数据存放至一个固定的分区中。

    Buckets (or Clusters):分桶。同一个分区内的数据还可以细分,将相同的KEY再划分至一个桶中,这个有点类似于HASH分区,只不过这里是HASH分桶,也有点类似子分区吧。更细粒度的操作。

  • 管理表(内部表)

    Hive会控制表中数据的生命周期,当删除一张管理表时,同时也会删除表中的数据。管理表中的数据不与其他工具共享。

  • 外部表

    Hive只控制元数据,当删除一张外部表时,只会删除元数据,并不会删除真实数据。外部表中的数据与其他工具共享。

  • 内、外部表的区别:
    • 删除表时:

    • 数据是否共享:

    • 一些HiveQL语法不试用于外部表。

  • 分区管理表、分区外部表

    Hive中的分区表类型并不复杂,通常以表中的某一个或多个列为分区依据,并创建文件夹,将表中的其他列中的数据放到该文件夹下的数据文件中。

    创建分区表的最主要的目的是:快速查询!

    分区还可以分为静态分区和动

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值