來源:北大青鳥總部 2023年07月11日 08:44
隨著中國互聯(lián)網(wǎng)的發(fā)展,互聯(lián)網(wǎng)開始由web端訪問逐漸演變?yōu)橹悄苁謾C端、智能終端,而產(chǎn)生的數(shù)據(jù)從簡單的結構化二維數(shù)據(jù)逐漸演變成視頻音頻圖片的非結構化數(shù)據(jù)、專屬網(wǎng)絡的JSON&XML半結構化數(shù)據(jù),對于互聯(lián)網(wǎng)的運營方式也從不需要運營逐漸演變成打折優(yōu)惠券返現(xiàn)的逐步運營、社群運營&精準投放的精細化運營,除了本人相關的年齡地點愛好信息之外,我們開始關注和本人相關的一度物品信息、二度物品信息,和本人相關的一度人脈、二度人脈、三度人脈,將對應的信息、對應人相關的信息推薦給本人,這就是新一代互聯(lián)網(wǎng)特色。
互聯(lián)網(wǎng)1.0時代,信息是單項傳遞,網(wǎng)站做信息發(fā)布告訴網(wǎng)民,網(wǎng)民被動接受;互聯(lián)網(wǎng)2.0時代,信息是雙向傳遞,網(wǎng)民和網(wǎng)站,網(wǎng)站和網(wǎng)站,網(wǎng)站和網(wǎng)民之間進行信息交流與傳遞;互聯(lián)網(wǎng)3.0時代,信息是全方位互動,網(wǎng)絡和網(wǎng)民在生活工作的方方面面全鏈接起來,建立以人為中心的與整個世界的信息交流與傳遞,我們現(xiàn)在正處于互聯(lián)網(wǎng)3.0時代。所謂工欲善其事,必先利其器,在新一代互聯(lián)網(wǎng)中,必要要有對應的工具進行支撐,在技術領域除了人工智能、大數(shù)據(jù)、云計算、5G等技術之外,還有一項比較小眾但卻越來越流行的技術,這便是圖數(shù)據(jù)庫技術。
圖數(shù)據(jù)庫是在2010年開始逐步發(fā)展起來的技術,由于涌入互聯(lián)網(wǎng)的網(wǎng)民和企業(yè)越來越多,網(wǎng)絡的運營開始走向精細化,F(xiàn)acebook、Linked等社交網(wǎng)絡公司開始研究如何更好更高效的社交,從而帶動了圖計算的大規(guī)模應用。圖數(shù)據(jù)庫,并非望文生義,存儲圖的數(shù)據(jù)庫。圖,是一種數(shù)據(jù)結構,在一個圖中,包含節(jié)點和邊,由多個節(jié)點、多條邊鏈接起來,在圖數(shù)據(jù)庫中,包含實體、關系、屬性、標簽四個元素。
我們通過一個實際的case來理解下圖這種數(shù)據(jù)結構。比如在當當這樣的在線書籍售賣網(wǎng)站中,John,年齡27歲,他讀過作者是IanRobinson.Jim Webber的書籍GraphDatabase,他還有朋友Sally,年齡32歲,也讀過這本書。在圖數(shù)據(jù)中,我們可以創(chuàng)造三個實體,John、Sally、GraphDataBase,每個實體由自己的標簽和屬性,比如John實體中,標簽是人Person,屬性是姓名John和年齡32,在GraphDatabase實體中,標簽是書Book,屬性是書名GraphDatabase和作者IanRobinson.JimWebber,實體與實體的關系包含朋友、是否閱讀,比如John和Sally從2013年9月1日開始是朋友,Sally在2013年9月2日讀過GraphDataBase這本書。
關于人和書的圖譜就建立起來了,在商品推薦中,我們可以通過朋友這層關系,給Sally推薦John喜歡的書籍,也可以通過書這層關系給Sally推薦GraphDataBase類似的數(shù)據(jù)。怎么樣?是不是很符合互聯(lián)網(wǎng)3.0時代的特色呀?逛淘寶時給你推薦類似商品的邏輯、刷抖音時給你推薦類似視頻的邏輯也大抵一樣喔。
圖數(shù)據(jù)庫應用起來很簡單,它的使用也很簡單呢。很多朋友可能認為這是一門新的技術,又要學習新的語法了,實際上它的語言和SQL差不多,使用思路和SQL也是差不多的。
比如在剛剛的Case中,我們使用下面的這些方法就可以去創(chuàng)建一個圖數(shù)據(jù)庫了。比如Create(節(jié)點:標簽(屬性))這個語法就可以來創(chuàng)建Sally這個Person類型的節(jié)點,節(jié)點中name屬性為Sally,Age屬性為32,CREATE{sally:Person{name:’Sally’,age:32}}
在圖數(shù)據(jù)中,比如我們想獲取所有的人信息、按姓名順序獲取最靠前的十個人信息,并返回姓名和年齡,使用下面的語法就可以實現(xiàn),我們來看看使用最常用的SQL語法和圖數(shù)據(jù)庫語法之間的差別。
圖數(shù)據(jù)庫的技術結構包含三層,從上往下可分為接口層、計算層、存儲層。在實際使用中可以作為底層存儲引擎,也可以作為底層處理引擎使用,還可以提供接口和SDK供應用程序使用。
在對下場景中,所謂底層存儲,它包含原生圖存儲和非原生圖存儲兩種模式,原生圖存儲指的是優(yōu)化過的數(shù)據(jù),直接可以存儲圖數(shù)據(jù),非原生圖數(shù)據(jù)存儲,指的是把圖數(shù)據(jù)序列化,保存在關系型數(shù)據(jù)庫或其它數(shù)據(jù)庫當中。所謂計算引擎,指的是通過全局掃描和批處理大規(guī)模信息。在上場景中,對于使用Java語言開發(fā)的業(yè)務,使用JDBC方式鏈接圖數(shù)據(jù)庫就可以進行API調(diào)用使用了,此外也可以接入SDK,通過庫函數(shù)調(diào)用圖數(shù)據(jù)庫的接口。
介紹完圖數(shù)據(jù)庫的使用后,我們接著介紹它的分類。圖數(shù)據(jù)庫其實也是Nosql數(shù)據(jù)庫中的一類,Nosql中除了有鍵值數(shù)據(jù)庫Redis、列式數(shù)據(jù)庫Hbase、文檔數(shù)據(jù)庫MongoDB,還有圖數(shù)據(jù)庫Neo4j。圖數(shù)據(jù)庫用于存儲關系,解決了關系型數(shù)據(jù)中關系類數(shù)據(jù)查詢復雜、緩慢的特點,將查詢速度、查詢性能提升了上百倍。
隨著互聯(lián)網(wǎng)3.0時代的快速發(fā)展,圖數(shù)據(jù)量的速度加快,對于圖數(shù)據(jù)庫的關注程度也在不斷提高。在人工智能領域的知識圖譜便可以以圖數(shù)據(jù)庫為依托呈現(xiàn)復雜的人與人的關系;在電信金融證券領域,利用圖數(shù)據(jù)庫可以實現(xiàn)風險控制、反欺詐;在社交網(wǎng)絡、電商購物、搜索引擎領域,利于圖數(shù)據(jù)庫可以實現(xiàn)商品信息的推薦。可以說,新一代互聯(lián)網(wǎng)中,圖數(shù)據(jù)庫必定是存儲、關聯(lián)、利用數(shù)據(jù)最高效的方式。