DataStax推出Stargate項(xiàng)目將Cassandra轉(zhuǎn)變?yōu)槎嗄P蛿?shù)據(jù)庫
通過Stargate開源項(xiàng)目,DataStax希望將Cassandra的影響范圍擴(kuò)大到非Cassandra開發(fā)人員。
DataStax將發(fā)布Stargate的第一個(gè)預(yù)覽版,Stargate是一個(gè)新的開源API框架,最終可能將Apache Cassandra變成多模型數(shù)據(jù)庫。這種方法與Microsoft Azure和Google的云數(shù)據(jù)庫相類似,后者也采用了API方法,最近也采用了像Oracle這樣的家用品牌。
雖然項(xiàng)目名稱讓人回想起David Bowie的記憶,但Stargate的目標(biāo)是將Cassandra暴露于CQL(Cassandra查詢語言)或Gremlin的現(xiàn)有開發(fā)人員基礎(chǔ)之外,面向精通JSON的JavaScript開發(fā)人員或習(xí)慣于使用SQL的Java開發(fā)人員。訪問將通過支持完整CRUD(創(chuàng)建,讀取,更新,刪除)功能的API進(jìn)行。乍一看,第一個(gè)(并且目前唯一)API支持帶有CQL和REST API的Apache Cassandra并不奇怪。
Stargate被設(shè)計(jì)為與存儲(chǔ)引擎分開的網(wǎng)關(guān),可以在本地或云中運(yùn)行。它基于確定協(xié)調(diào)器 Cassandra如何處理請(qǐng)求的熟悉的協(xié)調(diào)器節(jié)點(diǎn)代理。作為多主數(shù)據(jù)庫,任何節(jié)點(diǎn)都可以充當(dāng)用于路由查詢處理的協(xié)調(diào)器,并且這些節(jié)點(diǎn)與存儲(chǔ)區(qū)分開。通過利用處理CQL請(qǐng)求的相同代理,不必重新組織Cassandra即可處理其他API。
該項(xiàng)目托管在GitHub上,可通過標(biāo)準(zhǔn)Apache 2.0開源許可證獲得。目前,DataStax尚未宣布有關(guān)Stargate的進(jìn)一步計(jì)劃,但該社區(qū)很可能將處理SQL,JSON文檔(我們期望采用MongoDB風(fēng)格的API),GraphQL和Gremlin。在這一點(diǎn)上,我們還不知道Stargate帶有Cassandra API的性能如何與Apache Cassandra本身已有的性能相比。
遵循API路線,Stargate繪制了與Azure Cosmos DB類似的路徑,后者在同一個(gè)數(shù)據(jù)庫中提供了五個(gè)API,包括SQL,MongoDB有線協(xié)議,Cassandra,表(用于鍵值)和Gremlin。(在Cosmos DB中,一旦為數(shù)據(jù)集選擇了API,就必須使用它。)Google也有類似之處,它為Cloud Spanner使用相同的存儲(chǔ)引擎,該引擎通過SQL API公開,并且Cloud Firestore,遵循JSON文檔API。
可以想象,Stargate可能會(huì)演變成訪問Cassandra的首選方式,但這取決于兩個(gè)大的“ if”。首先,與現(xiàn)有的本機(jī)訪問方法相比,絕不會(huì)對(duì)性能造成任何影響,其次,該項(xiàng)目將必須被Apache Cassandra社區(qū)接受并正式成為該項(xiàng)目的一部分。
DataStax Enterprise(Cassandra的商業(yè)發(fā)行版)DataStax Enterprise并不是多模型支持。通過較早的收購,DataStax平臺(tái)還支持Gremlin,但是在DSE 6.8版本之前,圖形引擎尚未集成到核心數(shù)據(jù)庫中,因此圖形數(shù)據(jù)必須分別建模和提取。使用DSE 6.8時(shí),圖形視圖可以使用相同的本機(jī)CQL API,也可以使用相同的數(shù)據(jù)提取。但是圖形支持僅提供給DSE客戶,而不是核心開源平臺(tái)的一部分。如果Stargate被Apache Cassandra項(xiàng)目接受,那將是將Gremlin以及潛在的其他母版API主流化的一種方式。