在1月9日Cassandra中文社區開年活動開始以前的閒聊時間,活動的四位嘉賓就「HBase和Cassandra的對比」這一話題展開了討論。
總的來講,HBase和Cassandra各有其優點特性以及比較適合的應用場景。不過相比HBase來講,Cassandra的持續在線、穩定性高、易於上手等優點讓嘉賓們印象深入,紛紛給出好評。
劉騰
華爲消費者雲服務部cassandra數據庫運維負責人,2011年加入華爲,前後負責過度布式存儲,分佈式緩存和分佈式消息隊列的運維工做,2014年開始接觸cassandra,2018年開始全面負責cassandra的運維工做。
「華爲有在大規模使用Cassandra,也使用了HBase。Cassandra主要用在OLTP場景,HBase主要用在OLAP場景。
相比HBase,Cassandra的優點不少,好比我認爲Cassandra對運維的友好程度總體比HBase要好,可用性也要高。
我也但願Cassandra將來能夠把HBase的部分優勢吸取過來,好比引入RocksDB、支持對接多種底層存儲類型、支持計算和存儲分離的架構(可對接HDFS等分佈式存儲)。「
王鋒
奇虎360集團技術總監,存儲與大數據架構平臺負責人。國內較早從事Cassandra相關技術研究和實踐的開發者。360雲盤則是國內早期Cassandra落地較爲成功的案例,峯值規模1.4萬物理節點。
「360從2011年就開始用HBase和Cassandra這兩套系統了。一方面,這兩種數據庫的使用場景不太同樣。HBase更多的是用在網頁庫、離線分析,而Cassandra更多的是知足在線(always online)需求。
在選擇這兩種數據庫時主要考慮的點是故障恢復時間。HBase自己故障恢復的時間,它在Region Server宕機以後須要從新分配,這個分配的時間是秒級到分鐘級,是比較長的。若是數據規模比較大,很難用HBase知足100%在線這種業務需求。不少業務在咱們這裏很難容忍較大的訪問抖動,或者較大的MTTR的時長,對於這類需求咱們更傾向於使用Cassandra。
而對於數據規模大且吞吐量大的場景下的離線分析,咱們更多地傾向於使用HBase,由於HBase是基於HDFS之上,不少掃描(scan)類型的訪問用HDFS的效率就比較高一些。
另外一個方面,是當咱們作一些to B的項目時會發現Cassandra很適合中小規模的場景。由於它沒有中心節點,總體架構比較輕量化,這樣在運維管控方面就會有比較大的優點。
再加上Cassandra持續可用的特色和按需擴容的能力,以及Cassandra 3.0版本中的同城多活的特性,Cassandra訪問可靠性上會比較有優點。
總體來講,從數據模型和功能方面來看,這兩種數據庫差不太多,可是在不一樣的應用場景可能會傾向使用不一樣的數據庫。「
劉軍民
阿里雲數據庫產品經理。目前在阿里雲負責雲Cassandra數據庫的產品規劃相關工做。曾在19年與多位小夥伴共同發起Cassandra中文社區,指望更多的夥伴加入到社區建設,期待Cassandra在中國區能夠生機勃勃,大放異彩。
「咱們在客戶訪談的過程當中常常碰到這樣的疑惑:HBase和Cassandra到底怎麼選?
由於我是作數據庫產品的,我我的以爲Cassandra有幾個好處:首先它起配是很是靈活的,另外就是它的穩定性。咱們訪談的不少用戶都反映過,在使用Cassandra的過程當中數據庫很穩定並且維護也很簡單。由於Cassandra的組件較少,不像HBase有一堆組件須要維護。
因此我我的以爲,HBase更像是Hadoop體系下結合比較緊密的一個大數據存儲工具,而Cassandra更像是一個數據庫,一個很是容易運維的寬表數據庫。
另外Cassandra的開發也很簡便,由於Cassandra的CQL對於MySQL用戶來講沒有過高的學習門檻。不少用戶反饋,之前歷來沒有用過Cassandra,可是花了幾天時間學習以後就能夠上手了,也就是說學習門檻是很低的。
除此以外,還有一點是穩定、易維護,尤爲是在一些小規模集羣上。我我的以爲Cassandra除了已有的使用場景外,在一些面向將來的場景,好比5G、AIoT、智能製造這些新興的場景,對一些公司(尤爲是初創公司)是更友好的。這也是爲何愈來愈多的開發者願意選用Cassandra的緣由。「
鄧爲
現任DataStax領航架構師總監。深耕分佈式數據庫系統十餘年,曾經參與Amazon RedShift分佈式雲數據倉庫前身的核心技術研發,七年前加入DataStax,主要負責爲財富500強大客戶和戰略合做夥伴提供諮詢服務。對SQL和NoSQL數據庫,以及相關的大數據產品都有比較豐富的實戰經驗。
「我來分享一下我在國外看到的狀況。我知道HBase在中國是比Cassandra更流行,好比從百度搜索指數這樣的數據中都能看出來。可是在國外,狀況偏偏徹底相反。
在權威數據庫排行榜DB Engines中,Cassandra的排名比HBase靠前不少。通常Cassandra都在前十之內,HBase通常在二十名開外,和Cassandra一直有十多名的差距。
根據我和客戶的溝通,國外的客戶如今愈來愈少人會把HBase和Cassandra比較。我認爲,其中的一個緣由是,HBase的流行實際上是跟着Hadoop起來的,在Google Search上也能夠看到HBase的流行程度和Hadoop是正相關的。
不過自2015年以來,Hadoop以及MapReduce這些框架逐漸被Spark這種新興起的大數據處理框架替代,因此搭了Hadoop的快車的HBase在國外就逐漸式微了。
另外HBase的設計確實很容易因爲某個模塊出現問題或是因爲它對Zookeeper的依賴,而形成單點故障的出現,致使數據庫不能百分之百在線。
若是你徹底沒有基礎,重頭開始上手學習一個寬表數據庫的話,Cassandra是比HBase要容易上手得多,Cassandra基本上能夠說是能拿來就用的數據庫。
若是你是從別的數據庫轉過來,Cassandra的開發者界面是很是友好的,CQL這種查詢語言和你們熟悉的SQL很是相像。但若是你要使用HBase原生的界面,你須要寫代碼才能使用這個數據庫,這會致使HBase上手比較困難。「