羅文兵,楊美鈺,徐海波
(北京賽迪軟件測評工程技術中心有限公司,北京 100048)
當前,隨著互聯網、移動互聯網和物聯網技術的不斷發展,各類數據呈指數級增長,同時,增長更快的是這些數據之間的關系。在這種情況下,處理數據之間的關系比處理單個數據更為重要,傳統的關系型數據庫在處理復雜數據關系運算上表現較差,而隨著數據量和關聯深度的不斷增加,關系型數據庫越來越不足以滿足上層應用對底層數據處理和運算高效率的需求,因此,在大數據時代,圖數據庫系統得到越來越多的應用,也帶來針對圖數據庫系統的更高的質量需求,要求圖數據庫系統具有更完善的功能、更強大的性能和更好的擴展性等。
圖數據庫是利用計算機將點、邊等圖形基本元素按一定數據結構組織的存儲系統[1]。圖數據庫是NoSQL的一種,其基本含義是以“圖”這種數據結構存儲和查詢數據,它的數據模型主要是以節點和關系(邊)來體現。在一個圖形數據庫中,數據庫的核心要素組成主要有兩種,包括結點集和連接這些結點的關系。其中,結點集就是圖中一系列結點的集合,類似于我們常說的關系數據庫中的數據表,而關系則是圖形數據庫所特有的組成。圖形數據庫每個對象是一個節點,對象與對象之間的關系就是一條邊。
相對于傳統的關系數據庫而言,圖形數據庫更善于處理大量復雜、互連接、低結構化的數據,這些數據更新迅速,需要頻繁進行關聯查詢等。在關系數據庫中,由于數據關聯查詢勢必會引起大量的數據表連接,從而會導致系統性能下降,出現數據查詢處理效率低下[2]。一般來說,相對于傳統關系型數據庫,圖數據庫在處理關聯數據時具有以下明顯優勢:一是數據處理性能高,隨著數據量的不斷增多和關聯深度增加,傳統關系型數據庫受制于數據查詢時需要進行多個表之間連接操作,數據寫入時也需要考慮外鍵約束等,從而導致較大的額外開銷,產生嚴重的性能問題,而圖模型固有的數據索引結構,使得它的數據查詢與分析速度更快;二是數據處理靈活性,圖數據庫具有非常靈活的數據模型,用戶可以根據自身業務變化情況隨時調整相應的數據模型,比如對頂點、邊進行按需增加或者刪除,對圖模型進行必要的擴充或者縮小等。總體而言,圖形數據庫更適合用于社交網絡、數據分析、數據挖掘系統等專注于構建關系圖譜的系統[3]。
因此,圍繞圖數據庫應用場景和上述特點,有必要建立針對圖數據庫系統的質量評價指標和評估方法,為用戶擇優選擇和評估圖數據庫系統提供參考依據。
基于圖數據庫系統的基本功能和使用場景需求,結合相關國家標準、用戶需求,可建立圖數據庫系統的測評指標,包括功能、性能、接口、可管理性、可用性、可擴展性、安裝性等方面內容。具體測評指標如圖1所示。

圖1 圖數據庫系統測試指標組成圖
圖中,各部分指標的具體技術要求描述如下。
圖數據庫系統功能指標包括:
(1)數據查詢:是否支持針對圖中的點、邊開展數據查詢,包括精確檢索、模糊檢索、范圍查詢、全文查詢、地理查詢、圖遍歷等。
(2)數據加載:系統是否支持數據加載和更新,包括點加載、邊加載、數據更新、數據刪除等。
圖數據庫系統性能指標主要包括:
(1)數據存儲能力:對數據庫系統的存儲能力進行測試,包括可支持的點、邊存儲規模等。
(2)加載性能:對數據庫的數據加載效率進行測試,包括單服務器加載性能、并發加載性能、數據更新性能等。
(3)檢索性能:對數據庫的數據查詢效率進行測試,包括按屬性查找點、按點查找邊、多重關系檢索效率等。
(1)加載接口:對數據庫的數據加載接口進行測試,驗證是否支持Restful加載和Java加載方式等。
(2)檢索接口:對數據庫的檢索接口進行測試,驗證是否支持Restful檢索和Web Socket檢索方式等。
(1)可視化配置和監控工具:對圖數據庫提供的各類配置、監控和維護工具進行測試,包括系統是否支持對節點狀態、存儲服務狀態、磁盤狀態,以及系統資源使用狀態統計信息進行監控顯示等。
(2)圖數據庫管理工具:測試是否支持圖形化的用戶管理、圖數據管理、圖結構管理等。
(1)數據副本:測試系統是否支持數據副本策略。
(2)集群高可用:對系統的集群高可用性進行測試,出現單點故障時,可否保持業務處理的連續性等。
(3)故障恢復時間:對系統的故障恢復時間進行測試,包括局部故障恢復時間、全系統故障恢復時間等。
(1)集群節點在線擴展:測試圖數據庫系統能否在線進行集群節點動態擴展和減少。
(2)數據分布式存儲:測試圖數據庫系統可否根據數據集的大小和用戶基數進行數據自動分布式存儲和彈性擴展。
(1)可視化安裝:測試圖數據庫系統是否具備可視化的安裝界面,易于安裝。
(2)自動化一鍵部署:測試圖數據庫系統是否支持安裝后一鍵自動部署,用戶無需干預,即可按默認配置完成數據庫參數設置等。
基于以上對圖數據庫系統測試指標的分析,項目組針對5款圖數據庫系統進行了第三方測試,并有針對性的設計對應測試用例,確保測試用例全面覆蓋上述所有測試內容。
本次測試具體設計測試用例共計57組,其中功能測試用例21組,性能測試用例17組,接口測試用例4組,可管理性測試用例6組,可用性測試用例3組,可擴展性測試用例4組,安裝性測試用例2組。其中,部分測試內容及對應的測試用例如表1所示。

表1 測試內容及測試用例追蹤表
同時,針對上述不同的測試內容,項目組搭建了不同的測試環境開展相應的測試工作。另外,在性能測試方面,為實現對不同數據庫系統性能的橫向對比,項目組有針對性的準備了相同數量、相同硬件配置的計算機搭建統一的測試環境,具體性能測試環境拓撲圖如圖2所示。

圖 2 性能測試環境拓撲圖
在該測試環境中,項目組準備了相同規模的測試數據對5款產品的性能指標逐一進行測試。其中,用于檢索性能測試的數據包含5億點和50億邊;用于單服務器點加載、邊加載和數據更新性能測試的數據量分別為8百萬點、8千萬邊和4百萬的點屬性等。
最后,基于提供的測試環境,按照測試用例執行及評估要求,經詳細測試,5款產品的部分測試結果如表2所示。

表2 部分測試數據及結果
由測試結果可知,圍繞上述測評指標,5款產品在功能、可管理性等指標實現方面差異不大,基本都能正確實現,但在接口指標實現方面存在一定的差異,如產品C不支持Restful加載,產品D不支持Restful Gremlin檢索和Web SocketGremlin檢索等。同時,5款產品在性能方面實現差異較大,比如產品D的單服務器點加載時間和單服務器邊加載時間相比其他4款產品明顯偏長、產品B的單服務器數據更新時間明顯比其他4款產品的單服務器數據更新時間偏長等,而綜合性能方面,產品E各項性能指標均占優,無疑屬于5款產品中的佼佼者等。
目前,圖數據庫系統在大數據、人工智能等場景下得到越來越廣泛的應用,加強對圖數據庫系統功能、性能、可擴展性等指標的測試與評估,有利于用戶選擇更合適的產品,從而為上層應用提供更好的數據存儲、管理和分析服務。
在后續工作中,我們將在現有研究和項目實施基礎上,結合圖數據庫系統的技術發展趨勢,更好地開展上層應用支撐能力測試,更多從用戶使用場景出發,歸納總結用戶典型應用背景下的產品戰術、技術指標需求,為進一步從最終用戶使用角度評估對上層應用支撐能力提供數據支撐。■