hbase和hive的區別是什麼?怎麼區分兩者之間的關係?

HIVE: 

hive,是一款開源的數據倉庫 

1、hive不是數據庫,而是數據倉庫,主要依賴於hadoop來實現

2、底層文件系統是hadoop的hdfs,實現對hdfs上結構化數據的SQL操作HQL,速度較慢

3、計算引擎是hadoop的mapreduce

4、依靠存儲在其他關係型數據庫metastore來對hdfs結構化數據進行管理,實現類似數據庫的功能

5、不具備數據庫的一些主鍵、索引、update操作等特性,但是提供了分區、塊索引、SQL等特性

6、比較適合存儲海量的全量(歷史+更新)軌跡數據,比對數據進行批量的挖掘、分析等操作

總結一下,hive是基於hadoop實現的數據倉庫,適合存儲海量全量數據,支持類SQL操作,性能相對較差,數據存儲

有一定的限制,不支持更新、索引等事務。適合海量數據的挖掘和分析,通俗一點來說,hive其實就是藉助mysql等數據庫在

hadoop上層套了一個殼,來實現對hdfs上結構化數據的映射,爲上層提供sql服務。

 

HBASE:

即Hadoop databse,顧名思義就是一個hadoop的數據庫

1、nosql數據庫之一,基於列式存儲(列族),適合海量半結構化數據的存儲和檢索

2、不支持SQL、適合海量、帶時間序列的數據的存儲和檢索、性能較好

3、原生支持基於rowkey的一級索引,rowkey按照字典序進行排序

4、運算執行引擎是hbase自身提供、底層存儲基於hdfs

 

總結一下,hbase是NOSQL數據庫的一種,基於分佈式列式存儲,適合海量半結構化帶時間序列的數據的存儲和檢索,性能較優秀,hbase底層存儲依賴於hdfs,與rdbms的區別與其他nosql類似,比如不支持SQL、事務性相對較差等等。

 

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------

綜上,hbase是數據庫、hive是數據倉庫,而這有很大的區別、也有很多類似的地方比如都屬於hadoop生態圈、存儲都基於hdfs等。一般來說用hive作爲海量結構化全量數據的存儲、運算、挖掘、分析;hbase用來作爲海量半結構化數據的存儲、檢索;這二者可以很好協同工作,hive上計算完的結果放在hbase中供檢索,也可以將hbase裏面的結構化數據和hive相結合,實現對hbase的sql操作等等。

--------------------- 作者:zx8167107 來源:CSDN 原文:https://blog.csdn.net/zx8167107/article/details/79265537?utm_source=copy 版權聲明:本文爲博主原創文章,轉載請附上博文鏈接!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章