ArangoDB是一個原生多模型數據庫,兼有key/value鍵/值對、graph圖和document文檔數據模型,提供了涵蓋三種數據模型的統一的數據庫查詢語言,並容許在單個查詢中混合使用三種模型。基於其本地集成多模型特性,您能夠搭建高性能程序,而且這三種數據模型均支持水平擴展。git
許多數據庫公司自稱「多模型」,可是隻是基於key/value鍵/值或者document文檔存儲graph圖數據,與原生多模型數據庫存在着重要的區別。如下將對ArangoDB本地集成多模型數據庫的具體細節和一系列核心優點進行介紹:github
ArangoDB原生多模型數據庫,採用了試用於全部數據模型的統一內核和統一數據庫查詢語言。所以,用戶能夠在單次查詢過程當中混合使用多種模型。ArangoDB在執行查詢過程時,無需在不一樣數據模型間相互「切換」,也不須要執行數據傳輸過程。與「layer-approaches」相比,ArangoDB在速度和性能方面都具備極大優點,所以適用於高性能領域需求。數據庫
key/value 鍵/值app
每一個document文檔裏均有惟一的鍵和與其對應的值(鍵/值對)。若是您在document文件中存儲一個值,那麼ArangoDB可用做經典的、高度可擴展的鍵/值對存儲,例如用戶在電子商務平臺上將商品臨時存儲在購物車裏或物聯網應用程序中的傳感數據等。模塊化
Document 文檔函數
您能夠在文檔中存儲海量數據(文件大小默認最大值爲32MB,但能夠根據實際須要進行配置)。ArangoDB功能強大,應用範圍普遍,可用於查詢和處理諸如JOINs、輔助索引或ACID事物之類的文檔。您還能夠在JOIN鏈接上實現水平擴展。性能
Graph 圖學習
ArangoDB包含了graph圖形存儲的完整功能集。例如模式匹配、最短路徑、徹底遍歷等。與當前許多主流的圖形處理方法相比,ArangoDB能夠快速執行圖形查詢。如下具體介紹如何實現這一改進:優化
當使用ArangoDB存儲graph圖時,一種特殊類型的文檔將會被建立用來表示其邊和頂點。這些文檔包含指向所鏈接文檔的_to和_from屬性(地址屬性),所以在查詢過程當中,能夠經過關聯上述屬性建立和使用邊緣索引,實現圖的高性能處理和查詢。spa
ArangoDB數據庫的獨特之處在於以下兩個方面:其一是這些邊和頂點都包含複雜數據(嵌套屬性),其二是全部的graph函數均被深刻集成至咱們的查詢語言AQL中。這兩個特徵使得ArangoDB在性能上能與其餘graph數據庫一較高低。此外,ArangoDB還支持對graph圖搭建數據庫集羣。
原生多模型數據庫的優點主要體如今如下三方面。
您想在開發新項目過程當中保持靈活性,特別是在開發新產品或者新服務時,您可能不知道在這個過程當中將會出現哪些需求。產品的改動或對新特性的需求均會致使數據模型的改變。使用多模型數據庫,您能夠遊刃有餘地應對數據模型的變化。您能夠將一項技術應用到多個方案中,而不須要從新學習另一項新的技術、創建新的技術棧。
團隊合做是軟件開發的關鍵,ArangoDB容許團隊之間交互合做。好比一個團隊使用ArangoDB的document數據庫,能夠將其積攢的經驗和技術分享給另一個使用graph的團隊。兩個團隊能夠經過相互交換ArangoDB的使用經驗來優化數據庫使用效果。這樣一方面能夠減小學習時間、加深團隊合做,另外一方面能夠減小研發時間。
ArangoDB的真正強大之處在於容許在單次查詢中混合使用三種不一樣的模型,而不須要創建兩到三個技術棧、在不一樣的單一模型數據庫之間創建具備必定風險性的鏈接,也不須要從頭開始學習新的數據庫技術。ArangoDB旨在使模塊化開發應用程序變得更加容易。
https://www.arangodb.com/cn-multi-model/
Find ArangoDB on Github