天天看點

大資料時代的新型資料庫 — 圖資料庫 Neo4j 的應用

大資料時代的新型資料庫 — 圖資料庫 Neo4j 的應用
大資料時代的新型資料庫 — 圖資料庫 Neo4j 的應用

概覽

微雲數聚(北京)科技有限公司是一家實力雄厚的大資料技術公司,由移動網際網路技術專家團隊、大資料專業團隊和模組化博士團隊組成。微雲數聚專注于研究圖資料庫技術及其應用,是世界領先的圖資料庫neo4j在中國的戰略合作夥伴和官方代理,他們研制的neo4j簡體中文擴充版,是專為中國企業量身打造、符合中國企業習慣的圖資料庫系統,除了提供簡體中文界面,還支援節點顯示成圖檔,顯示效果由資料驅動;增加了智能查詢,并且開發了簡便導入excel、mysql和oracle的工具--導入精靈,這些擴充将極大促進neo4j在華語地區的推廣使用。微雲數聚在華為的幫助下,在推介neo4j的過程中,與中國網際網路、大資料企業客戶建立了良好的合作和信用關系,為neo4j的市場開拓奠定了良好基礎。

圖資料庫是大資料時代的一種新型資料庫,它是基于數學中圖論的算法而實作的高效處理複雜關系網絡的新型資料庫系統。它善于處理大量的、複雜的、互聯的、多變的網狀資料。其效率遠遠高于傳統的關系型資料庫的百倍、千倍甚至萬倍。圖資料庫特别适用于社交網絡、實時推薦、金融征信系統等廣泛的領域。領英(linkedin)、沃爾瑪、cisco、hp、ebay等全球知名企業都在使用圖資料庫neo4j。中國企業也在逐漸開始用圖資料庫來建構自己的應用,尤其在征信領域,工商總局、天眼查、啟信寶、企信寶、企業信用資訊、企查查等app都用了圖資料庫,著名的股票資訊軟體萬德也已經開始使用圖資料庫。華為、聯想也在密切關注圖資料庫neo4j,考慮将它納入paas平台。作為做了一輩子it、研究了一輩子資料庫的張幟,研制出具有中國自主産權的圖資料庫,将是他人生下一步的關鍵目标!

領英是如何實作朋友推薦的?沃爾瑪是如何實作零售商品推薦的?因為他們用了圖資料庫 neo4j,一種擅長處理複雜網狀關系的新型資料庫系統。本次分享包括如下内容:

一、圖資料庫的基本概念;

二、圖資料庫的應用案例;

三、圖資料庫的國産化程序。

直播實錄

大資料時代的新型資料庫 — 圖資料庫 Neo4j 的應用
大資料時代的新型資料庫 — 圖資料庫 Neo4j 的應用

歡迎來到直播間,大家好。我是微雲數聚(北京)科技有限公司的創始人張幟,目前主要做兩件事,第一件是靈活商務智能,目前已經有很多網際網路公司用到這個産品;第二件是國産化圖資料庫,也就是今天晚上要跟大家分享的資料庫。華為、聯想、中科院、招商銀行、電信、移動等都在關注這個産品,有可能成為合作夥伴和潛在的使用者。

這次分享的主題是大資料時代的新型資料庫 — 圖資料庫neo4j 的應用,大家一定用過領英 (linkedin),很可能關心過領英如何處理社交資料的,是用什麼技術實作朋友推薦的,大家也可能上過沃爾瑪的網絡商店,也可能好奇他是如何精準的為你推薦商品的。今天我們就一起揭開他們的神秘面紗。原來他們并沒有什麼秘密,他們隻是用了一個新型的資料庫,也就是我們今天要介紹的圖資料庫neo4j。

大資料時代的新型資料庫 — 圖資料庫 Neo4j 的應用

今天分享的内容分三部分:基本概念、應用案例、國産化程序。

國産化程序,主要講微雲數聚在國産化方面所做的努力和工作,給大家做個彙報。

大資料時代的新型資料庫 — 圖資料庫 Neo4j 的應用

什麼是圖資料庫,從理論依據來看,不是圖形、圖檔的處理,而是基于數學裡的圖論的理論和算法而實作的高效處理複雜關系網絡的新型資料庫系統。大家都學過圖論,圖論裡處理的就是點和線的關系,還有最小路徑、最短路徑、最佳運輸路徑等等。圖資料庫就是基于圖論而實作的資料庫系統,和我們知道的mysql、oracle以及hadoop思路完全不一樣。它實際上就是處理關系的、處理網絡的資料庫系統。

大資料時代的新型資料庫 — 圖資料庫 Neo4j 的應用

那麼我們從另一個角度看,圖資料庫是善于處理大量的、複雜的、互聯的、多變的資料。它處理這些資料的效率,遠遠高于關系型資料庫。

大資料時代的新型資料庫 — 圖資料庫 Neo4j 的應用

從應用角度來看,圖資料庫适合于哪些方面呢:例如領英的社交網絡、沃爾瑪的零售商品實時推薦、征信系統(在中國應用征信系統前景非常好)、人工智能(如阿法狗)。如果使用圖資料庫來記錄資料就會非常簡單。在這幾個領域有很廣泛的應用,當然,不僅僅是這些方面,其他方面也有很多的應用。今天跟大家介紹這些,隻是抛磚引玉,大家可舉一反三,在自己的行業領域找到廣泛應用。

大資料時代的新型資料庫 — 圖資料庫 Neo4j 的應用

從資料庫的結構來看,它包含的概念非常的簡單,他包含的概念隻有節點和關系。節點可以帶标簽,節點和關系也都可以帶屬性。

大資料時代的新型資料庫 — 圖資料庫 Neo4j 的應用

這裡有兩個人,一個汽車,共三個節點,每個節點,都打了标簽,上面的節點打了“個人”标簽,下面節點打了“汽車”标簽。

每個節點都可以帶屬性,第一個節點帶了姓名、生日和微信三個屬性。第二個節點帶了姓名和生日兩個屬性。汽車這個節點,帶有品牌和型号兩個屬性。這裡,兩個個人節點帶的屬性是不一樣的,這說明同類型的節點不一定要有同樣的屬性。每一個節點的屬性可以根據需要任意設定,可以多可以少,可以有可以無。上面兩個節點之間有相愛的關系,愛這個關系是帶箭頭的,也就是有方向的。下面這個關系“住在一起”也是關系,也是可以帶屬性的,屬性開始日期的值為2011年1月10日。

大家看到,圖資料庫模型的結構非常的簡單,就是節點和關系。節點可以帶屬性、标簽,關系也可以帶屬性。

接下來我們看看在neo4j裡怎麼建立節點和查詢節點的。

大資料時代的新型資料庫 — 圖資料庫 Neo4j 的應用

大家看到這個create語句就建立了節點和節點之間的關系。建立節點和關系就是這麼簡單。

大資料時代的新型資料庫 — 圖資料庫 Neo4j 的應用

match是查詢語句,這個查詢語句和create的差别隻在match和create單詞的不同。如果我們把第一個節點中的姓名屬性去掉,查詢的結果就是所有愛李四的人;把第二個節點的姓名屬性去掉,查到的就是所有相愛的人。

是以圖資料庫處理這種關系,語句非常直覺和簡潔。

大資料時代的新型資料庫 — 圖資料庫 Neo4j 的應用

那我們來講一下為什麼要使用圖資料庫。我們已經講到了,領英和沃爾瑪都用到了圖資料庫,用來處理複雜的關系。那麼為什麼用圖資料庫而不是關系資料庫來處理這種關系資料呢?

大資料時代的新型資料庫 — 圖資料庫 Neo4j 的應用

世界本來就是由各種關系組成的。都是節點和節點之間的關系,如圖所示,這個圖僅僅顯示了人和人之間的關系。現實中,不僅僅是人和人,也包括人和物,人和事件等複雜的關系。如果用關系資料庫,效率非常低,因為它的表達不直覺,計算要用到 join(連接配接)等複雜的關系,而圖資料庫是最适合處理這種網狀關系的。

大資料時代的新型資料庫 — 圖資料庫 Neo4j 的應用

這一頁是說關系型資料庫處理複雜關系的時候,模組化難、性能低、查詢難、擴充難。導緻傳統的資料庫不能處理實時的資料關系。

大資料時代的新型資料庫 — 圖資料庫 Neo4j 的應用

現在大家都在說nosql,nosql也不是為處理關系建立的,也不能處理好關系資料。

大資料時代的新型資料庫 — 圖資料庫 Neo4j 的應用

而唯獨隻有圖資料庫它是專門為處理複雜關系而建立出來的,它具有開發的優勢和部署的優勢。

大資料時代的新型資料庫 — 圖資料庫 Neo4j 的應用

我們現在來看關系模型和圖的模型,将這兩個模型作對比。左邊這個關系模型,技術人員能夠看得懂,非技術人員就不一定能看得懂了。而右邊這個圖模型,不僅技術人員,就連非技術人員也很清楚的看懂,因為它非常的直覺。

大資料時代的新型資料庫 — 圖資料庫 Neo4j 的應用

我們經常在白闆上畫一些模型,用來讨論我們的項目,我們通常是畫圈、畫線。如果用關系型資料庫來處理的話,就要把它映射成表格後再處理。如果用圖資料庫處理的話,就和白闆上的模型沒有什麼差别,是以說白闆模型就是實體模型。現在這個圖就是我們的實體模型,在圖資料庫中,表現現實世界的關系就這麼直覺。

大資料時代的新型資料庫 — 圖資料庫 Neo4j 的應用

為什麼要使用圖資料庫,這張圖是按照資料庫類别的一個發展趨勢圖,綠線代表的就是圖資料,最底下的紅線是關系型資料庫。這張圖從13年到16年,從這個圖能看出來,關系資料庫已非常成熟,應用也非常飽滿,是以發展趨勢不再往上升了。相反的,圖資料庫是嶄新的資料庫技術,随着網際網路的發展,圖資料庫的應用需求也越來越大,人氣指數也越來越高。

大資料時代的新型資料庫 — 圖資料庫 Neo4j 的應用

neo4j是圖資料庫的一種,為什麼要選用neo4j呢?下面我們用圖和資料來看看,為什麼要用neo4j。

大資料時代的新型資料庫 — 圖資料庫 Neo4j 的應用
大資料時代的新型資料庫 — 圖資料庫 Neo4j 的應用

這是圖資料庫類别裡的人氣排名。neo4j相比其他資料庫,要遙遙領先。

大資料時代的新型資料庫 — 圖資料庫 Neo4j 的應用

從趨勢圖來看,在圖資料庫的類别裡,neo4j也是遙遙領先。

大資料時代的新型資料庫 — 圖資料庫 Neo4j 的應用

neo4j建立了圖資料庫裡最大的生态系統。

大資料時代的新型資料庫 — 圖資料庫 Neo4j 的應用

這是各種著名媒體報道的截屏。forester預計2017年,有25%的企業使用圖資料庫,根據我們推廣的結果看,國内很多廠家已經開始在用neo4j了。是以達到25%比例這個目标會提前實作。

大資料時代的新型資料庫 — 圖資料庫 Neo4j 的應用

neo4j的關鍵産品特征。

大資料時代的新型資料庫 — 圖資料庫 Neo4j 的應用

社群版不支援叢集,免費。企業版支援叢集,是收費的。前面有負載均衡,後面有三個neo4j伺服器,其中一個标有五星,表示它是master,其它的是slave。如果master出現故障,會有一台slave主動變為master。這是一個很好的負載均衡的機制。

大資料時代的新型資料庫 — 圖資料庫 Neo4j 的應用

未來如何架構你的應用呢?以前的應用,是在上面這條線,從使用者到應用,到資料庫。未來我們用上neo4j,在下方增加支路來通路neo4j圖資料庫。

大資料時代的新型資料庫 — 圖資料庫 Neo4j 的應用
大資料時代的新型資料庫 — 圖資料庫 Neo4j 的應用
大資料時代的新型資料庫 — 圖資料庫 Neo4j 的應用
大資料時代的新型資料庫 — 圖資料庫 Neo4j 的應用

這是一個有趣的圖資料庫應用。有銀行人員向政府舉報,在瑞士彙豐銀行,可能有潛在的詐騙、賄賂和逃逸事件。政府将收到的一堆檔案轉給icij(國際記者調查組織)進行分析調查。這些記者是不懂it的,如何處理這麼多資料呢?技術顧問推薦他們使用圖資料庫neo4j。他們裝了一台neo4j,然後把資料導進去,直接在neo4j界面上進行查詢,居然查出了成千上萬的詐騙、賄賂和逃逸的事件。我舉這個例子說明,neo4j不僅僅是技術人員,也是很多非技術人員可以掌握的工具。

大資料時代的新型資料庫 — 圖資料庫 Neo4j 的應用
大資料時代的新型資料庫 — 圖資料庫 Neo4j 的應用

這張圖講演員之間複雜的關系。這張圖好看,但不好用,我們要找不同人之間的關系,會非常麻煩,而且不一定能找全。如果我們把它導入到neo4j裡面去,就會變得好用。

大資料時代的新型資料庫 — 圖資料庫 Neo4j 的應用

這是neo4j的文法,把演員之間的節點和關系,輸入進去。

大資料時代的新型資料庫 — 圖資料庫 Neo4j 的應用

可以得出這張圖,這張圖好用了,但不好看。

大資料時代的新型資料庫 — 圖資料庫 Neo4j 的應用

我們是希望又好用又好看。這張圖有圖檔了。我們的圖檔也支援gif。是微雲數聚把它做的又好用又好看。

大資料時代的新型資料庫 — 圖資料庫 Neo4j 的應用
大資料時代的新型資料庫 — 圖資料庫 Neo4j 的應用
大資料時代的新型資料庫 — 圖資料庫 Neo4j 的應用
大資料時代的新型資料庫 — 圖資料庫 Neo4j 的應用

這個圖是一家集團公司的投資網絡和擔保網絡。圖中,中航工業集團在正中心,直接連的是子公司,再往外是孫子公司。圓圈的大小代表了注冊資本的大小,紅線代表投資關系,其粗細代表投資資本的多少,綠線代表擔保關系,其粗細代表擔保的多少。

這個圖裡,微雲數聚又做了貢獻,在原版中,這個圖中的節點大小是一緻的,而微雲數聚可以讓這個圓圈的大小由資料驅動,投資資本大,圓圈就大。資料驅動這個功能,是微雲數聚為neo4j在本地化過程中所做的擴充。

現在可以針對這個圖進行計算。比如計算虧本網絡,即将所有淨利潤小于0的公司組成的網絡找出來。

大資料時代的新型資料庫 — 圖資料庫 Neo4j 的應用
大資料時代的新型資料庫 — 圖資料庫 Neo4j 的應用

這個是輿情分析的應用,這個語句是查詢标題中具有“性福”兩個字的郵件的傳播路徑,紅色是發郵件的人,藍色是接收郵件的人。從這張圖可以看出,警察局如果要抓發郵件的人,就直接抓最中心的這個人,他是始作俑者。

大資料時代的新型資料庫 — 圖資料庫 Neo4j 的應用

這是另一個輿情分析的例子,我們用新浪的資料計算出大v之間的團夥關系。

大資料時代的新型資料庫 — 圖資料庫 Neo4j 的應用

這是對股票投資的資料查詢,我們把兩千多隻股票,和每隻股票前十大股東的情況輸入進去了。這個是查詢名稱中包含五礦的所有股份的投資情況。

大資料時代的新型資料庫 — 圖資料庫 Neo4j 的應用

還有一個功能,就是資料的鑽取,滑鼠雙點選某個節點,可以展開這個節點的其它關系。

大資料時代的新型資料庫 — 圖資料庫 Neo4j 的應用
大資料時代的新型資料庫 — 圖資料庫 Neo4j 的應用
大資料時代的新型資料庫 — 圖資料庫 Neo4j 的應用

第一個就是沃爾瑪,用它來做實時推薦。

大資料時代的新型資料庫 — 圖資料庫 Neo4j 的應用

左邊是實時推薦,右邊是以這個人為中心的消費習慣,中間是商品和其他商品之間的内在關系。當這個人點選了中間這個商品,系統就對這兩個網絡進行計算,計算出這個人可能會對哪些商品感興趣,并在左邊實時顯示出來。這是沃爾瑪的案例。

大資料時代的新型資料庫 — 圖資料庫 Neo4j 的應用
大資料時代的新型資料庫 — 圖資料庫 Neo4j 的應用

思科用它來做組織管理。

大資料時代的新型資料庫 — 圖資料庫 Neo4j 的應用
大資料時代的新型資料庫 — 圖資料庫 Neo4j 的應用

這是欺詐檢測的應用。四個獨立身份的人,每個人都有若幹張銀行卡,他們用每個卡到銀行貸款或者借款4k美金,每個卡的風險不是很大。但是我們通過關系分析,發現上面兩個人,經常給同一個電話打電話,左邊兩個人,經常往同一個位址寄郵件,底下兩個人經常給同一個電話打電話,右邊兩個人,經常往同一個位址寄郵件。這四個人在某種程度上是一個合成身份的人,他們形成了一個詐騙環。如果這四個人,同時來找銀行貸款,他們貸款的金額很可能就是72k美金。給銀行帶來的風險,就是72k的風險。

大資料時代的新型資料庫 — 圖資料庫 Neo4j 的應用
大資料時代的新型資料庫 — 圖資料庫 Neo4j 的應用
大資料時代的新型資料庫 — 圖資料庫 Neo4j 的應用
大資料時代的新型資料庫 — 圖資料庫 Neo4j 的應用
大資料時代的新型資料庫 — 圖資料庫 Neo4j 的應用
大資料時代的新型資料庫 — 圖資料庫 Neo4j 的應用
大資料時代的新型資料庫 — 圖資料庫 Neo4j 的應用
大資料時代的新型資料庫 — 圖資料庫 Neo4j 的應用
大資料時代的新型資料庫 — 圖資料庫 Neo4j 的應用

這是中國在用圖資料庫的案例,我這裡搜集的都是征信系統。他們都用到了圖資料庫。

大資料時代的新型資料庫 — 圖資料庫 Neo4j 的應用

這是比較有名的股票系統,萬德,也在使用圖資料庫。大家可以想想,在自己的領域,有哪些方面可以用到圖資料庫?

大資料時代的新型資料庫 — 圖資料庫 Neo4j 的應用

微雲數聚在neo4j國産化所做的工作:

大資料時代的新型資料庫 — 圖資料庫 Neo4j 的應用

第一個,漢化的版本。

大資料時代的新型資料庫 — 圖資料庫 Neo4j 的應用

第二個,圖檔化顯示。

大資料時代的新型資料庫 — 圖資料庫 Neo4j 的應用

第三個,資料來驅動,節點和關系的大小、粗細。

大資料時代的新型資料庫 — 圖資料庫 Neo4j 的應用

第四個,我們擴充了一個智能查詢的功能。

大資料時代的新型資料庫 — 圖資料庫 Neo4j 的應用

第五個,我們實作了一個導入精靈,可以直接把excel、mysql、oracle等資料源的資料導入到neo4j的資料庫中去。

大資料時代的新型資料庫 — 圖資料庫 Neo4j 的應用
大資料時代的新型資料庫 — 圖資料庫 Neo4j 的應用

來源:中生代技術

<a href="https://mp.weixin.qq.com/s/uo5p2ssyfxrgczerxqktiw" target="_blank">原文連結</a>