ArangoDB - 一款多模型優先資料庫



ArangoDB被其開發者譽為原生多模型資料庫,這與其他NoSQL資料庫不同。在這個資料庫中,資料可以儲存為文件、鍵值對或圖。使用單一的宣告式查詢語言,可以訪問所有或任何資料。此外,不同的模型可以組合在一個查詢中。而且,由於其多模型風格,可以構建精簡的應用程式,這些應用程式可以利用所有三種資料模型進行水平擴充套件。

分層與原生多模型資料庫

在本節中,我們將重點介紹原生多模型資料庫和分層多模型資料庫之間的關鍵區別。

許多資料庫廠商將其產品稱為“多模型”,但是向鍵值儲存或文件儲存新增圖層並不算作原生多模型。

使用ArangoDB,可以使用相同的核心和相同的查詢語言,將不同的資料模型和特性組合在一個查詢中,正如我們在上一節中已經說明的那樣。在ArangoDB中,不存在資料模型之間的“切換”,也不存在為了執行查詢而將資料從A移動到B的情況。與“分層”方法相比,這使得ArangoDB具有效能優勢。

對多模型資料庫的需求

解讀[Fowler的]基本思想,我們可以意識到使用各種適當的資料模型來處理持久層不同部分的好處,該層是更大軟體架構的一部分。

根據這一點,例如,可以使用關係資料庫來持久化結構化的表格資料;使用文件儲存來儲存非結構化的、類似物件的資料;使用鍵值儲存來儲存雜湊表;使用圖資料庫來儲存高度關聯的引用資料。

然而,這種方法的傳統實現會導致在同一個專案中使用多個數據庫。這可能會導致一些操作摩擦(更復雜的部署,更頻繁的升級),以及資料一致性和重複問題。

在統一三種資料模型的資料之後,下一個挑戰是設計和實現一種通用的查詢語言,允許資料管理員表達各種查詢,例如文件查詢、鍵值查詢、圖查詢以及這些查詢的任意組合。

所謂**圖查詢**,是指涉及圖論考慮的查詢。特別是,這些可能涉及來自邊的特定連線特性。例如,**最短路徑、圖遍歷**和**鄰居**。

圖作為關係的資料模型非常合適。在許多現實世界的情況中,例如社交網路、推薦系統等,一個非常自然的資料模型就是一個圖。它捕獲關係,並且可以在每個邊和每個頂點上儲存標籤資訊。此外,JSON文件非常適合儲存這種型別的頂點和邊資料。

ArangoDB ─ 特性

ArangoDB有許多值得注意的特性。我們將重點介紹以下突出特性:

  • 多模型範式
  • ACID特性
  • HTTP API

ArangoDB支援所有流行的資料庫模型。以下是ArangoDB支援的一些模型:

  • 文件模型
  • 鍵值模型
  • 圖模型

只需要一種查詢語言就可以從資料庫中檢索資料

四個特性**原子性、一致性、隔離性**和**永續性**(ACID)描述了資料庫事務的保證。ArangoDB支援符合ACID的事務。

ArangoDB允許客戶端(例如瀏覽器)使用HTTP API與資料庫互動,該API是面向資源的,並且可以使用JavaScript進行擴充套件。

廣告