Hive和传统数据库有什么区别和联系

Hive和传统数据库有什么区别和联系,第1张

Hive与传统的关系型数据库有很多类似的地方,例如对SQL的支持。但是其基于HDFS与MapReduce的事实使得它与传统的数据库在很多方面有很大的不同,在一些特性的支持下也受到底层架构的限制,但是这些限制随着版本迭代正在不断被消除,使得Hive看起来越来越像传统的数据库。

hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供完整的sql查询功能,可以将sql语句转换为MapReduce任务进行运行。

优点:学习成本低,可以通过类SQL语句快速实现简单的MapReduce统计,不必开发专门的MapReduce应用,十分适合数据仓库的统计分析。

hive与关系型数据库的区别

1、数据加载

关系数据库:表的加载模式是在数据加载时候强制确定的(表的加载模式是指数据库存储数据的文件格式),如果加载数据时候发现加载的数据不符合模式,关系数据库则会拒绝加载数据,这个就叫“写时模式”,写时模式会在数据加载时候对数据模式进行检查校验的 *** 作。

Hive:hive在加载数据时候不会对数据进行检查,也不会更改被加载的数据文件,而检查数据格式的 *** 作是在查询 *** 作时候执行,这种模式叫“读时模式”。

在实际应用中,写时模式在加载数据时候会对列进行索引,对数据进行压缩,因此加载数据的速度很慢,但是当数据加载好了,我们去查询数据的时候,速度很快。

但是当我们的数据是非结构化,存储模式也是未知时候,关系数据 *** 作这种场景就麻烦多了,这时候hive就会发挥它的优势。

2、

关系数据库:可以对某一行或某些行的数据进行更新、删除 *** 作。更新、事务和索引等等。

hive:不支持对某个具体行的 *** 作,也不支持事务和索引,hive对数据的 *** 作只支持覆盖原数据和追加数据。

hive的设计是对海量数据进行处理,全数据的扫描时常态。针对某些具体数据进行 *** 作的效率是很差的,对于更新 *** 作,hive是通过查询将原表的数据进行转化最后存储在新表里,这和传统数据库的更新 *** 作有很大不同。

3、

Hive也可以在hadoop做实时查询上做一份自己的贡献,那就是和hbase集成,hbase可以进行快速查询,但是hbase不支持类SQL的语句,那么此时hive可以给hbase提供sql语法解析的外壳,可以用类sql语句 *** 作hbase数据库。

hbase和hive的主要区别是:他们对于其内部的数据的存储和管理方式是不同的,hbase其主要特点是仿照bigtable的列势存储,对于大型的数据的存储,查询比传统数据库有巨大的优势,而hive其产生主要应对的数据仓库问题,其将存在在hdfs上的文件目录结构映射成表。主要关注的是对数据的统计等方面。适合的场景:hbase:适合大型数据存储,其作用可以类比于传统数据库的作用,主要关注的数据的存取。hive:适合大数据的管理,统计,处理,其作用类比于传统的数据仓库,主要关注的数据的处理。总结:应对大数据的时候,如果你偏重于数据存储查询hbase无疑是更加适合,而你关注的是对大数据的处理结果查询,比如你查询的时候有类似于count,sum等函数 *** 作 hive就能满足你的需求,一般有些项目都输在hive里面进行数据处理,然后将结果导入mysql等数据库或者hbase中进行查询,至于mysql与hbase的选择 比较倾向于你的处理之后的数据量


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/10712606.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-10
下一篇2023-05-10

发表评论

登录后才能评论

评论列表(0条)

    保存