HIVE与HBASE区别

背景:大数据的数据存储以及被测系统ETL、BI工具均离不开这两个组件,因此有一些接触。


     “hive与hbase的区别究竟是什么?”

     当我问出这个问题的时候,资深的大数据同事都会觉得很奇怪,这是两个完全不同的东西,为何会问他们有何区别,但是初始大数据组件的同学也许都会有同样的疑问,认为都是存储数据的组件,都可以从里面获取需要的数据,有何区别呢?


      Hive是数据仓库,那又有同学会疑问:数据仓库这个概念又怎么理解。数据仓库是为分析数据而设计,它的两个基本的元素是维表和事实表。(维是看问题的角度,比如时间,部门,维表放的就是这些东西的定义,事实表里放着要查询的数据,同时有维的ID),在数据仓库中,数据是冗余的。

      其实, Hive可以看作是用户编程接口,它本身不存储和计算数据,存储它依赖于HDFS,计算它依赖与MapReduce(MapReduce的原理之后会写专门的文章来通过实际的场景来讲解)

      当我们查看表信息时,可以看到在hdfs上实际存储的位置(默认以三副本形式存储,在介绍hdfs文章中有讲解)。

     当我们在hive命令行输入一个hive命令时,我们可以看到如下的图片。



HBase具备随即读写功能,是一种面向列的非关系型数据库。

  以关系型数据的思维下会感觉,上面的表格是一个5列4行的数据表格,但是在HBase中这种理解是错误的,其实在HBase中上面的表格只是一行数据;由{row key,column(=<family> +<qualifier>),version}唯一确定的单元。



         Hive适用于网络日志等数据量大、静态的数据查询。例如:用户消费行为记录,网站访问足迹等。但是不适用于联机实时在线查询的场合。

         HBase能在大数据联机实时查询场合大展身手。


延伸解析:如何理解非关系型数据库

       关系模型指的就是二维表格模型,而一个关系型数据库就是由二维表及其之间的联系所组成的一个数据组织。

       而非关系型数据库以键值对存储,且结构不固定,每一个元组可以有不一样的字段,每个元组可以根据需要增加一些自己的键值对,这样就不会局限于固定的结构,可以减少一些时间和空间的开销。使用这种方式,用户可以根据需要去添加自己需要的字段,这样,为了获取用户的不同信息,不需要像关系型数据库中,要对多表进行关联查询。仅需要根据id取出相应的value就可以完成查询。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Zookeeper用于集群主备切换。 YARN让集群具备更好的扩展性。 Spark没有存储能力。 Spark的Ma...
    Yobhel阅读 12,080评论 0 34
  • 【什么是大数据、大数据技术】 大数据,又称巨量资料,指的是所涉及的数据资料量规模巨大到无法在合理时间内通过传统的应...
    kimibob阅读 7,692评论 0 51
  • 前言: Hadoop的课程已经告一段落,基本上在零基础课程里不会再出现了,接下来的课程由若总来上,第一讲Have。...
    ly稻草阅读 9,361评论 1 9
  • 简介 HBase是高可靠性,高性能,面向列,可伸缩的分布式存储系统,利用HBase技术可在廉价PC Serve...
    九世的猫阅读 6,623评论 1 6
  • 我在课堂上,当学生正确回答问题时,我常常进行鼓励,这是帮忙初学者克服英语学习的良好方法。而且任何鼓励都会使...
    远方那朵格桑花阅读 3,375评论 0 1