ArangoDB是一個原生多模型資料庫,兼有key/value鍵/值對、graph圖和document文檔數據模型,提供了涵蓋三種數據模型的統一的資料庫查詢語言,並允許在單個查詢中混合使用三種模型。基於其本地集成多模型特性,您可以搭建高性能程式,並且這三種數據模型均支持水平擴展。
基本介紹
- 軟體名稱:ArangoDB原生多模型資料庫
- 開發商:ArangoDB
- 軟體平台:Cross-platform
- 軟體版本:3.3 Beta
- 更新時間:2017.05.23
- 軟體語言:English
- 軟體大小:32 MB
- 軟體授權:ArangoDB
原生與Layered 的對比,ArangoDB 資料庫模型,Document 文檔,key/value 鍵/值,Graph 圖,適用場景,在開發新項目過程需要保持靈活性時,在團隊合作進行軟體開發的過程中,在將不同數據模型統一於一種查詢中,ArangoDB 的獨特優勢,合併,簡化性能擴展,降低操作複雜度,強大的數據一致性,容錯性,降低總體擁有成本,事務處理,
原生與Layered 的對比
許多資料庫公司自稱“多模型”,但是只是基於key/value鍵/值或者document文檔存儲graph圖數據,與原生多模型資料庫存在著重要的區別。以下將對ArangoDB本地集成多模型資料庫的具體細節和一系列核心優勢進行介紹。
ArangoDB原生多模型資料庫,採用了試用於所有數據模型的統一核心和統一資料庫查詢語言。因此,用戶可以在單次查詢過程中混合使用多種模型。ArangoDB在執行查詢過程時,無需在不同數據模型間相互“切換”,也不需要執行數據傳輸過程。與“layer-approaches”相比,ArangoDB在速度和性能方面都具有極大優勢,因此適用於高性能領域需求。
ArangoDB 資料庫模型
Document 文檔
您可以在文檔中存儲海量數據(檔案大小默認最大值為32MB,但可以根據實際需要進行配置)。ArangoDB功能強大,套用範圍廣泛,可用於查詢和處理諸如JOINs、輔助索引或ACID事物之類的文檔。您還可以在JOIN連線上實現水平擴展。
key/value 鍵/值
每個document文檔里均有唯一的鍵和與其對應的值(鍵/值對)。如果您在document檔案中存儲一個值,那么ArangoDB可用作經典的、高度可擴展的鍵/值對存儲,例如用戶在電子商務平台上將商品臨時存儲在購物車裡或物聯網應用程式中的感測數據等。
Graph 圖
ArangoDB包含了graph圖形存儲的完整功能集。例如模式匹配、最短路徑、完全遍歷等。與當前許多主流的圖形處理方法相比,ArangoDB可以快速執行圖形查詢。以下具體介紹如何實現這一改進:
當使用ArangoDB存儲graph圖時,一種特殊類型的文檔將會被創建用來表示其邊和頂點。這些文檔包含指向所連線文檔的_to和_from屬性(地址屬性),因此在查詢過程中,可以通過關聯上述屬性創建和使用邊緣索引,實現圖的高性能處理和查詢。
ArangoDB資料庫的獨特之處在於如下兩個方面:其一是這些邊和頂點都包含複雜數據(嵌套屬性),其二是所有的graph函式均被深入集成至我們的查詢語言AQL中。這兩個特徵使得ArangoDB在性能上能與其他graph資料庫一較高低。此外,ArangoDB還支持對graph圖搭建資料庫集群。
適用場景
原生多模型資料庫的優勢主要體現在以下三方面:
在開發新項目過程需要保持靈活性時
在開發新產品或者新服務時,您可能不知道在這個過程中將會出現哪些需求。產品的改動或對新特性的需求均會導致數據模型的改變。使用多模型資料庫,您可以遊刃有餘地應對數據模型的變化。您可以將一項技術套用到多個方案中,而不需要重新學習另外一項新的技術、建立新的技術棧。
在團隊合作進行軟體開發的過程中
ArangoDB允許團隊之間互動合作。比如一個團隊使用ArangoDB的document資料庫,可以將其積攢的經驗和技術分享給另外一個使用graph的團隊。兩個團隊可以通過相互交換ArangoDB的使用經驗來最佳化資料庫使用效果。這樣一方面可以減少學習時間、加深團隊合作,另一方面可以減少研發時間。
在將不同數據模型統一於一種查詢中
ArangoDB的真正強大之處在於允許在單次查詢中混合使用三種不同的模型,而不需要建立兩到三個技術棧、在不同的單一模型資料庫之間建立具有一定風險性的連線,也不需要從頭開始學習新的資料庫技術。ArangoDB旨在使模組化開發應用程式變得更加容易。
ArangoDB 的獨特優勢
合併
多模型資料庫能夠適用於許多不同的用例。因此它能夠最小化後台部件。這樣有助於降低總擁有成本,增加靈活性,並整合您的整體技術堆疊需求。
簡化性能擴展
應用程式都是一步步逐漸成熟。使用ArangoDB可以使架構中的不同組件便可以進行獨立擴展。ArangoDB支持垂直和水平擴展來滿足您不斷增加的需求。如果您對性能的需求降低,您也可以最佳化後台系統,這樣還可以節省硬體消耗和運營成本。
降低操作複雜度
Polyglot Persistence 的目的是為項目選擇最適合的工具。只安裝單一模型的資料庫軟體會讓您在運行過程中遇到很多挑戰。集成這些解決方案本身就是一項複雜的任務,但是創建一個具有不同資料庫之間一致數據的大型內聚系統,並且包含容錯機制是無法實現的。在數據方面,Polyglot Persistence 更多的是為某一項工作配置其所需的合理的數據模型。原生多模型資料庫支持多種數據(合理的數據與數據模型的配對)並且不含Polyglot Persistence 的複雜性。除此之外,ArangoDB還能夠確保ACID事務處理的一致性,以及有效提升您的套用軟體的容錯率。
強大的數據一致性
如果在您的應用程式內沒有更高級別的事務處理功能,那么它就不能支持在不同資料庫系統之間的事務處理功能。因此,保持不同模型之間的高度一致性是非常困難的。用單一後台來管理不同的數據模型,您可以輕鬆實現ACID。ArangoDB已經可以確保單實例下的高度一致性和集群模式下的原子性。 ArangoDB的 3.x版本也將會為集群模式提供高度的一致性(MVCC)。
容錯性
與其他組件一起構建一個容錯系統是一項具有挑戰性的任務。在集群模式下尤為困難。對上述系統的搭建和維護需要包含不同技術和技術棧深厚的專業知識。將原本設計為獨立運行的多項子系統合併到一起更是會增加工程和運營成本。然而在一個如ArangoDB這樣的的可擴展多模型資料庫里這些問題都不會出現。這也是ArangoDB 為什麼能夠使得先進的擁有不同數據模型的模組化架構得以正常運行,並且也可以套用到集群模式下的原因。
降低總體擁有成本
使用不同的資料庫技術會增加很多關於硬體,軟體,以及與系統運營相關的成本開支。每個資料庫技術都需要持續的維護,補丁,錯誤修復和由供應商提供的其它修改。每個新的更新都必須由專門的團隊進行測試,其與當前系統整體是否兼容。使用多模型資料庫可以有效地減少這些成本開支。
事務處理
對多台機器提供事務處理保障是非常具有挑戰性的,而且幾乎所有的NoSQL資料庫都不提供這些保障。而ArangoDB原生多模型資料庫則會要求事務處理始終確保數據都存儲在資料庫中。ArangoDB已經可以確保單實例下的高度一致性和集群模式下的原子性。ArangoDB的3.x版本也將會為集群模式提供事務 (MVCC)。