將數據資產視爲公司重要資產是企業的共識,數據的產生、存儲、消費…每一個數據流動環節都不可忽視。伴隨着企業業務的多元化,一方面業務數據量激增,另外一方面,數據不統1、數據孤島、數據價值被低估等問題也浮出水面,其根本緣由在於忽視了數據之間的關聯性。git
圖數據庫技術的出現,爲企業賦予了挖掘數據關聯價值的能力。而大數據時代的圖數據庫,除了具有優秀的關聯價值挖掘能力,還要應對海量數據的存儲計算挑戰。圖數據庫 Nebula Graph 應運而生,它是一款開源的分佈式圖數據庫,其 shared-nothing 分佈式架構和存儲與計算分離的架構特性,使得它尤爲擅長處理千億頂點、萬億條邊的超大規模數據集,同時保持毫秒級低延時。Nebula Graph 目前已應用在多家互聯網頭部企業的金融風控、數據治理、實時推薦、智能問答等業務場景。github
資深圖數據庫技術專家,開源的分佈式圖數據庫 Nebula Graph 研發商歐若數網 CEO Sherman 在 03.08 - 03.14 期間同 開源中國·高手問答 的小夥伴們以「聊聊圖數據庫 Nebula Graph」爲切入點展開討論,包括:「Nebula Graph 的技術設計」、「Nebula Graph 應用場景」、「圖數據庫技術展望」等方面內容,本文整理於他和開源中國小夥伴對圖數據庫的討論內容~數據庫
嘉賓簡介
Sherman,資深圖數據庫技術專家,現任杭州歐若數網科技有限公司 CEO,曾任職 Facebook、螞蟻金服等公司。一直從事圖數據庫研發工做,主導了分佈式圖數據庫 Nebula Graph 的研發,並將其開源爲美團、京東、騰訊等一線大廠業務所用。網絡
本文目錄
- 圖數據庫的場景應用
- 和 AI 結合的場景
- 對物聯網行業有沒有什麼應用場景
- 圖數據庫的應用場景是什麼?有哪些行業應用?
- 認識圖數據庫 Nebula Graph
- Nebula Graph 高性能的緣由
- Nebula Graph 數據庫設計的取捨
- Nebula Graph 的查詢優化
- 圖數據庫 Nebula Graph 的將來
- Nebula Graph 對 HDD 的支持程度
- Nebula Graph 對客戶端的規劃
- Nebula Graph 2021 年的開發重點和方向是什麼
圖數據庫的場景應用
和 AI 結合的場景?
@edra:請問這個做爲分佈式圖形處理數據庫,有和 AI 技術結合使用的場景嗎。架構
你好,目前跟 AI 結合的應用場景有兩類,一類是常見的知識圖譜,另外一類是基於圖的機器學習,簡稱 GNN,在模型訓練中將數據之間的關聯關係考慮進去。併發
圖數據庫對物聯網行業有沒有什麼應用場景?
@豬娃娃:您好,圖數據庫對物聯網行業有沒有什麼應用場景?框架
物聯網自己是物體之間的關聯,因此很天然地能夠用圖數據庫來存放,隨着智能汽車的使用,物聯網中的關係在動態變化中,圖數據庫是解決這種動態變化的關係網絡最好的工具。機器學習
圖數據庫的應用場景是什麼?有哪些行業應用?
@開源中國首席羅納爾多:您好,請問圖數據庫的應用場景是什麼?有哪些行業應用?數據庫設計
這個是一個通用問題啦,常見的是社交推薦、知識圖譜、金融風控、機器學習 AI、區塊鏈等等應用。你能夠關注 Nebula Graph 以前的線下分享的文字整理稿:http://www.javashuo.com/article/p-rmiwptih-gv.html, 固然除了上面的,以前微衆銀行也分享了他們用圖數據庫 Nebula Graph 作數據治理的分享,能夠看看咱們發在開源中國的博文呀,感謝支持^ ^分佈式
認識圖數據庫 Nebula Graph
Nebula Graph 高性能的緣由
@jasonwu24:老師您好!以前看過一篇文章,其中對比了 Neo4j、 Nebula Graph 以及 Huge Graph 這三大圖數據庫在入庫時間、一度好友查詢、二度好友查詢、共同好友查詢等幾個方面的性能,在導入性能上,數據量小的時候 Nebula Graph 的導入效率稍慢於 Neo4j,但在大數據量的時候 Nebula Graph 的導入明顯優於其餘兩款圖數據庫。在 3 種查詢場景下, Nebula Graph 的效率都明顯高於 Neo4j,與 HugeGraph 相比也有必定的優點。這是由於 Nebula Graph 採用 shared-nothing 分佈式架構,因此更擅長處理千億節點萬億條邊的超大規模數據集嗎?除此以外還有沒有其餘方面的緣由使其性能更爲突出呢?謝謝!
你好,感謝提問。除了 shared-nothing 的架構,還有一方面是由於數據分片和存儲的方式(將點和其相鄰的關係放在一塊兒,增長 data locality),另一方面咱們在查詢層也作了一些優化,好比計算下推。具體能夠參考咱們的架構系列博客文章:https://nebula-graph.com.cn/tags/%E6%9E%B6%E6%9E%84%E5%89%96%E6%9E%90/
Nebula Graph 數據庫設計的取捨
@赤腳小子:在 NEBULA 研發過程當中確定會有不少取捨,好比事務,是否能夠更新結構,歷史數據是否能夠更新/刪除等等特性。
一開始 NEBULA 在作支持某些特性不支持某些特性的過程當中,是怎樣的一個思考過程?一開始就有明確的使用場景/商業領域在指引?仍是也是亦步亦趨直到最後走出本身的路的?
是的,在研發過程當中是有取捨的,目前 Nebula 專一的場景是高併發低延時的 TP 場景。因此,取捨的原則就是一個新特性是否能很好地支撐 TP 場景的性能要求。隨着產品的成熟,咱們也會慢慢開始支持 AP 場景,如離線分析和計算。
Nebula Graph 的查詢優化
@osc_64757058:請問 nebula graph 在查詢時有哪些優化,是否支持並行計算?
Nebula 在查詢時作了不少優化,如計算下推、執行計算重構等。Nebula 支持多種計算框架,例如 GraphX、Plato 等。
最佳分區配置
@becke:看介紹,Nebula Graph 使用了raft 協議保持數據一致性,性能由底層的 partition 數據決定,不清楚怎麼來選擇最佳的分區數據?
咱們建議一臺機器上的分區數量不小於機器的 CPU 核數,同時考慮到將來擴容的須要,這個數量能夠適當放大。 圖數據庫 Nebula Graph 的將來
Nebula Graph 對 HDD 的支持程度
@osc_ajxzbfuw:您好, Nebula 如今也是愈來愈火, 關注的人愈來愈多啦。
有個小需求, 就是 Nebula 增長是 HDD 磁盤的優化, 不知道可有這方面的計劃,優先級是怎樣的,畢竟 Nebula 可能還有更重要的功能須要開發、支持。
在實際的企業中, 受限於預算、審批流程等各類緣由的限制,SSD 磁盤的主機並不容易得到。
你好,因爲 HDD 磁盤自己的限制,在數據量大的 TP 場景下,不管怎麼優化,性能都不會很好。若是你的數據量小到足夠放在內存中處理,今年咱們會推出基於內存的存儲引擎,這樣能夠解決你的問題。可是對於大數據量的 TP 場景,仍是建議申請 SSD 磁盤。HDD 磁盤用於 AP 場景是可行的,今年咱們會解決這個問題。
Nebula Graph 對客戶端的規劃
@荒野刀客 :你好 ,最近也在選型圖數據庫,初步考慮 nebula graph,但看到客戶端 cpp client 好像活躍度不高,沒幾我的在 github 上貢獻,而 go 語言等客戶端 SDK 貢獻者不少,這塊兒後續有什麼計劃?另外純 C 的客戶端也沒有看到 ,使用能夠將 go 語言的 nebula client 編譯成動態庫,輸出一些 C API?
CPP Client 一直是咱們優先級最高的 Client 之一,咱們會持續支持。純 C 的客戶端目前確實沒有,這是由於目前好像沒有看到這方面的需求,若是需求量大的話,咱們也會考慮支持。也歡迎你來貢獻!
Nebula Graph 2021 年的開發重點和方向是什麼
@榮飛coder:1.Nebula Graph 2021 年的開發重點和方向是什麼?我知道 2.0 ga 立刻就要發佈了,這個應該算是一個里程碑;2.Nebula Graph的目的實際上是發揮數據價值的。數據價值很重的一個方面是數據關係,圖計算在關係處理裏面做用很大(圖計算 我理解有限,還在學習),想知道圖計算和 Nebula Graph 結合的案例以及有沒有相關資料推薦啊,謝謝
- 2021 年的重點是在增強性能和穩定性的基礎上,增長圖計算的融合,同時推出雲服務;
- Nebula 跟圖計算結合的案例咱們博客裏有幾篇,好比這篇 GraphX 的:https://nebula-graph.com.cn/posts/practice-graphx-nebula-graph-algorithm/
以上爲本次圖數據庫交流的整理,若是你打算使用圖數據庫,在使用 Nebula Graph 過程當中遇到任何問題,記得來咱們的論壇和咱們交流下:https://discuss.nebula-graph.com.cn/ ,在實踐以前記得關注下咱們的開源中國專欄瞭解更多 Nebula Graph 的特性呀:https://my.oschina.net/u/4169309