mongodb和Cassandra的區別有:1、mongodb發生故障時容易管理,而Cassandra提供高可用性則沒有單點故障;2、需要寫入大量數據時,Cassandra比mongodb寫入速度更快;3、mongodb是用C++編寫,而Cassandra是用Java編寫;4、mongodb屬于跨平臺面向文檔的數據庫系統,而Cassandra則是高性能分布式數據庫系統。
具體內容如下:
1、高可用性策略
MongoDB和Cassandra各自的數據可用性策略可能是它們之間最大的不同。
在Cassandra部署中,你可以設置多個主節點。如果一個或多個主節點發生故障,只要至少有一個主節點仍然存在,那你的數據庫仍然將保持可用狀態。這種高度分布式和冗余的模型使得在Cassandra中很容易實現高可用性(HA),當然,前提是你可以使用備用基礎架構來設置多個主節點。
另一方面,MongoDB也沒有忽略高可用性的問題,但其策略是基于自動故障轉移的想法。你只能在MongoDB集群中設置一個主節點。如果主站發生故障,從站節點將自動轉變為新的主站點。這確保了連續性,但這不會立即發生,通常需要將近一分鐘。
你是否可以接受一分鐘的數據存儲中斷,可能取決于你正在嘗試做的事情。但是,無論你怎么對比,Cassandra都比MongoDB更具彈性和高可用性。
2、寫入速度
MongoDB對單個主節點的限制也影響著數據寫入數據庫的速度。數據寫入必須記錄在主服務器上,并且由于MongoDB集群只有一個主服務器,因此它向數據庫寫入新信息的能力受到該單個主節點容量的嚴格限制。
而通過Cassandra,每個主節點可以并行接受不同的寫入。因此,你擁有的主節點越多,你可以一次寫入的數據就越多。如果你需要寫很多數據,你應該選擇Cassandra。
3、數據結構
雖然這兩個數據庫都屬于NoSQL系列,但NoSQL是一個廣泛的類別。當你了解深入了解時,你會發現,NoSQL數據庫架構可能會有很大差異,MongoDB和Cassandra也是如此。
與Cassandra相比,MongoDB提供了更加非結構化的架構。MongoDB使你可以定義對象,這些對象基本上可以包含你想要的任何屬性。此外,你基本上可以任何方式在層級結構組織對象。
相比之下,Cassandra提供了一種類似于桌面的存儲模型,它更像傳統的SQL風格數據庫,不過,Cassandra并不像傳統數據庫那樣嚴格。
4、查詢語言
除了從數據結構角度更類似于SQL風格的數據庫外,Cassandra的查詢語言(稱為CQL)也非常類似于傳統數據庫的查詢語言。
CQL和SQL并不完全相同,但通常,在SQL上運行的查詢可在CQL上運行。如果你的數據分析師已經熟悉SQL,那他/她也會很快學會CQL。
MongoDB有自己的查詢界面,它基本上是JSON格式,你可以很容易地學習它。但這不是你已經熟悉的事情。