多模型:Cassandra是一個(gè)分區(qū)行存儲(chǔ)數(shù)據(jù)庫(kù)。它不支持任何其他數(shù)據(jù)模型。如果應(yīng)用程序需要圖形或鍵/值存儲(chǔ),則必須使用第二種數(shù)據(jù)庫(kù)技術(shù)(如Titan或DataStaxEnterprisegraph)來(lái)支持圖形,從而增加復(fù)雜性和成本。作為本機(jī)多模型,ArangoDB允許您使用一個(gè)數(shù)據(jù)庫(kù)來(lái)處理這兩個(gè)問(wèn)題,還可以高效地對(duì)存儲(chǔ)在不同模型中的數(shù)據(jù)運(yùn)行查詢。
統(tǒng)一查詢語(yǔ)言:ArangoDB查詢語(yǔ)言(AQL)支持所有三種數(shù)據(jù)模型(k/v、文檔、圖形)及其各自的數(shù)據(jù)訪問(wèn)模式(投影、連接、遍歷等)。此外,AQL本身支持查詢文本或地理空間等特殊數(shù)據(jù)類型。所有數(shù)據(jù)模型和數(shù)據(jù)類型可以在單個(gè)AQL查詢中自由組合。要在Cassandra中實(shí)現(xiàn)同樣的效果,必須學(xué)習(xí)CQL和Gremlin的圖形。
連接:AQL也支持各種連接操作。ArangoDB甚至通過(guò)衛(wèi)星采集功能支持大規(guī)模連接操作。對(duì)于Cassandra,這些操作在本機(jī)上是不可能的,必須在客戶端完成,并考慮其所有安全性和性能影響。
復(fù)雜事務(wù):Cassandra不支持ACID事務(wù)。使用ArangoDB,開(kāi)發(fā)人員可以使用復(fù)雜的事務(wù)來(lái)跨越多個(gè)文檔和集合,或者運(yùn)行聚合。ArangoDB支持多文檔和多集合事務(wù)(單實(shí)例;集群設(shè)置中的單文檔事務(wù))。
可擴(kuò)展性需求和ArangoDB:ArangoDB為每個(gè)模型和多模型的使用做好了集群準(zhǔn)備。由于C++核心與向外擴(kuò)展相平衡,因此具有無(wú)限的擴(kuò)展能力。ArangoDB集群架構(gòu)支持獨(dú)立擴(kuò)展,以滿足高讀寫量和數(shù)據(jù)存儲(chǔ)(如果需要)的需要。
可擴(kuò)展性:使用現(xiàn)有的以數(shù)據(jù)為中心的微服務(wù),或在ArangoDB內(nèi)的專用JavaScript框架Foxx中運(yùn)行自己的服務(wù),例如,為復(fù)雜的圖形遍歷提供單個(gè)API調(diào)用。
降低總體擁有成本:了解多模型數(shù)據(jù)庫(kù)意味著將相同的知識(shí)應(yīng)用于不同的用例,并讓開(kāi)發(fā)人員更快地行動(dòng)。ArangoDB可以使用本機(jī)多模型方法用于廣泛的不同用例,從而簡(jiǎn)化所需的技術(shù)堆棧和操作足跡。
比較表:Cassandra與ArangoDB
*在單服務(wù)器設(shè)置中,ArangoDB支持多文檔和多集合事務(wù)的完整ACID事務(wù)。在集群設(shè)置中,ArangoDB僅支持非分片集合的多文檔和多集合事務(wù)。共享集合支持單文檔事務(wù)。
**包括對(duì)任意字符串的全文搜索、前綴搜索以及更高級(jí)的功能,如相關(guān)性、排名、單詞規(guī)范化、刪除停止詞、識(shí)別跨多個(gè)集合工作的單詞邊界。
***輕松為以數(shù)據(jù)為中心的用例創(chuàng)建RESTAPI,并添加任何缺失的功能。
****ArangoDB支持所有基本安全要求。這包括在數(shù)據(jù)庫(kù)和集合級(jí)別基于LDAP的授權(quán)和用戶管理。通過(guò)使用ArangoDB的Foxx微服務(wù)框架,用戶甚至可以創(chuàng)建基于字段的訪問(wèn)控制。
審核編輯:劉清
-
數(shù)據(jù)庫(kù)
+關(guān)注
關(guān)注
7文章
3800瀏覽量
64402 -
AQL
+關(guān)注
關(guān)注
0文章
3瀏覽量
8776 -
Cassandra
+關(guān)注
關(guān)注
0文章
6瀏覽量
2384
原文標(biāo)題:ArangoDB vs. Cassandra
文章出處:【微信號(hào):哲想軟件,微信公眾號(hào):哲想軟件】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論