大数据时代的新型数据库 — 图数据库 Neo4j 的应用
概覽
微云數聚(北京)科技有限公司是一家實力雄厚的大數據技術公司,由移動互聯網技術專家團隊、大數據專業團隊和建模博士團隊組成。微云數聚專注于研究圖數據庫技術及其應用,是世界領先的圖數據庫Neo4j在中國的戰略合作伙伴和官方代理,他們研制的Neo4j簡體中文擴展版,是專為中國企業量身打造、符合中國企業習慣的圖數據庫系統,除了提供簡體中文界面,還支持節點顯示成圖片,顯示效果由數據驅動;增加了智能查詢,并且開發了簡便導入Excel、MySQL和Oracle的工具--導入精靈,這些擴展將極大促進Neo4j在華語地區的推廣使用。微云數聚在華為的幫助下,在推介Neo4j的過程中,與中國互聯網、大數據企業客戶建立了良好的合作和信用關系,為Neo4j的市場開拓奠定了良好基礎。
圖數據庫是大數據時代的一種新型數據庫,它是基于數學中圖論的算法而實現的高效處理復雜關系網絡的新型數據庫系統。它善于處理大量的、復雜的、互聯的、多變的網狀數據。其效率遠遠高于傳統的關系型數據庫的百倍、千倍甚至萬倍。圖數據庫特別適用于社交網絡、實時推薦、金融征信系統等廣泛的領域。領英(LinkedIn)、沃爾瑪、CISCO、HP、eBay等全球知名企業都在使用圖數據庫Neo4j。中國企業也在逐步開始用圖數據庫來構建自己的應用,尤其在征信領域,工商總局、天眼查、啟信寶、企信寶、企業信用信息、企查查等APP都用了圖數據庫,著名的股票信息軟件萬德也已經開始使用圖數據庫。華為、聯想也在密切關注圖數據庫Neo4j,考慮將它納入PaaS平臺。作為做了一輩子IT、研究了一輩子數據庫的張幟,研制出具有中國自主產權的圖數據庫,將是他人生下一步的關鍵目標!
領英是如何實現朋友推薦的?沃爾瑪是如何實現零售商品推薦的?因為他們用了圖數據庫 Neo4j,一種擅長處理復雜網狀關系的新型數據庫系統。本次分享包括如下內容:
一、圖數據庫的基本概念;
二、圖數據庫的應用案例;
三、圖數據庫的國產化進程。
直播實錄
歡迎來到直播間,大家好。我是微云數聚(北京)科技有限公司的創始人張幟,目前主要做兩件事,第一件是敏捷商務智能,目前已經有很多互聯網公司用到這個產品;第二件是國產化圖數據庫,也就是今天晚上要跟大家分享的數據庫。華為、聯想、中科院、招商銀行、電信、移動等都在關注這個產品,有可能成為合作伙伴和潛在的用戶。
?
這次分享的主題是大數據時代的新型數據庫 — 圖數據庫Neo4j 的應用,大家一定用過領英 (Linkedin),很可能關心過領英如何處理社交數據的,是用什么技術實現朋友推薦的,大家也可能上過沃爾瑪的網絡商店,也可能好奇他是如何精準的為你推薦商品的。今天我們就一起揭開他們的神秘面紗。原來他們并沒有什么秘密,他們只是用了一個新型的數據庫,也就是我們今天要介紹的圖數據庫Neo4j。
今天分享的內容分三部分:基本概念、應用案例、國產化進程。
國產化進程,主要講微云數聚在國產化方面所做的努力和工作,給大家做個匯報。
什么是圖數據庫,從理論依據來看,不是圖形、圖片的處理,而是基于數學里的圖論的理論和算法而實現的高效處理復雜關系網絡的新型數據庫系統。大家都學過圖論,圖論里處理的就是點和線的關系,還有最小路徑、最短路徑、最佳運輸路徑等等。圖數據庫就是基于圖論而實現的數據庫系統,和我們知道的mySQL、Oracle以及Hadoop思路完全不一樣。它實際上就是處理關系的、處理網絡的數據庫系統。
那么我們從另一個角度看,圖數據庫是善于處理大量的、復雜的、互聯的、多變的數據。它處理這些數據的效率,遠遠高于關系型數據庫。
從應用角度來看,圖數據庫適合于哪些方面呢:例如領英的社交網絡、沃爾瑪的零售商品實時推薦、征信系統(在中國應用征信系統前景非常好)、人工智能(如阿法狗)。如果使用圖數據庫來記錄數據就會非常簡單。在這幾個領域有很廣泛的應用,當然,不僅僅是這些方面,其他方面也有很多的應用。今天跟大家介紹這些,只是拋磚引玉,大家可舉一反三,在自己的行業領域找到廣泛應用。
從數據庫的結構來看,它包含的概念非常的簡單,他包含的概念只有節點和關系。節點可以帶標簽,節點和關系也都可以帶屬性。
這里有兩個人,一個汽車,共三個節點,每個節點,都打了標簽,上面的節點打了“個人”標簽,下面節點打了“汽車”標簽。
?
每個節點都可以帶屬性,第一個節點帶了姓名、生日和微信三個屬性。第二個節點帶了姓名和生日兩個屬性。汽車這個節點,帶有品牌和型號兩個屬性。這里,兩個個人節點帶的屬性是不一樣的,這說明同類型的節點不一定要有同樣的屬性。每一個節點的屬性可以根據需要任意設置,可以多可以少,可以有可以無。上面兩個節點之間有相愛的關系,愛這個關系是帶箭頭的,也就是有方向的。下面這個關系“住在一起”也是關系,也是可以帶屬性的,屬性開始日期的值為2011年1月10日。
?
大家看到,圖數據庫模型的結構非常的簡單,就是節點和關系。節點可以帶屬性、標簽,關系也可以帶屬性。
?
接下來我們看看在Neo4j里怎么創建節點和查詢節點的。
大家看到這個CREATE語句就創建了節點和節點之間的關系。創建節點和關系就是這么簡單。
MATCH是查詢語句,這個查詢語句和CREATE的差別只在MATCH和CREATE單詞的不同。如果我們把第一個節點中的姓名屬性去掉,查詢的結果就是所有愛李四的人;把第二個節點的姓名屬性去掉,查到的就是所有相愛的人。
?
所以圖數據庫處理這種關系,語句非常直觀和簡潔。
那我們來講一下為什么要使用圖數據庫。我們已經講到了,領英和沃爾瑪都用到了圖數據庫,用來處理復雜的關系。那么為什么用圖數據庫而不是關系數據庫來處理這種關系數據呢?
世界本來就是由各種關系組成的。都是節點和節點之間的關系,如圖所示,這個圖僅僅顯示了人和人之間的關系?,F實中,不僅僅是人和人,也包括人和物,人和事件等復雜的關系。如果用關系數據庫,效率非常低,因為它的表達不直觀,計算要用到 join(連接)等復雜的關系,而圖數據庫是最適合處理這種網狀關系的。
這一頁是說關系型數據庫處理復雜關系的時候,建模難、性能低、查詢難、擴展難。導致傳統的數據庫不能處理實時的數據關系。
現在大家都在說NoSQL,NoSQL也不是為處理關系創建的,也不能處理好關系數據。
而唯獨只有圖數據庫它是專門為處理復雜關系而創建出來的,它具有開發的優勢和部署的優勢。
我們現在來看關系模型和圖的模型,將這兩個模型作對比。左邊這個關系模型,技術人員能夠看得懂,非技術人員就不一定能看得懂了。而右邊這個圖模型,不僅技術人員,就連非技術人員也很清楚的看懂,因為它非常的直觀。
我們經常在白板上畫一些模型,用來討論我們的項目,我們通常是畫圈、畫線。如果用關系型數據庫來處理的話,就要把它映射成表格后再處理。如果用圖數據庫處理的話,就和白板上的模型沒有什么差別,所以說白板模型就是物理模型?,F在這個圖就是我們的物理模型,在圖數據庫中,表現現實世界的關系就這么直觀。
為什么要使用圖數據庫,這張圖是按照數據庫類別的一個發展趨勢圖,綠線代表的就是圖數據,最底下的紅線是關系型數據庫。這張圖從13年到16年,從這個圖能看出來,關系數據庫已非常成熟,應用也非常飽滿,所以發展趨勢不再往上升了。相反的,圖數據庫是嶄新的數據庫技術,隨著互聯網的發展,圖數據庫的應用需求也越來越大,人氣指數也越來越高。
Neo4j是圖數據庫的一種,為什么要選用Neo4j呢?下面我們用圖和數據來看看,為什么要用Neo4j。
Neo4j是圖數據庫的一種,為什么要選用Neo4j呢?下面我們用圖和數據來看看,為什么要用Neo4j。
這是圖數據庫類別里的人氣排名。Neo4j相比其他數據庫,要遙遙領先。
從趨勢圖來看,在圖數據庫的類別里,Neo4j也是遙遙領先。
Neo4j建立了圖數據庫里最大的生態系統。
這是各種著名媒體報道的截屏。Forester預計2017年,有25%的企業使用圖數據庫,根據我們推廣的結果看,國內很多廠家已經開始在用Neo4j了。所以達到25%比例這個目標會提前實現。
Neo4j的關鍵產品特征。
社區版不支持集群,免費。企業版支持集群,是收費的。前面有負載均衡,后面有三個Neo4j服務器,其中一個標有五星,表示它是Master,其它的是Slave。如果Master出現故障,會有一臺Slave主動變為Master。這是一個很好的負載均衡的機制。
未來如何架構你的應用呢?以前的應用,是在上面這條線,從用戶到應用,到數據庫。未來我們用上Neo4j,在下方增加支路來訪問Neo4j圖數據庫。
這是一個有趣的圖數據庫應用。有銀行人員向政府舉報,在瑞士匯豐銀行,可能有潛在的詐騙、賄賂和逃逸事件。政府將收到的一堆文件轉給ICIJ(國際記者調查組織)進行分析調查。這些記者是不懂IT的,如何處理這么多數據呢?技術顧問推薦他們使用圖數據庫Neo4j。他們裝了一臺Neo4j,然后把數據導進去,直接在Neo4j界面上進行查詢,居然查出了成千上萬的詐騙、賄賂和逃逸的事件。我舉這個例子說明,Neo4j不僅僅是技術人員,也是很多非技術人員可以掌握的工具。
這張圖講演員之間復雜的關系。這張圖好看,但不好用,我們要找不同人之間的關系,會非常麻煩,而且不一定能找全。如果我們把它導入到Neo4j里面去,就會變得好用。
這是Neo4j的語法,把演員之間的節點和關系,輸入進去。
可以得出這張圖,這張圖好用了,但不好看。
我們是希望又好用又好看。這張圖有圖片了。我們的圖片也支持gif。是微云數聚把它做的又好用又好看。
這個圖是一家集團公司的投資網絡和擔保網絡。圖中,中航工業集團在正中心,直接連的是子公司,再往外是孫子公司。圓圈的大小代表了注冊資本的大小,紅線代表投資關系,其粗細代表投資資本的多少,綠線代表擔保關系,其粗細代表擔保的多少。
?
這個圖里,微云數聚又做了貢獻,在原版中,這個圖中的節點大小是一致的,而微云數聚可以讓這個圓圈的大小由數據驅動,投資資本大,圓圈就大。數據驅動這個功能,是微云數聚為Neo4j在本地化過程中所做的擴展。
?
現在可以針對這個圖進行計算。比如計算虧本網絡,即將所有凈利潤小于0的公司組成的網絡找出來。
這個是輿情分析的應用,這個語句是查詢標題中具有“性?!眱蓚€字的郵件的傳播路徑,紅色是發郵件的人,藍色是接收郵件的人。從這張圖可以看出,公安局如果要抓發郵件的人,就直接抓最中心的這個人,他是始作俑者。
這是另一個輿情分析的例子,我們用新浪的數據計算出大V之間的團伙關系。
這是對股票投資的數據查詢,我們把兩千多只股票,和每只股票前十大股東的情況輸入進去了。這個是查詢名稱中包含五礦的所有股份的投資情況。
還有一個功能,就是數據的鉆取,鼠標雙點擊某個節點,可以展開這個節點的其它關系。
第一個就是沃爾瑪,用它來做實時推薦。
左邊是實時推薦,右邊是以這個人為中心的消費習慣,中間是商品和其他商品之間的內在關系。當這個人點擊了中間這個商品,系統就對這兩個網絡進行計算,計算出這個人可能會對哪些商品感興趣,并在左邊實時顯示出來。這是沃爾瑪的案例。
思科用它來做組織管理。
這是欺詐檢測的應用。四個獨立身份的人,每個人都有若干張銀行卡,他們用每個卡到銀行貸款或者借款4K美金,每個卡的風險不是很大。但是我們通過關系分析,發現上面兩個人,經常給同一個電話打電話,左邊兩個人,經常往同一個地址寄郵件,底下兩個人經常給同一個電話打電話,右邊兩個人,經常往同一個地址寄郵件。這四個人在某種程度上是一個合成身份的人,他們形成了一個詐騙環。如果這四個人,同時來找銀行貸款,他們貸款的金額很可能就是72K美金。給銀行帶來的風險,就是72K的風險。
這是中國在用圖數據庫的案例,我這里搜集的都是征信系統。他們都用到了圖數據庫。
這是比較有名的股票系統,萬德,也在使用圖數據庫。大家可以想想,在自己的領域,有哪些方面可以用到圖數據庫?
微云數聚在Neo4j國產化所做的工作:
第一個,漢化的版本。
第二個,圖片化顯示。
第三個,數據來驅動,節點和關系的大小、粗細。
第四個,我們擴展了一個智能查詢的功能。
第五個,我們實現了一個導入精靈,可以直接把Excel、MySQL、Oracle等數據源的數據導入到Neo4j的數據庫中去。
來源:中生代技術
原文鏈接
總結
以上是生活随笔為你收集整理的大数据时代的新型数据库 — 图数据库 Neo4j 的应用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: “双十一”即来 电商如何开启安全大战?
- 下一篇: 利用ImageMagick命令执行漏洞拿