網際網路快速發展的今天,日新月異的新技術已經不再稀奇,從20世紀90年代以來,網際網路開始在全球快速發展,數據的支撐成為網際網路發展的基礎之一,關係型資料庫成為近三十年的主要數據環境。隨著網際網路的進一步發展,各行各業的數據量都變的龐大且複雜,傳統關係型資料庫已經不能完全適應如今的行業需求,圖資料庫應運而生。數易軒致力於圖資料庫標註技術服務,為您介紹圖資料庫成為未來首選資料庫的必然理由。
有充分的證據表明圖資料庫將成為2020年代的首選資料庫,圖資料庫從上世紀初就以各種各樣的形式出現了,但與關係型資料庫相比,圖資料庫的速度普遍較慢,工作比較複雜,適用性也比較有限。它們也主要被視為學術資料庫,因為此類資料庫的最早使用案例之一是構建邏輯分析系統,並且由於其學術聯繫,該資料庫在相當長的時間內沒有應用於商業中。
然而,到2014年年中,幾個關鍵性的進展都聚集在一起,使圖資料庫技術得到了第一次的提升。Neo4J是一個早期且仍被廣泛使用的圖資料庫,已經開始獲得足夠的成熟度和滲透性,開始被用於某些類別的數學圖形處理。硬體(通過雲計算)的速度也已經足夠快,可以克服許多關鍵的早期性能挑戰。圖查詢語言(SPARQL)第二版的發布,解決了早期版本帶來的許多問題,包括引入了更新功能,這意味著可以出現一種用於動態添加內容的一致機制。MongoDB和CouchDB等JSON數據存儲的出現,讓人們更加關注非傳統資料庫索引的挑戰,而這也使得在處理連接方面有了很大的優化,這是任何資料庫的核心需求之一,而對於圖資料庫來說尤為重要。
重要的是,一些公司開始嘗試使用圖資料庫來解決他們比較棘手的問題-企業元數據的管理,主數據管理,自然語言處理,知識導航和其他相關問題。然而具有諷刺意味的是,機器學習通常使用數據聚類方法進行文本分析,作為蠻力替代方案,近來,它已逐漸成為幫助構建圖資料庫的另一種機制,其程度是,最新的圖資料庫現在已納入了機器學習算法和工具作為其核心套件的一部分。具有諷刺意味的是,通常使用作為蠻力替代方案的數據聚類方法來進行文本分析的機器學習,最近漸漸成為另一種幫助構建圖資料庫的機制,以至於最新的圖資料庫現在都將機器學習算法和工具作為其核心套件的一部分。
了解圖
最終,圖資料庫越來越多地利用完全出乎意料的發展優勢-圖形處理單元或GPU(那些專門用於創建複雜的三維圖形的專用多核計算機)的強大功能和先進性。這些GPU的工作方式是創建分解為三角形的網格--數百萬甚至數十億個三角形。GPU通過將屬性分配給組成這些網格的點(節點)和線(邊),計算顏色、亮度、邊緣的硬度和柔軟度、位移以及許多其他屬性,並且可以非常非常快地執行此操作,因為他們採用的流水線架構。
事實證明,圖資料庫實際上與圖形處理中使用的網格並沒有太大的區別(實際上它們幾乎相同),特別是從將屬性分配給節點和邊的角度來看。每個節點代表一個概念,每個邊代表一個關係。這意味著,尤其是在21世紀10年代末,圖資料庫供應商越來越多地利用GPU遍歷和比較這些圖上的節點值,從而有效地利用了GPU提供的強大並行功能來增強圖資料庫。雖然更多的傳統CPU可能也會繼續使用,但GPU上的圖資料庫很可能是2020年代真正的典範。
當前,圖資料庫分為兩大類:屬性圖和語義圖。它們在一個關鍵方面有所不同:語義圖將邊視為標識關係的全局命名對象,而屬性圖將邊視為基於周圍節點的唯一事物。這意味著可以將文字屬性(例如日期或字符串)分配給屬性圖中的關係。語義圖形中存在一個類似的屬性,稱為「 reification」(reification),在該屬性中,節點+邊在一起被賦予了一個標識符,但是目前SPARQL尚未從根本上支持此功能。
這種情況很有可能會隨著SPARQL下一個版本的出現而改變,下一個版本可能會在2020年初正式出現,同時還會有一些關於變量謂詞路徑的變化。實際上,這意味著屬性和語義圖資料庫將在未來幾年內合併為一個類別。除此之外,還能看到圖資料庫與NoSQL資料庫的合併(採用JSON或XML風格,或者在某些情況下都採用)。
圖資料庫在本質上比傳統的關係資料庫系統更靈活,因為可以將有關資料庫的元數據視為數據本身,可以以完全相同的方式進行訪問。實際上,您可以使用圖輕鬆表示關係資料庫,因為關係表/列/行/鍵結構本身就是圖的一種形式。直到最近,這種靈活性是以犧牲性能為代價的--但隨著向GPU的轉變,這種性能優勢已經基本消失了。
越來越多的系統也啟用關係填充,以隱藏表格資料庫和圖資料庫之間差異的詳細信息,以便它們可以與現有工具集(例如用於數據分析或可視化的工具集)一起使用,但是隨著完整圖形功能的標準化,新工具將會利用該標準化來利用靈活性和性能,這意味著圖資料庫有潛力在 2030年之前取代 現有的關係市場。
市場狀況
在大約十年前的某個時刻,可能有四個商用資料庫和幾個開源圖資料庫,它們共同服務於一個市場,而這個市場與關係型市場相比是微不足道的。作者記得當時在幾個語義會議上的貿易展覽會上走的時候,有希望的供應商的數量超過了參加者的數量。現在的情況已經不是這樣了,在過去的幾年裡,無論是廠商的數量還是圖資料庫專家的數量都在激增,以至於人們可以討論不同的廠商群體。The Stalwarts
這個群體包括那些從2008年至2012年在語義學核冬天中倖存下來的供應商。他們往往擁有最長的跟蹤記錄,但也傾向於專注推理和SPIN之類的功能,這些功能在大多數情況下都早於SPARQL的第二個版本,儘管它們完全支持該版本。這些產品包括Top Quadrant的Top Braid、Cambridge Semantic的Anzo、OntoText的GraphDB和Franz的Allegrograph等。這些都是不錯的產品,尤其是Top Braid在SHACL(一種數據模式語言)方面的工作,也一直在這個領域保持創新。它們也往往具有更廣泛的數據治理策略,使其成為在企業級實施傳統語義的好產品。
該群體包含那些將三重存儲(圖資料庫)與其他集成資料庫系統(例如JSON或XML存儲)或搜尋引擎結合在一起的供應商。在很多方面,這些都是對現有索引技術進行再利用(或建立在現有索引技術之上)的過渡性系統,在2012年到2017年左右的時間裡,大部分都進入了圖空間。其中包括MarkLogic,它提供對JSON和XML文檔和語義的支持,以及Stardog,它建立在JSON的基礎上,但結合了複雜的索引技術。當你處於混合數據體系中時,混合系統很好用,不過它們的價格往往也比其他圖資料庫高。
總體而言,該團隊只是幾年前才出現的力量,包括Pool Party,BlazeGraph(及其最新的化身為Amazon Neptune),Tiger Graph和Data.World等參與者。儘管Neo4j已經存在了一段時間,但作者也將其歸入此類。在大多數情況下,這些產品都把圖資料庫作為屬性圖資料庫來關注,在某些情況下,還拋棄了推理等功能,而隨著SPARQL實現更廣泛的應用,這些功能已經變得越來越無關緊要。
這些是諸如SmartLogic(或最近收購的Capsenta)之類的公司,這些公司通常建立在多個三重存儲的基礎上(並與之合作)。它們通常為數據建模、文檔實體豐富、高速提取和集成可視化提供支持。有明顯的跡象表明,隨著市場變得越來越擁擠,支持者很可能會與某一廠商建立戰略合作關係,或者直接合併(作者懷疑MarkLogic和SmartLogic尤其有這個趨勢)。
知識庫是最大的增長領域
有很多因素都表明,圖資料庫在未來十年將獲得相當大的發展。首先是知識庫的興起,可以將其視為數據百科全書。例如,考慮一個幻想棒球聯盟。他們通常會嘗試跟蹤許多不同類別的事情:球員,位置,球隊,賽季。隨著類的數量增加,創建接口來查看每個類中的各種項目的能力下降,這些應用程式的複雜性也在增加。傳統的資料庫應用在這一點上就會顯得力不從心,因為它們一般只試圖提供所涉及的數據空間的一部分的特定視圖。
知識庫採用另一種方法,通常被稱為無上下文設計,其中系統中的每個對象都被視為圖中的一個節點。在知識庫中,每個節點都有一組最少的屬性,使其可以顯示在圖中。例如在棒球卡片中,其中涉及的卡片可能是投手,接球手,球隊,擊球手等等,但是所有這些都需要有標題,圖片和其他一些基本屬性,以便可以列印出卡片。對於熟悉該術語的人來說,上下文無關的方法在概念上類似於Web使用REST的方法,因為請求或發布的數據的角色通常無關緊要,只是這個數據和過程遵循一定的基本協議。但是,細節確實很重要,並且通常會以純層次結構難以管理的方式重疊。例如,對於棒球聯盟來說,信息往往是分層組織的,在某一賽季中,一支球隊有一個球員名單,每個球員都擁有一個角色(投手、捕手、遊擊手等)。
當你開始考慮賽季間的交易和類似的行動時,這就變得更加複雜了,也變得更加複雜了,因為與投手相關的屬性(每場比賽的投球數、三振次數等)與作為擊球手的位置球員的屬性(賺取的分數、保送次數等)是不同的--但只有在國家聯盟中,因為美國聯盟允許投手擊球,但國家聯盟不允許。對這種邏輯進行建模,會對典型的資料庫造成很大的限制,但實際上是知識庫的優勢所在,因為屬性本身就是可以作為數據訪問的資源,而且屬性本身可以有元數據。此功能使您可以通過導航有效地構建查詢,而不是熟悉查詢語言。此外,您可以創建其他過濾器(通常在語義上稱為約束),使您可以查找2018賽季西雅圖水手隊的投手所有球員,按每場比賽的平均投球次數排序,而無需了解資料庫表或數據結構,甚至不需要編寫一行代碼。
這種靈活性還擴展到創建數據服務的能力。例如,藉助知識庫,可以將上述查詢直接轉換為URL,該URL將以機器可讀(JSON或XML)格式返回一個數據源,給出其他應用程式可以使用的當前數據,而不必讓程式設計師編寫一個新的數據API。
知識庫在整合企業數據方面可能有很長的路要走,同時讓組織繼續構建內部和面向公眾的應用程式。 此外,較新的技術也使得提供屬性級別的安全性成為可能,即只有擁有相關訪問級別的用戶才能看到或瀏覽特定的屬性。機器學習系統也使對知識庫提取的自動分類變得更加容易,並且隨著時間的流逝,隨著ML +語義學的好處得到更好的證明,這種情況只會越來越普遍。其他的應用,包括推理分析系統、風險檢測和緩解、最小路徑分析等,所有這些帶有語義成分的應用,都可能會在知識庫的成功基礎上發展起來。它們需要對數據進行某種不同的組織,但隨著數據聯合也變得越來越普遍,這是一種進化性的變化,而不是革命性的變化。
最後要注意的一點-最近的語義學最激動人心的領域之一是與屬性圖技術實現統一的潛力,其中斷言(事實陳述)本身被視為資源。早期使用RDF的工作支持此功能,但是由於性能原因,(最現有的)知識圖所使用的SPARQL查詢語言規範既未實現它,也未實現變量屬性路徑。
作者預計W3C(擁有語義技術的大多數核心專利)提出的SPARQL 2.0建議可能即將出現,但最早可能要到2022年才能成為現實。如果是這樣,結果可能是SPARQL和Gremlin和/或Tinker Pop的某種合成形式。
總結
考慮到所有這些,採用語義的路線圖變得越來越清晰。至少在初期,語義數據系統將更多地圍繞知識庫而不是推理分析,同時將機器學習和自動分類的最新進展納入其中。數據領域的大佬們現在都在密切關注這個領域,隨著戰略合作關係導致徹底合併,A級企業開始搶購可行的技術而不是在內部建立技術,未來兩年內出現這種情況的可能性很大(尤其是在經濟下滑時有可能出現不良銷售的情況下)。同時,隨著標準的制定,人們期望看到語義資料庫和屬性資料庫的重新合併,更有可能的是W3C為實現這種統一採取一些正式行動。