hbase和傳統(tǒng)關(guān)系數(shù)據(jù)庫的區(qū)別(hbase和hadoop的關(guān)系)

大家好,關(guān)于hbase和傳統(tǒng)關(guān)系數(shù)據(jù)庫的區(qū)別很多朋友都還不太明白,今天小編就來為大家分享關(guān)于hbase和hadoop的關(guān)系的知識,希望對各位有所幫助!hbase是還是組...
大家好,關(guān)于hbase和傳統(tǒng)關(guān)系數(shù)據(jù)庫的區(qū)別很多朋友都還不太明白,今天小編就來為大家分享關(guān)于hbase和hadoop的關(guān)系的知識,希望對各位有所幫助!
hbase是還是組件數(shù)據(jù)庫
HBase–HadoopDatabase,是一個高可靠性、高性能、面向列、可伸縮的分布式存儲系統(tǒng),利用HBase技術(shù)可在廉價PCServer上搭建起大規(guī)模結(jié)構(gòu)化存儲集群。
與FUJITSUCliq等商用大數(shù)據(jù)產(chǎn)品不同,HBase是GoogleBigtable的開源實現(xiàn),類似GoogleBigtable利用GFS作為其文件存儲系統(tǒng),HBase利用HadoopHDFS作為其文件存儲系統(tǒng);Google運行MapReduce來處理Bigtable中的海量數(shù)據(jù),HBase同樣利用HadoopMapReduce來處理HBase中的海量數(shù)據(jù);GoogleBigtable利用Chubby作為協(xié)同服務(wù),HBase利用Zookeeper作為對應(yīng)。
hbase與mpp數(shù)據(jù)庫的區(qū)別
hbase
HBase是一個分布式的、面向列的開源數(shù)據(jù)庫,該技術(shù)來源于FayChang所撰寫的Google論文“Bigtable:一個結(jié)構(gòu)化數(shù)據(jù)的分布式存儲系統(tǒng)”。
mpp數(shù)據(jù)庫
大規(guī)模并行分析(MPP)數(shù)據(jù)庫(AnalyticalMassivelyParallelProcessing(MPP)Databases)是針對分析工作負載進行了優(yōu)化的數(shù)據(jù)庫:聚合和處理大型數(shù)據(jù)集。MPP數(shù)據(jù)庫往往是列式的,因此MPP數(shù)據(jù)庫通常將每一列存儲為一個對象,而不是將表中的每一行存儲為一個對象(事務(wù)數(shù)據(jù)庫的功能)。這種體系結(jié)構(gòu)使復(fù)雜的分析查詢可以更快,更有效地處理。
非關(guān)系型數(shù)據(jù)庫和關(guān)系型數(shù)據(jù)庫區(qū)別,優(yōu)勢比較
隨著大數(shù)據(jù)的發(fā)展,數(shù)據(jù)庫也越來越受重視了。當前數(shù)據(jù)庫分為關(guān)系型數(shù)據(jù)庫和非關(guān)系數(shù)據(jù)庫。下面通俗的解釋區(qū)別和優(yōu)缺點。
概念的解釋關(guān)系型數(shù)據(jù)庫:指采用了關(guān)系模型來組織數(shù)據(jù)的數(shù)據(jù)庫。這邊關(guān)系可以理解為表,所以
系模型指的就是二維表格模型,而一個關(guān)系型數(shù)據(jù)庫就是由二維表及其之間的聯(lián)系所組成的一個數(shù)據(jù)組織。
非關(guān)系型數(shù)據(jù)庫:指非關(guān)系型的,分布式的,且一般不保證遵循ACID原則的數(shù)據(jù)存儲系統(tǒng)。非關(guān)系型數(shù)據(jù)庫以鍵值對存儲,且結(jié)構(gòu)不固定,每一個元組可以有不一樣的字段,每個元組可以根據(jù)需要增加一些自己的鍵值對,不局限于固定的結(jié)構(gòu),可以減少一些時間和空間的開銷。
兩者優(yōu)缺點分析關(guān)系型數(shù)據(jù)庫的優(yōu)點:
容易理解,它的邏輯類似常見的表格使用方便,都使用sql語句,sql語句非常的成熟數(shù)據(jù)一致性高,冗余低,數(shù)據(jù)完整性好,便于操作技術(shù)成熟,功能強大,支持很多復(fù)雜操作缺點:
每次操作都要進行sql語句的解析,消耗較大不能很好的滿足并發(fā)需求,特別是海量數(shù)據(jù)爆發(fā),關(guān)系型數(shù)據(jù)庫讀寫能力會顯得不足關(guān)系型數(shù)據(jù)庫往往每一步都要進行加鎖的操作,也造成了數(shù)據(jù)庫的負擔數(shù)據(jù)一致性高,有時也會使數(shù)據(jù)的存儲不靈活非關(guān)系數(shù)據(jù)庫優(yōu)點:
用戶可以根據(jù)需要去添加自己需要的字段,為了獲取用戶的不同信息,不像關(guān)系型數(shù)據(jù)庫中,要對多表進行關(guān)聯(lián)查詢。僅需要根據(jù)id取出相應(yīng)的value就可以完成查詢。高并發(fā),讀寫能力強,分布式計算低成本,架構(gòu)的靈活性;沒有復(fù)雜的關(guān)系。弱化數(shù)據(jù)結(jié)構(gòu)一致性,使用更加靈活,有良好的可擴展性缺點:
沒有標準化;查詢功能有限。操作靈活導(dǎo)致容易出錯和混亂常見的關(guān)系型數(shù)據(jù)庫和非關(guān)系型數(shù)據(jù)庫關(guān)系型的常見的有
Oracle,MicrosoftSQLServer,MySQL,PostgreSQL,DB2,MicrosoftAccess,SQLite,Teradata,MariaDB(MySQL的一個分支),SAP
常見的非關(guān)系型數(shù)據(jù)庫
NoSql、Cloudant、MongoDB、redis、HBase
區(qū)別的總結(jié)首先一般非關(guān)系型數(shù)據(jù)庫是基于CAP模型,而傳統(tǒng)的關(guān)系型數(shù)據(jù)庫是基于ACID模型的
1.數(shù)據(jù)存儲結(jié)構(gòu):
首先關(guān)系型數(shù)據(jù)庫一般都有固定的表結(jié)構(gòu),并且需要通過DDL語句來修改表結(jié)構(gòu),不是很容易進行擴展,而非關(guān)系型數(shù)據(jù)庫的存儲機制就有很多了,比如基于文檔的,K-V鍵值對的,還有基于圖的等,對于數(shù)據(jù)的格式十分靈活沒有固定的表結(jié)構(gòu),方便擴展,因此如果業(yè)務(wù)的數(shù)據(jù)結(jié)構(gòu)并不是固定的或者經(jīng)常變動比較大的,那么非關(guān)系型數(shù)據(jù)庫是個好的選擇
2.可擴展性
傳統(tǒng)的關(guān)系型數(shù)據(jù)庫給人一種橫向擴展難,不好對數(shù)據(jù)進行分片等,而一些非關(guān)系型數(shù)據(jù)庫則原生就支持數(shù)據(jù)的水平擴展(比如mongodb的sharding機制),并且這可能也是很多NoSQL的一大賣點,其實象Mysql這種關(guān)系型數(shù)據(jù)庫的水平擴展也并不是難,即使NoSQL水平擴展容易但對于向跨分片進行joins這種場景都沒有什么太好的解決辦法,不管是關(guān)系型還是非關(guān)系型數(shù)據(jù)庫,解決水平擴展或者跨分片Joins這種場景,在應(yīng)用層和數(shù)據(jù)庫層中間加一層中間件來做數(shù)據(jù)處理也許是個好的辦法
3.數(shù)據(jù)一致性
非關(guān)系型數(shù)據(jù)庫一般強調(diào)的是數(shù)據(jù)最終一致性,而不沒有像ACID一樣強調(diào)數(shù)據(jù)的強一致性,從非關(guān)系型數(shù)據(jù)庫中讀到的有可能還是處于一個中間態(tài)的數(shù)據(jù),因此如果你的業(yè)務(wù)對于數(shù)據(jù)的一致性要求很高,那么非關(guān)系型數(shù)據(jù)庫并不一個很好的選擇,非關(guān)系型數(shù)據(jù)庫可能更多的偏向于OLAP場景,而關(guān)系型數(shù)據(jù)庫更多偏向于OLTP場景。
hbase和SQL的區(qū)別
兩者屬于不同類型數(shù)據(jù)庫。HBASE是按列存儲型數(shù)據(jù)庫,MySQL是關(guān)系型數(shù)據(jù)庫。
1.數(shù)據(jù)類型,Hbase只有簡單的字符類型,所有的類型都是交由用戶自己處理,它只保存字符串。而關(guān)系數(shù)據(jù)庫有豐富的類型和存儲方式。
2.數(shù)據(jù)操作:HBase只有很簡單的插入、查詢、刪除、清空等操作,表和表之間是分離的,沒有復(fù)雜的表和表之間的關(guān)系,而傳統(tǒng)數(shù)據(jù)庫通常有各式各樣的函數(shù)和連接操作。
3.存儲模式:HBase是基于列存儲的,每個列族都由幾個文件保存,不同的列族的文件時分離的。而傳統(tǒng)的關(guān)系型數(shù)據(jù)庫是基于表格結(jié)構(gòu)和行模式保存的
4.數(shù)據(jù)維護,HBase的更新操作不應(yīng)該叫更新,它實際上是插入了新的數(shù)據(jù),而傳統(tǒng)數(shù)據(jù)庫是替換修改
5.可伸縮性,Hbase這類分布式數(shù)據(jù)庫就是為了這個目的而開發(fā)出來的,所以它能夠輕松增加或減少硬件的數(shù)量,并且對錯誤的兼容性比較高。而傳統(tǒng)數(shù)據(jù)庫通常需要增加中間層才能實現(xiàn)類似的功能。
mongodb,redis,hbase,三者都是nosql數(shù)據(jù)庫,他們的最大區(qū)別和不同定位是什么
1.如果你對數(shù)據(jù)的讀寫要求極高,并且你的數(shù)據(jù)規(guī)模不大,也不需要長期存儲,選redis;
2.如果你的數(shù)據(jù)規(guī)模較大,對數(shù)據(jù)的讀性能要求很高,數(shù)據(jù)表的結(jié)構(gòu)需要經(jīng)常變,有時還需要做一些聚合查詢,選MongoDB;
3.如果你需要構(gòu)造一個搜索引擎或者你想搞一個看著高大上的數(shù)據(jù)可視化平臺,并且你的數(shù)據(jù)有一定的分析價值或者你的老板是土豪,選ElasticSearch;
4.如果你需要存儲海量數(shù)據(jù),連你自己都不知道你的數(shù)據(jù)規(guī)模將來會增長多么大,那么選HBase。
而對于分布式數(shù)據(jù)庫的選擇,初步來看實際上可以分為三類
1.偏基于Hadoop體系架構(gòu)和分布式存儲的,類似HDFS庫和HBase數(shù)據(jù)庫,也包括中間類型MongoDB
2.偏內(nèi)存和緩存類的,類似Redis庫
3.偏全文檢索類和數(shù)據(jù)分析類的,類似ElasticSearch和Solr庫
分布式數(shù)據(jù)庫和傳統(tǒng)數(shù)據(jù)庫的區(qū)別
分布式文件系統(tǒng)(dfs)和分布式數(shù)據(jù)庫都支持存入,取出和刪除。但是分布式文件系統(tǒng)比較暴力,可以當做key/value的存取。
分布式數(shù)據(jù)庫涉及精煉的數(shù)據(jù),傳統(tǒng)的分布式關(guān)系型數(shù)據(jù)庫會定義數(shù)據(jù)元組schema,存入取出刪除的粒度較小。
分布式文件系統(tǒng)現(xiàn)在比較出名的有GFS(未開源),HDFS(Hadoopdistributedfilesystem)。分布式數(shù)據(jù)庫現(xiàn)在出名的有Hbase,oceanbase。其中Hbase是基于HDFS,而oceanbase是自己內(nèi)部實現(xiàn)的分布式文件系統(tǒng),在此也可以說分布式數(shù)據(jù)庫以分布式文件系統(tǒng)做基礎(chǔ)存儲。
關(guān)于hbase和傳統(tǒng)關(guān)系數(shù)據(jù)庫的區(qū)別到此分享完畢,希望能幫助到您。
本文鏈接:http://xinin56.com/ruanjian/23125.html