数据依然是存储在HDFS中,由HDFS负责管理数据冗余与一致性。Hive只是在此基础上构建了一个表,在进行数据查询时,Hive引擎将sql语句转化为下层的mr作业,然后在mr的基础上进行计算,计算完成,最后返回结果。
Hive的语法从MysqL中借鉴了很多东西,因此很多MysqL语句可以直接在Hive中使用。但MysqL属于数据库,Hive属于数据仓库,它们对数据的处理有着本质的区别。
数据库与数据仓库,好比商店的柜台与货仓。你去商店买东西,需要什么东西,只要一问售货员,基本能在1秒之内告诉你在哪儿,价格是多少。柜台好比数据库,需要取数据的时候非常快。如果你问售货员,店里面今年销量最好的手机还有多少部的时候(你就是想买10部送朋友),可能就不会很快得到答案了。因为,售货员需要知道哪款手机卖得最好,另外还需要去仓库里面清点一下存量,假定仓库里面的手机型号太多的话,可能她10分钟才会告诉你答案。这里的仓库也就是数据仓库,数据仓库处理一些并不需要及时反馈的数据,在交互时间上,可能是分钟级别。
Hive就属于这种数据仓库,Hive并不能作为线上使用的数据库,因为执行一条简单的sql语句,它可能都需要花一分钟来处理。因此,这也正是数据分析的核心。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。