天天看點

DTCC 2019 | 前沿技術應用知多少? 阿裡雲圖資料庫GDB帶你探索互聯資料的奧秘

摘要:在DTCC 2019大會上,阿裡雲智能資料庫産品事業部進階技術專家王炎進行了題目為《探索互聯資料的奧秘——圖資料庫GDB》的演講,阿裡圖資料庫GDB是一種支援屬性圖模型、用于處理高度連接配接資料查詢與存儲的實時、可靠、可擴充的線上資料庫服務。本次演講深入淺出的介紹了圖資料庫的概念和使用場景,以及如何快速建構基于高度連接配接的資料集的應用程式。

DTCC 2019 | 前沿技術應用知多少? 阿裡雲圖資料庫GDB帶你探索互聯資料的奧秘
專家簡介:王炎(花名:夜炎),阿裡雲智能資料庫産品事業部進階技術專家。在分布式系統、存儲領域以及NoSQL系統研發領域經驗豐富。18年加入阿裡巴巴集團,現在阿裡負責圖資料庫系統相關研發工作。

直播回放

連結:

https://yq.aliyun.com/live/1050

議題PPT下載下傳,戳這裡!

https://yq.aliyun.com/download/3555

申請圖資料庫GDB公測資格

https://page.aliyun.com/form/act124314140/index.htm

本次演講主要分為三個部分,首先介紹圖資料庫GDB的簡介和場景。之後分享圖資料庫GDB的特點,最後介紹圖資料庫GDB的一些使用範例。

一、圖資料庫GDB的簡介和場景

圖資料庫(Graph Database, 簡稱GDB)是阿裡巴巴自主研發的支援屬性圖模型,用于處理高度連接配接資料查詢與存儲,并且實時可靠的線上圖資料庫服務。支援TinkerPop Gremlin查詢語言,可以幫助使用者快速建構基于高度連接配接的資料集的應用程式。經常有人會問圖資料庫是不是存儲圖檔的資料庫,或者說是不是提供地圖服務的資料庫,圖資料庫中的圖是資料結構中圖的概念,它的關鍵元素是點、邊和屬性。圖資料庫的通俗定義是一個使用圖結構進行語義查詢的資料庫,它使用節點、邊和屬性來表示和存儲資料。該系統的關鍵概念是圖,它直接将存儲中的資料項,與資料節點和節點間表示關系的邊的集合相關聯。

DTCC 2019 | 前沿技術應用知多少? 阿裡雲圖資料庫GDB帶你探索互聯資料的奧秘

接下來簡單介紹一些使用圖資料庫的場景,比如社交場景就是一個非常典型的業務場景,圖資料庫可以輕松應對海量高度互連社交資料的實時存儲和高效查詢,幫助您快速建構複雜的社交網絡系統。目前,社交場景有一個被廣泛提及的理論——六度理論,通過六度關系,大家可以認識地球上的所有人。是以,在一個典型的社交網絡中,常常會存在“誰認識誰,誰上過什麼學校,誰常住什麼地方,誰喜歡什麼餐館之類的查詢”,傳統關系型資料庫對于超過3度的查詢往往會很低效甚至無法支援,但圖資料庫從基因層面提供了解決方案,輕松應對社交網絡的各種複雜存儲和查詢場景。

比如,使用GBD來支援集團部業務的時候,需要處理淘寶使用者和使用者之間的親戚關系,當使用者去更新自己長輩的資訊後,圖資料庫可以實時判斷是否會形成環,以此來進行相關資訊的校驗,另外,使用圖資料庫進行多跳查詢的時候,可以很輕松的拉取好友的好友,以及多跳好友,相比于Mysql資料庫,GDB能夠提供更好的性能。

第二種典型的業務場景是金融欺詐檢測場景,在金融領域,圖資料庫經常用于欺詐檢測場景。例如,通過使用貸款、分期消費者的聯系人(或者聯系人的聯系人)信用資訊,對使用者進行信用評分,如果評分較低,則拒絕貸款或者提升利率;通過申請人的個人資訊(包括電話号碼、家庭住址),判斷申請人資訊是否屬實。通常,欺詐者是通過“黑市”購買的使用者資訊然後拼湊出的“個人資訊”,并且這些資訊會被反複使用,使用圖資料庫,可以快速的發現申請人提供的個人資訊與現有的使用者資訊的關系。

第三種典型的業務場景是實時推薦場景,圖資料庫非常适合實時推薦場景。通過将使用者的購買行為,位置,好友關系,收藏等資料實時的存儲在圖資料庫中,然後利用圖資料庫能對高度互連資料提供高效查詢的特點,通過各種次元的快速查詢實時進行多元度個性化推薦。例如,在某APP中,通過使用者位置及以前的購買行為資訊,當某使用者A到達某商場B,APP可以向使用者實時推薦附近的門店及商品等資訊。第四種典型的業務場景是知識圖譜場景,圖資料庫可以快速的建構知識圖譜。将圖譜資料存儲在圖資料庫中,既可以通過外部輸入實時更新,也可以對圖資料庫内部圖譜資訊進行分析來不斷發現并完善圖譜資料。比如,基于圖資料庫,可以快速實作像針對足球明星的知識圖譜應用,幫助使用者浏覽,發現感興趣的資訊。

但目前知識圖譜是一種比較新興的技術,還沒有一個比較完善的開源産品供大家來使用。最後一種業務場景是網絡/IT運維場景,圖資料庫非常适合網絡/IT營運相關場景,比如,通過将路由器,交換機,防火牆,伺服器等各種網絡裝置和終端及其拓撲資訊存儲在圖資料庫中,當某伺服器或終端遭受惡意攻擊或者受到感染時,可以快速通過圖資料庫快速分析并找到傳播路徑,然後進行相關的追蹤及處理。

二、圖資料庫GDB的特點

DTCC 2019 | 前沿技術應用知多少? 阿裡雲圖資料庫GDB帶你探索互聯資料的奧秘

圖資料庫GDB和現有的圖的系統是有比較大的差異的,第一,GDB是一個雲原生的、自運維的資料庫服務,也就是說GDB是一個開箱即用的服務,隻需要通過公有雲申請即可使用,而無需使用一些開源的或者其他的商業版本來托管運維,同時GDB是高可用的,通過一個主備的HA架構,當主節點的出現故障的時候,會自動的切換到備用的計算節點,可以最大程度的保證業務不受中斷。同時在存儲方面也使用了多份存儲和自動備份的方式來讓使用者的存儲資料不會丢失。

第二,GDB是易于使用的,現有的圖系統還是更偏向于分析類的系統,使用場景常常是通過Mysql或者是阿裡的ODBS準備好資料,批量導入到圖系統中進行分析,最後把結果導入到緩存系統中供線上的業務進行查詢。這種情況的應用性并不是非常好,但對于圖資料庫GDB來說,它提供了一個OLTP的事務保證,是以在進行查詢的同時,也可以對資料庫的内部資料進行一個并發的更新,且完全不會導緻資料内部關系的損壞,其次,圖資料庫GDB具有很好的擴充性,目前存儲是自動彈性擴容的,計算能力也可以根據使用者的需求來進行調整。

第三,GDB具有更快的查詢和更新性能,圖資料庫GDB擁有毫秒級的查詢時間和百萬級的周遊能力,GDB中包括計算圖的計算層,存儲層都是自主研發的,是以能夠掌控全鍊路上面的所有系統,是以可以更好的建構統計資訊和代價估算的子產品,通過代價的估算可以更好的選擇查詢政策、并行政策,是以可以使查詢和更新性能更快,這也是使用開源的大資料系統很難做到的一點。

第四,GDB完整支援TinkerPop3.x開放标準,這樣可以通過開源的生态去擷取更好的可遷移性,這也是圖資料庫GDB和其他資料庫不太一樣的地方。

接下來對圖資料庫GDB的部分特性進行詳細的介紹,首先是服務高可用,GDB高可用版本采用一主一備的經典高可用架構,主備都采用獨立的圖資料庫節點,計算與存儲分離,主備之間通過複制實作資料同步,一旦主庫發生故障,将迅速檢測并觸發主備切換來保證可用性。備庫故障對業務無影響,但會快速被檢測到并觸發備庫自愈。未來提供一寫多讀執行個體後,所有讀寫執行個體将共享底層存儲資源,提升擴充性的同時也将帶來整體存儲成本的進一步降低。也就是說,GDB是通過前端的負載均衡把請求轉發到主資料庫節點,之後通過後端的管控來監控主執行個體,如果主執行個體出現故障,管控會自動切換到備用實力,同時因為使用的是目前主流的共享存儲架構,是以所有的資料都不會受到任何的影響,這樣的好處是使用者無需搭建自己的架構來保證節點的可用性。

DTCC 2019 | 前沿技術應用知多少? 阿裡雲圖資料庫GDB帶你探索互聯資料的奧秘

其次,GDB提供備份與恢複的功能,預設的政策是通過配置的方式,讓整個圖系統的資料自動儲存到對象存儲的OSS中,同時GDB也支援人工操作的方式進行備份,主動的生成資料庫的備份并上傳到對象存儲中,當因為操作不當導緻資料損壞,或是因為業務上的決策需要,便可以将資料恢複到任意的指定的時間點上,因為GDB是把一段時間内的所有事務日志全部備份下來,是以GDB可以指定到秒級别的事務恢複。

DTCC 2019 | 前沿技術應用知多少? 阿裡雲圖資料庫GDB帶你探索互聯資料的奧秘

GDB在自動索引和Schema-Free上也提供了更加便捷的機制,因為希望使用者能夠去更加友善的使用圖系統,是以GDB提供自動索引的功能,自動索引是指圖的所有的點邊關系,所有點的屬性、邊的屬性都會建立B-Tree類型的索引,這樣使用者完全不用關心某一個屬性是否需要建立索引,或者什麼類型的索引。是以在進行字首查詢的時候,或者說需要比較屬性之間大小的時候,便可以通過索引來提供最優的查詢方式,節省大量DBA的相關工作。對于Schema,目前采用的是Schema-Free的方式,Schema-Free最大的好處是使用者無需考慮資料需要符合怎樣的資料類型,表需要多少列,也就是說,在圖資料庫GDB中,表所支援的列是不受限制的,是以,對于業務方面,GDB能夠對開發的應用型提供最大的支援。

DTCC 2019 | 前沿技術應用知多少? 阿裡雲圖資料庫GDB帶你探索互聯資料的奧秘

在監控告警方面,GDB提供了原生的監控和告警的平台,可以通過控制台取到所有的負載資訊,包括CPU,IOPS的使用情況等,在資料導入方面,GDB支援從對象存儲裡面将使用者的資料直接導入進來,目前提供的導入形式是線上導入,使用者在查詢或者是在正常使用的時候,無需暫停現有的業務,可以直接可以導入新的資料,目前,離線導入的方式也正在開發中,離線導入能夠提供更好的導入性能,使用者在初次配置後,可以把現有資料完整的通過重置執行個體的方式導入進來,這樣能夠更快的啟動圖資料庫GDB及相關服務。

DTCC 2019 | 前沿技術應用知多少? 阿裡雲圖資料庫GDB帶你探索互聯資料的奧秘

最後來讨論一下圖資料庫GDB和關系型資料庫的差別,很多人可能都會疑惑,圖資料庫GDB和關系型資料庫到底有什麼不同?直接使用Mysql是不是也可以提供相應的服務?其實對于高度連接配接的資料模型的話,這兩種資料庫是有明顯差别的,如果查詢隻有一跳,最多兩跳的情況下,圖資料庫GDB和Mysql是沒有太大差别的,甚至Mysql能夠提供毫秒級的查詢能力,但是當資料關系的深度增加後,Mysql的查詢性能便會急劇下降,下降的主要原因是因為進行多跳查詢的時候,會進行自身表和自身表的join操作,對于這種遞歸的join操作,目前Mysql沒能提供一個很好的解決方案。對于資料是社交類的使用者,在進行三條以上的查詢時,Mysql的查詢時間很可能已經超過一分鐘了,但對于圖資料庫GDB依然能夠提供一個毫秒級的查詢時間。是以圖資料庫GDB可以為高度連接配接的資料提供一個更好的使用體驗。

DTCC 2019 | 前沿技術應用知多少? 阿裡雲圖資料庫GDB帶你探索互聯資料的奧秘

GDB的内部抽象是一個屬性圖的抽象模型,也是現在的最主流的圖模型,目前也在考慮提供學術領域的RDF模型。在用戶端SDK中,圖資料庫GDB支援多種程式設計語言的SDK,包括java、python、.net以及rest:api,相容TinkerPop 3.4.x及以上版本,目前,也緊密跟蹤社群的動态,一旦釋出4.0版本,将會第一時間進行支援。

三、圖資料庫GDB的使用範例

DTCC 2019 | 前沿技術應用知多少? 阿裡雲圖資料庫GDB帶你探索互聯資料的奧秘

首先是社交領域的範例,社交領域主要關注的是人和人之間的關系,比如說誰是誰的好友,誰關注的誰,或者說誰對誰做了評論,這些事務在社交軟體裡是非常頻繁的,有一些操作是比較重度,在Mysql中難以做到的,比如查找排名前三的網絡大V,或者是查找 兩個使用者之間限定查詢深度的最短路徑,在圖資料庫GDB中可以提供一個亞秒級别的查詢性能,目前最短路徑是使用的最為廣泛的算法。

DTCC 2019 | 前沿技術應用知多少? 阿裡雲圖資料庫GDB帶你探索互聯資料的奧秘

其次是推薦場景的範例,推薦場景往往是基于人的,比如獲得一個人評價過的所有書,或者是查詢也評價過這些書的其他人看過的,但這個人沒看過的書的清單,然後對這個人進行推薦,可以看到寫出來的查詢語句還是比較簡單的。

DTCC 2019 | 前沿技術應用知多少? 阿裡雲圖資料庫GDB帶你探索互聯資料的奧秘

最後是人與人關系的範例,這個例子比較直接,比如通過出邊的方式去查詢一下劉備的義弟到底是誰,或者通過去拉取劉備和曹操所有的下屬取交集來誰在曹操和劉備陣營都效力過。