Vertica數(shù)據(jù)庫與Cassandra相比有什么優(yōu)勢?
一、Vertica數(shù)據(jù)庫與Cassandra相比有什么優(yōu)勢
vertica是傳統(tǒng)的關(guān)系型數(shù)據(jù)庫,特點(diǎn)是按列存儲,而且集成了MapReduce支持。
Cassandra則是屬于NoSQL陣營,特點(diǎn)是綜合Dynamo的弱一致性模型和Bigtable的數(shù)據(jù)模型。vertica最大的優(yōu)勢就是它提供了SQL的支持,可以很好的兼容以往的工具和數(shù)據(jù)。
傳統(tǒng)的SQL語義在高可伸縮性要求下很難實(shí)現(xiàn),如join等操作。你可以設(shè)想一下,如果要join的表都非常大,超出單臺機(jī)器的處理能力,要高效地完成這個操作該有多困難。事實(shí)上這方面已經(jīng)有很多學(xué)術(shù)研究在進(jìn)行。
傳統(tǒng)的數(shù)據(jù)庫除了SQL語義外,還要保證transaction的ACID,而要同時滿足高一致性和事務(wù)操作的要求是很難實(shí)現(xiàn)高可伸縮性的。因而才會有NoSQL的出現(xiàn),它們犧牲了部分SQL和事務(wù)的語義、降低一致性要求,以實(shí)現(xiàn)高可伸縮性的系統(tǒng)。
Vertica的底層存儲實(shí)現(xiàn)和HBase的不一樣。雖然都是叫按列存儲,HBase是先將表格按行劃分成塊,在數(shù)據(jù)塊內(nèi)部才是按列存儲;Vertica的存儲比較靈活,它號稱可以配置哪些列要放在一起存儲,每列都分開就是最基本的按列存儲,所有列都和在一起就是按行存儲了,不過同一列的數(shù)據(jù)還是會放在一起。
所以按列或者按行存儲只是不同的系統(tǒng)設(shè)計(jì)選擇,不是決定性因素。關(guān)鍵還是在于對上層提供的語義。
HBase,Cassandra本身只有存儲能力,如果要做查詢需要借助Hadoop這樣的框架進(jìn)行,Hive就是把查詢都編譯成Hadoop任務(wù)實(shí)現(xiàn)的。Hadoop的查詢效率要比關(guān)系型數(shù)據(jù)庫要低,主要是因?yàn)?)Hadoop為了保證容錯,中間數(shù)據(jù)都要走一遍磁盤,IO開銷大;2)Hadoop缺少查詢優(yōu)化引擎還有索引等優(yōu)化機(jī)制(有人把Hadoop任務(wù)轉(zhuǎn)換成sql語句,然后再利用傳統(tǒng)數(shù)據(jù)庫的優(yōu)化算法優(yōu)化。
延伸閱讀:
二、Vertica是什么
Vertica是一款基于列存儲的MPP(massively parallel processing)架構(gòu)的數(shù)據(jù)庫。
它可以支持存放多至PB(Petabyte)級別的結(jié)構(gòu)化數(shù)據(jù)。Vertica是由關(guān)系數(shù)據(jù)庫大師Michael Stonebraker(2014 年圖靈獎獲得者)所創(chuàng)建,于2011年被惠普收購并成為其核心大數(shù)據(jù)平臺軟件。Vertica 采用無共享的MPP 架構(gòu),基于工業(yè)標(biāo)準(zhǔn)的x86 服務(wù)器,擁有高可擴(kuò)展性。Vertica 集群中的所有節(jié)點(diǎn)100%對等,集群中沒有主節(jié)點(diǎn)或其他共享資源。通過增加節(jié)點(diǎn),就可以線性地?cái)U(kuò)展集群的計(jì)算能力和數(shù)據(jù)處理容量。Vertica 是真正的純列式數(shù)據(jù)庫,優(yōu)化器和執(zhí)行引擎可以忽略表中與查詢無關(guān)的列。Vertica 不僅僅按列式存儲數(shù)據(jù),還主動地根據(jù)列數(shù)據(jù)的特點(diǎn)和查詢的要求選用優(yōu)異的算法對數(shù)據(jù)進(jìn)行排序和編碼壓縮,這就極大地降低磁盤I/O 消耗。同時,Vertica 的執(zhí)行引擎和優(yōu)化器也是基于列式數(shù)據(jù)庫設(shè)計(jì)的,編碼壓縮過的列數(shù)據(jù)在Vertica 的執(zhí)行引擎中進(jìn)行過濾、關(guān)聯(lián)、分組等操作時不需要解反編碼,從而大大降低了CPU 和內(nèi)存消耗。

猜你喜歡LIKE
相關(guān)推薦HOT
更多>>
MySQL普通索引不等于為什么會失效?
一、MySQL普通索引不等于會失效的原因1、列數(shù)據(jù)類型不匹配如果查詢條件中的列類型與索引列類型不匹配,MySQL無法使用索引進(jìn)行優(yōu)化。例如,索引...詳情>>
2023-10-18 11:14:01
為什么關(guān)系型數(shù)據(jù)庫系統(tǒng)不易于scaling out(橫向擴(kuò)展)?
一、為什么關(guān)系型數(shù)據(jù)庫系統(tǒng)不易于scaling out(橫向擴(kuò)展)因?yàn)閭鹘y(tǒng)的SQL數(shù)據(jù)庫沒想到要分片存儲,而現(xiàn)在的NewSQL開始考慮到這些問題了。當(dāng)然分...詳情>>
2023-10-18 10:49:50
MySQL InnoDB引擎中的各種鎖具體是怎么實(shí)現(xiàn)的?
一、MySQL InnoDB引擎中的各種鎖的實(shí)現(xiàn)方式MySQL InnoDB引擎中的各種鎖是通過多種機(jī)制實(shí)現(xiàn)的1、共享鎖(Shared Lock)和排他鎖(Exclusive Lock...詳情>>
2023-10-18 10:26:59
Android怎么連接遠(yuǎn)程數(shù)據(jù)庫?
一、Android連接遠(yuǎn)程數(shù)據(jù)庫的方法1、確保遠(yuǎn)程數(shù)據(jù)庫可以遠(yuǎn)程訪問首先,確保您的遠(yuǎn)程數(shù)據(jù)庫允許遠(yuǎn)程連接。這通常需要在數(shù)據(jù)庫服務(wù)器的配置中啟用...詳情>>
2023-10-18 10:09:10熱門推薦
常用JS前端開發(fā)框架有哪些?
沸事務(wù)并發(fā)控制s2pl和s2pl有何區(qū)別?
熱為什么一臺電腦可以安裝多個SQL Server實(shí)例?
熱MySQL普通索引不等于為什么會失效?
新為什么關(guān)系型數(shù)據(jù)庫系統(tǒng)不易于scaling out(橫向擴(kuò)展)?
MySQL InnoDB引擎中的各種鎖具體是怎么實(shí)現(xiàn)的?
Android怎么連接遠(yuǎn)程數(shù)據(jù)庫?
為什么MySQL在innodb引擎中即使使用了MVCC機(jī)制仍然會出現(xiàn)丟失更新?
IO多路復(fù)用中select、poll、epoll之間的區(qū)別?
讀寫分離為什么能夠提升性能?
為什么mysql innodDB中組合索引中范圍查詢后的條件索引會失效?
為什么noteexpress不能建立數(shù)據(jù)庫也不能打開別的數(shù)據(jù)庫?
計(jì)算機(jī)前端是什么?
APP中集成移動端車牌識別系統(tǒng)都能達(dá)到什么效果?
技術(shù)干貨







快速通道 更多>>
-
課程介紹
點(diǎn)擊獲取大綱 -
就業(yè)前景
查看就業(yè)薪資 -
學(xué)習(xí)費(fèi)用
了解課程價格 -
優(yōu)惠活動
領(lǐng)取優(yōu)惠券 -
學(xué)習(xí)資源
領(lǐng)3000G教程 -
師資團(tuán)隊(duì)
了解師資團(tuán)隊(duì) -
實(shí)戰(zhàn)項(xiàng)目
獲取項(xiàng)目源碼 -
開班地區(qū)
查看來校路線