白話大數據 | 關於圖資料庫,沒有比這篇更通俗易懂的啦
近年來圖資料庫越來越火,討論的話題也越來越多,但很多小夥伴還不清楚圖資料庫到底是個啥?和傳統關係型資料庫有什麼區別?具體又有什麼特點?那今天小編將通過有個男人叫小帥的故事來給大家通俗易懂地介紹下什麼是圖資料庫。
長話短說,故事正式開始
什麼是圖資料庫
從前,有個男人叫小帥,他有個弟弟叫小強,他們有個漂亮的鄰居叫小美,他們三個在同一所學校讀書。小帥喜歡小美,小強也喜歡小美,但小美不喜歡小強,小美喜歡的人是小帥。
沒關係,我們畫一張簡單的圖來幫大家理清一下關係。
看了上面這張圖,有沒有一種撥開雲霧的趕腳,感覺整個世界都清晰了?
那其實這裡我們是用了圖結構來表達數據。圖是由節點和關係兩個元素組成的,每個節點代表一個實體,例如人,地,事物,類別等,每個關係代表兩個節點的關聯方式。
那圖資料庫就是一種使用圖結構進行存儲和查詢的資料庫,其中節點和邊用於對數據進行表示和存儲。
常用的圖模型有2種,分別是屬性圖(Property Graph)和資源描述框架(RDF),現在較為知名的圖資料庫主要是基於屬性圖,也就是我們上面畫的那張圖。
屬性圖由頂點(圓圈)、邊(箭頭)、屬性(key:value)組成。以上面我們畫的圖為例,三個頂點都有一個標籤是student,同時還有屬性name,屬性值分別是小帥,小強,小美。頂點之間的邊表示了他們的關係,哥哥,弟弟,喜歡。如果兩人之間的邊是雙向的,說明兩人有相互關係,如果是單向的……
圖資料庫與傳統關係型資料庫的區別
小帥和小美兩個人平時在學校都是分開上課,接觸的機會不多。為了增加和小美相處的機會,小帥想和小美選一樣的課,那他們就可以天天在一起了。但小帥又不想直接問小美選什麼課,他想以偶遇的方式和小美在課堂上遇見。
為了了解小美選課情況,小帥首先想到的是用傳統關係型資料庫進行查詢。
在關係型資料庫中,我們一般需要建立學生資訊表,學生和課程對應關係表,課程資訊表。
小帥想查詢小美選了哪些課,需要分3步:
第一步a,通過學生資訊表找到小美對應的學號18;
第二步b,使用學號去學生和課程對應關係表中找到小美選課的課程ID,如118,123,145;
第三步c,使用課程ID在課程資訊表中找到對應的課程名稱等資訊,如大數據,電腦,雲計算。
第一步a需要一次索引查找過程,第二步b也需要一次索引查找,第三步c需要3次索引查找。大學裡有幾萬名學生,小美又是個學霸,選了很多很多的課,那麼學生和課程對應關係表的記錄會非常多,通過表與表之間的JOIN操作會帶來大量系統性能的損耗,同時會消耗很多時間,查詢效率比較低,有時甚至無法返回結果。
所以說,這種情況使用關係型資料庫不是不行,只是表形式不擅長描述數據之間的某些特定的複雜關係。
於是,小帥又想到了最近比較火的圖資料庫,那讓我們看看圖數據是怎麼查詢的。
圖資料庫與關係型資料庫的建模方式不同,所以在圖資料庫中查詢就沒那麼複雜了。在圖資料庫中,學生和課程都在同一張圖中,小美和三門課程都是節點,分別帶有標籤Student和Course,他們之間通過屬性為選課的邊建立關聯關係。
小帥在查找小美選課情況時也是分為3步:
第一步A,通過在學生標籤student上建立的索引來找到小美對應的節點;
第二步B,再通過節點保存的標籤為選課的邊來找到對應的課程;
第三步C,讀取選課課程資訊。
雖然圖資料庫的查詢也是分為3步,但效率卻大大提高。第一步和傳統關係型資料庫一樣,第二步無需進行索引查找,直接可以通過節點獲取,雖然節點存在不同標籤的邊,但跟學生和課程對應關係表的記錄數肯定不是一個數量級的,尤其是在海量數據的情況下,圖資料庫表現出的性能更加優異,小帥通過圖資料庫進行數據查詢與分析的速度更快。
圖資料庫的優勢
小美有個閨蜜叫大漂亮,大漂亮喜歡小帥的弟弟小強。於是小帥和小美想撮合小強和大漂亮,他們給小強和大漂亮製造了很多相處的機會。經過一段時間的相處,小強逐漸對大漂亮產生了好感。
我們只需在之前的屬性圖上添加大漂亮這個節點和其與小美、小強的關聯邊就可以了。
那從上面的介紹你現在知道圖資料庫有什麼優勢了么?
與傳統關係型資料庫相比,圖資料庫有以下優勢:
**天然解釋性:**通過用屬性圖來表達小帥等人以及他們之間的關係,我們可以發現圖資料庫具有天然解釋性。用戶可以很自然的表達現實世界中的實體及其關聯關係(對應圖的頂點及邊)。
**高性能:**從小帥通過傳統關係型資料庫和圖資料庫進行選課查詢可以發現,圖資料庫在數據關聯關係查詢中具有更高的性能。傳統關係型資料庫多個表之間連接操作、外鍵約束,導致較大的額外開銷。而圖模型固有的數據索引結構,使得它的數據查詢與分析速度更快。
**靈活性:**從大漂亮這個實體以及其關係很自然地融入當前數據中,我們發現圖數據靈活的數據模型可以適應不斷變化的業務需求,任意添加或刪除頂點、邊,擴充或者縮小圖模型這些都可以輕鬆實現。
星環科技分散式圖資料庫StellarDB
鑒於圖資料庫在數據關係查詢方面的優勢,小帥決定採用圖資料庫的方式來查詢小美的選課資訊,但市面上有那麼多圖資料庫,到底用哪個讓小帥很為難。
圖資料庫根據底層存儲實現的不同,可分為原生圖資料庫和非原生圖資料庫。
原生圖資料庫:使用圖模型進行數據存儲,可以針對圖數據做優化,從而帶來更好的性能。
非原生圖資料庫:底層存儲使用非圖模型進行存儲,在存儲之上封裝圖的語義,進行圖處理,其優點是易於開發,適合產品眾多的大型公司,形成相互配合的產品棧。
目前,國外圖資料庫市場上開源、商用圖資料庫並駕齊驅,其中開源圖資料庫有Neo4j、JanusGraph、ArangoDB等,商用圖資料庫有Neptune(亞馬遜)、Cosmos(微軟)、TigerGraph等。而國產圖資料庫產業也在蓬勃發展,其中一款優秀的國產圖資料庫產品引起了小帥的注意,那就是星環科技圖資料庫StellarDB。
Transwarp StellarDB是星環科技自主研發的企業級分散式圖資料庫,兼容openCypher查詢語言,提供海量圖數據的存儲和分析能力,最大可支援百億級點、萬億級邊的存儲,可存儲的圖數據量可以達到PB級別。此外,對點、邊和屬性的檢索和查詢延時可以做到毫秒級。StellarDB還內置二十餘種圖分析演算法和深度圖演算法,可用於通用的圖分析業務場景。
StellarDB可以幫助用戶快速開發欺詐檢測、推薦引擎、社交網路分析、知識圖譜等應用,目前StellarDB在很多行業都有廣泛的應用,包括電商、金融、政府和社交網路領域等。
小帥瞬間被星環科技圖資料庫StellarDB強大的性能所折服,並通過StellarDB快速查到了小美的選課情況,成功地和小美一起上課。
某個周末,小帥約小美一起去環球影城。事前小帥通過星環科技分散式圖資料庫StellarDB接入網路上海量的數據,並通過其可視化介面快速挖掘出了各個主題人物之間,演員以及演員主演的其他電影等等多層以上的全部關係資訊,例如哈利波特里各個人物以及其關聯關係,小帥都了如指掌。
哈利波特人物關係
在環球影城之旅中,小帥豐富的學識給小美留下了深刻的印象,同時也讓兩人的關係更近了一步。經過一段時間的相處,兩人終於走到了一起!
Happy Ending