作者 | 宋文喆來源 | AI前線
當前,網際網路數據呈指數級增長,但是以更快速度增加的是數據之間的關係。企業的 CIO 和 CTO 不僅要管理大量數據,還要從現有的數據中挖掘商業價值,在這種情況下處理數據之間的關係比處理單個數據更為重要。
傳統的關係型資料庫,在處理複雜數據關係運算上表現很差,隨著數據量和深度的增加,關係型資料庫無法在有效的時間內計算出結果。所以,為了更好的利用數據間的連接,企業需要一種——將關係信息存儲為實體、靈活拓展數據模型的資料庫技術,這項技術就是圖資料庫(Graph Database)。
圖資料庫具有天然可解釋性
圖資料庫是基於圖模型,對圖數據進行存儲、操作和訪問的一項技術,即使沒有專業的圖論知識儲備,也能輕鬆理解。它可以接受比實時查詢更為複雜的分析需求,來挖掘圖數據中的潛在價值。從分類上來說,圖資料庫屬於 NoSQL 的一種。
圖模型是圖資料庫中的重要概念。圖模型由兩個要素組成:節點和邊。每個節點代表一個實體(一個人,地方,事物或其他數據),每條邊代表兩個節點之間的連接,這種通用結構可以對各種場景進行建模,如社交網絡以及由關係定義的任何其他事物。
例如:下面這個圖模型中包含 3 個節點:中國、四川、大熊貓。其中他們的兩條邊分別是:大熊貓是四川的特色、四川屬於中國。
圖模型的基礎要素:節點和邊
從上面的圖模型可以看出,圖資料庫的目標就是基於圖模型以一種直觀的方式模擬這些關係。因為是基於事物關係的模型表達,圖因此也具有天然的可解釋性。
圖資料庫在處理關聯數據時的優勢
與關係型資料庫相比,圖資料庫在處理關聯數據時有三個非常突出的技術優勢:
高性能:隨著數據量的增多和關聯深度的增加,傳統關係型資料庫受制於檢索時需要多個表之間連接操作,數據寫入時也需考慮外鍵約束,從而導致較大的額外開銷,產生嚴重的性能問題。而圖模型固有的數據索引結構,使得它的數據查詢與分析速度更快。靈活:圖資料庫有非常靈活的數據模型,使用者可以根據業務變化隨時調整數據模型,比如任意添加或刪除頂點、邊,擴充或者縮小圖模型這些都可以輕鬆實現,這種頻繁的 Schema 更改在關係型資料庫上不能到很好的支持。敏捷:圖資料庫的圖模型非常直觀,支持測試驅動開發模式,每次構建時可進行功能測試和性能測試,符合當今最流行的敏捷開發需求,對於提高生產和交付效率也有一定幫助。我們可以繼續擴展前面介紹到的圖模型用例,來展示圖資料庫的優勢。北京也屬於中國,長城位於北京,Tom 去過長城,火鍋店張師傅出生於四川,Tom 出生在中國喜歡大熊貓,張師傅在北京開店,Tom 是張師傅的顧客。
拓展後的圖模型
如果你是業務 / 產品工作人員,你一定希望你的產品或業務拓展到用戶的方方面面。如果你是開發人員你一定希望能夠簡單高效地描述這個紛繁複雜的世界。
在傳統的關係型資料庫中,要想進行關聯查詢,我們需要建立多少張表呢?國家、省 / 市、人、動物、地標、動物與省 / 市的關係、國家與省 / 市的關係、人與省 / 市的關係、人與人..... 粗算一下 至少十幾張表。
構建這些表倒沒什麼。但如果,現在我們需要查詢:在哪些城市上班的人最喜歡大熊貓?
首先需要關聯動物表、人員表、人喜歡的動物表,關聯這三張表就可以查到 Tom 喜歡大熊貓。但是接下來你還需要再關聯兩張表,找到他們在哪個地標工作,然後再關聯兩張表找到這些地標在哪個城市。等等,還沒完,你還得 group by 一下,再排個序。
你會發現這個查詢實在太難了!但這恰恰是數據分析師最基本的工作,也是大數據時代海量信息處理的一個縮影。而使用圖資料庫,我們可以輕易的描述和查詢上圖所示的關係。在處理複雜數據關係運算上,圖資料庫查詢效率遠高於關係型資料庫。
圖資料庫的應用場景
圖資料庫技術已經應用於現實生活中的方方面面,諸如 Google、Facebook 等科技巨頭已經開始使用圖資料庫的力量來蓬勃發展業務。據 Gartner 在《十大數據分析技術趨勢》預測,2012 年至 2022 年,全球圖處理及圖資料庫的應用都將以每年 100% 的速度迅猛增長。
如果說知識圖譜是圖資料庫的底層應用場景,充分利用了圖模型在存儲和查詢的優勢為多行業提供知識服務。那麼金融風控則是具有行業特點的高階應用場景。
知識圖譜
知識圖譜作為圖資料庫的底層應用,已服務於多種行業,包括:智能問答、搜索、個性化推薦等。以智能問答為例,產品主要分為聊天機器人、行業智能問答系統兩種。開放領域的知識圖譜能為聊天機器人提供廣泛知識,機器不僅能和使用者聊天還能提供日常知識。行業智能問答系統則使用行業知識圖譜,能夠為用戶有針對性的提供專業領域知識,在法律、醫療行業已得到運用。
在知識圖譜的應用落地上,主要有兩點因素影響著知識圖譜的質量和實現 -NLP 自然語言處理引擎、算法庫。NLP 自然語言處理引擎決定了 NLP 爬蟲平臺獲取數據的質量和數量,而這些原始數據作為知識圖譜的知識原料又決定了知識圖譜的水平。算法庫中的圖算法決定了圖構建、圖存儲和圖操作的能力,知識原料豐富而圖算法落後,依然不能構建出強大的知識圖譜。
金融反欺詐
圖資料庫通過利用多維交叉關聯信息深度刻畫申請和交易行為,可以有效識別規模化、隱蔽性的欺詐網絡和洗錢網絡;結合機器學習、聚類分析、風險傳播等相關算法,可以實時計算用戶的風險評分,在風險行為發生前預先識別,有效幫助金融機構提升效率、降低風險。應用圖資料庫的金融風控場景很多,例如個人信貸、洗錢路徑追蹤、個人 / 企業徵信等
基於圖資料庫在金融風控的優異表現,很多企業表示對這項技術的看好,在這之中也有一些前瞻性的企業已率先使用此技術並取得競爭性優勢。圖技術發展多年,這項技術仍然有很多企業沒有使用,是什麼原因阻礙了技術的推進?
首先是數據存儲的問題,在反洗錢的場景中,需對用戶的借記卡和信用卡數據存儲分析。在存儲時發現,僅 10 個月借記卡數據 +1 個月信用卡數據規模就有 5 個 T,這樣的數據量是過去圖資料庫無法支持的。
第二點是多步分析問題。在反洗錢應用場景中需要做到 3-10 步以上的分析,而目前的圖資料庫在企業級場景下,2 度到 3 度查詢時就會出現超時或者內存溢出的問題。這樣的性能對於欺詐甄別的幫助很小。
針對這些問題,圖資料庫廠商正在積極構建成熟的解決方案來滿足這兩點要求,市面上有越來越多高性能圖資料庫出現。目前,部分企業採取的替代方案是通過圖資料庫 + 大數據平臺的方式實現大數據量的效果,但是這樣的解決方案由於技術門檻較高無法輕易掌握。
工業領域
圖模型具有強大的表現力對於快速更新的事物有很強的適應性,在工業領域用來管理快速變化的庫存、供應鏈關係。目前已有沃爾沃等汽車製造商,依靠圖資料庫優化生產流程和供應鏈管理。
在製造業,供應鏈的管理涉及到多人協作和實時庫存信息的反饋,包括匯總後的信息和明細數據的查詢,查詢過程涉及實體很多且關係複雜。此時圖資料庫在面對這類深度關聯的場景時,優勢就顯現出來了,因為只需要通過邊的查詢就能找到相關聯的數據,而無需對某一頂點做全局掃描,圖資料庫能夠做到對於流入數據的實時更新和數據深度遍歷。
圖資料庫技術的架構
圖資料庫的技術架構如下圖所示,整體上採用分層架構的模式,由上至下分別是:接口層、計算層、存儲層。
圖資料庫的系統架構
(1)接口層:接口層對外提供服務,有如下幾種方式:
查詢語言接口:提供除該圖資料庫原有查詢語言之外的語言查詢,例如 Cypher、Gremlin 等主流圖查詢語言接口。API:提供 ODBC、JDBC、RPC、RESTful 等接口與應用端交互。SDK:在 Python、Java、C++ 等程式語言中通過庫函數的方式調用圖資料庫的接口。可視化組件:通過圖形化界面的形式展示和實現用戶的交互。(2)計算層:提供對操作的處理和計算,包括語法解析、查詢引擎、優化器、事務管理、任務調度和圖算法實現等。其中,圖算法可能是由圖資料庫本身提供,也可能是提供接口與圖處理引擎對接
(3)存儲層:圖資料庫有原生和非原生存儲兩種存儲方式,圖存儲引擎提供了圖數據結構、索引邏輯上的管理。
圖查詢語言標準統一代表市場認可度提升
與關係型資料庫不同,圖資料庫領域目前沒有統一的查詢語言,大多數查詢語言與產品緊密關聯。當企業需要使用新的圖數據時需要重新學習語法,這帶來了不必要的學習成本。是否擁有一個統一的查詢語言標準,也標誌著圖資料庫市場的成熟度。
在 2019 年 9 月 17 日,SQL 標準國際委員會投票決定,將 GQL 作為一種新的圖數據查詢標準語言。目前還無法確定 GQL 的第一個可實現版本,但很有可能在 2020 下半年會推出 GQL 圖查詢語言的完備草案。
查詢語言統一帶來的好處:
降低企業學習成本—前期的學習成果是能夠積累在將來發揮作用的。新的查詢語言不只是簡單的語法,還是一種新的語言使用思考方式。統一語言後,使用不同的圖資料庫將只意味工具不同,但是語言基礎是相通的。提升技術成熟度—企業不只擔心學習成本,更擔心的是整個技術的成熟程度。如果業界有一門統一的查詢語言,也就是當企業認為這種分析方式是穩定而成熟的,才會認可它。雲讓數據查詢和分析變得簡單易用目前將圖資料庫上雲的廠商並不多,少數圖資料庫廠商提供雲上圖資料庫部署,供數據科學家,開發人員,業務分析師,學生和其他愛好者使用。開發者可以在短時間裡通過簡單的步驟開啟基於圖的解決方案配置。
大數據時代時代的業務增長帶來了數據量的劇增和數據關聯的複雜化,與此同時企業對數據價值的期望也越來越高。根據 DB Engines 近 7 年資料庫流行趨勢顯示,圖資料庫相較其他主流資料庫受歡迎程度遙遙領先,目前,國內越來越多的廠商進入圖資料庫領域,開始構建自己的圖資料庫,圖資料庫的建設既需要全面的大數據技術又需要圖資料庫工程師和業務專家的持續協作,是一項長期持續的工作,未來,圖資料庫技術必將成為最為熱點的技術之一。