1. 程式人生 > >圖數據庫與關系數據庫的實驗對比——意大利商會 InfoCamere 案例

圖數據庫與關系數據庫的實驗對比——意大利商會 InfoCamere 案例

一個 問題 data 一次 支持 圖表 相關 invest 限制

摘要: InfoCamere是附屬於意大利商會的IT公司,主要設計和開發最新和創新的IT解決方案和服務,它通過一個公眾也可以訪問的網絡連接商會及其數據庫。借助InfoCamere,意大利和國外的企業,公共機構,行業協會,專業團體和簡單的公民可以輕松獲取在意大利註冊和運營的所有業務的最新官方信息和經濟數據。 意大利商會通過遍布全國的300多個分支機構來服務和促進意大利企業的公共機構信息交流。InfoCamere 是商會的服務系統,幫助他們實現商業利益。在實施意大利數字化議程方面發揮了關鍵作用,涉及到國家生產系統的數字化轉型過程,特別是支持中小企業的數字化。

實驗案例由 Luca Sinico (InfoCamere 軟件開發人員) 負責編寫

實驗概述

InfoCamere 於二零一六年下半年展開圖形數據庫領域的檢驗工作,工作的目的是對該技術的主要特性進行調查; 在概念和性能方面比較市場上的一些可用產品以及關系解決方案;並檢查一些InfoCamere應用程序的圖形數據庫的采用可能性。這項工作是基於意大利企業註冊摘要獲得的數據集,並包含有關企業參股的數據。圖的節點可以是自然人或公司,並且收集關於面額,公司的股本,註冊國家,唯一的財政標識符等的數據。圖的邊緣代表其中的股權參與。

技術分享

在我們的工作中,我們檢查了兩種主要類型的圖形數據模型,即“屬性圖”和“RDF”。盡管RDF(W3C標準)代表了實現鏈接數據和語義Web的有效方法,盡管它以圖形的形式組織數據,但是我們發現屬性圖模型(一種“行業標準”)能更好地滿足我們的要求。實際上,它允許在邊上定義屬性。而RDF不允許直接使用它。另外,針對RDF(SPARQL)提出的標準查詢語言對於通常由支持“屬性圖”模型的DBMS提供的查詢語言顯示出一些限制。兩個簡單的例子是缺少最短路徑計算函數,並且可能為可變長度路徑搜索表示最大深度級別。

數據進入圖形數據庫的流程如圖2所示。從存儲意大利商業註冊的復雜關系數據庫開始,通過用戶需求或更新操作不斷產生一些標題搜索。標題搜索保存通過組合不同表中的不同記錄獲得的匯總數據,這對於某些應用是有用的。正因為如此,這些數據放在關系數據庫上以支持其操作。由於這個第二關系數據庫主要集中在與公司參股相關的方面,圖形數據庫從中獲取數據。

技術分享

查詢

我們開發的查詢可以被這些數據集上的應用程序所使用,也可以稍微強調數據庫管理系統的能力。特別是我們開發了一些標準查詢和一些更具體的查詢。
鑒於一個特定的公司,由其“財政ID”確定,我們要求其員工;它的參與;或兩者同時;從而通過將搜索限制到僅一個深度級別。但是,我們也要求直接和間接參與一家公司(同樣也是為了同事)。這對應於沒有深度限制的圖的探索。此外,由於數據集構成一個圖(而不是“簡單”樹),兩家公司之間的路徑可能是多個。這使我們要求提供連接兩家公司的完整的直接路徑列表;或者,也可以是最短的一個。我們還要求兩家公司的共同參與(或同事)。數據集的圖形性質也導致了另外兩個查詢的制定:第一個返回與檢索到的參與節點一起, 並且檢索到的深度值降低; 第二個查詢計算每個深度級別的與給定節點的關聯公司,但是避免對它們進行多次計數。
查詢的開發有助於調查目的和更好的數據探索體驗。

圖形數據庫與關系數據庫的比較

我們將數據集導入了三個最知名的圖形數據庫,分別是ArangoDB v3.0.10; Neo4j v3.0.6;和OrientDB v2.2.11(均為社區版)。我們還將數據集導入了一個眾所周知的關系數據庫:PostgreSQL v9.6.1。關系型數據庫的選擇沒有強烈的約束,因為性能主要受SQL語言性能的影響。這些產品已經安裝在虛擬服務器上,資源適中,因此對於其他類似硬件可用性的公司來說,結果也是有用的。對於每一種查詢,我們選擇了三個代表三種不同負載的DBMS的三個節點。特別是:一個節點表示一個輕量級的案例,可能較少的返回的結果,或者較短的勘探深度值; 一個節點代表中間的案例; 還有一個重量級的案例。我們不止一次地執行了這些查詢,所以我們也研究了延遲加載的緩存之間的性能差異。

由於目前還沒有圖形數據庫的標準查詢語言,因此每個圖形DBMS都提供自己的查詢語言。這促使我們評估各種查詢語言的表達性和易用性。

結果

我們收集的結果概括如下:

  • 圖表數據庫提供了一些特意設計的查詢語言,這些語言大大有助於描述圖遍歷查詢,也有助於應對該領域的一些典型計算問題。使用SQL或借助存儲過程,相同的查詢很難以高效的方式實現。
  • 雖然關系數據庫對較簡單的查詢執行得很好,但對於圖挖掘查詢的重量級案例(即那些有大量待分析節點的數據,並需要遍歷的高水平的值),分析顯示三個圖數據庫的性能通常要比關系型數據庫高出一個或兩個數量級。
  • ArangoDB顯示了良好的導入和查詢性能,尤其適用於輕量級和中等工作負載的情況。
  • 關於ArangoDB 測試版本的關註點之一就是內存占用 RAM greedy。然而,ArangoDB聲稱已經用他們新的3.2版本和新的RocksDB存儲引擎解決了這個“問題”。

實驗結論

由於在研究工作中得到了良好的反饋,在導入和執行時間方面表現良好,文檔良好,易於使用和商業價格合理,ArangoDB 在InfoCamere 的一些應用程序中表現出了很好的潛力。最終,我們決定在我們正在開發的演示應用程序中使用ArangoDB。

關於比較實驗的一些額外細節可以在這裏找到。

英文原文鏈接

圖數據庫與關系數據庫的實驗對比——意大利商會 InfoCamere 案例