NebulaGraph x 阿里云計(jì)算巢,云上構(gòu)建超大規(guī)模圖數(shù)據(jù)庫(kù)|深度解讀

近期,杭州悅數(shù)科技有限公司與阿里云計(jì)算巢達(dá)成合作,NebulaGraph 作為首款圖數(shù)據(jù)庫(kù)產(chǎn)品正式入駐阿里云計(jì)算巢,為用戶帶來(lái)了云端一鍵部署企業(yè)級(jí)圖數(shù)據(jù)庫(kù)集群的全新體驗(yàn)。同時(shí),該服務(wù)集成了多款 NebulaGraph 周邊可視化圖數(shù)據(jù)庫(kù)管理工具,讓用戶在云端也可以快速?gòu)臄?shù)據(jù)中獲得洞察力。
近年來(lái),圖數(shù)據(jù)庫(kù)的概念被越來(lái)越多的企業(yè)反復(fù)提及。圖(Graph)是一種存儲(chǔ)實(shí)體,及實(shí)體之間關(guān)系的數(shù)據(jù)結(jié)構(gòu),而圖數(shù)據(jù)庫(kù)(Graph Database)則是一個(gè)使用圖數(shù)據(jù)進(jìn)行存儲(chǔ),同時(shí)使用圖結(jié)構(gòu)進(jìn)行語(yǔ)義查詢的數(shù)據(jù)庫(kù)。
圖數(shù)據(jù)庫(kù)能夠高效地將關(guān)聯(lián)數(shù)據(jù)的實(shí)體作為頂點(diǎn)(vertex)存儲(chǔ),關(guān)系作為邊(edge)存儲(chǔ),并允許對(duì)這些點(diǎn)邊結(jié)構(gòu)進(jìn)行高性能的檢索和查詢,也可以為這些點(diǎn)和邊添加屬性。正因?yàn)榫哂羞@些特性,才使得圖數(shù)據(jù)庫(kù)能夠以最接近直觀認(rèn)知的形式存儲(chǔ)數(shù)據(jù),并且能夠?qū)⑦@些關(guān)系完美地呈現(xiàn)出來(lái)。
為什么要使用圖數(shù)據(jù)庫(kù),而不是關(guān)系型數(shù)據(jù)庫(kù)?
關(guān)系型數(shù)據(jù)庫(kù)實(shí)現(xiàn)了快速的逐行訪問(wèn)和數(shù)據(jù)一致性(ACID 事務(wù)),但當(dāng)數(shù)據(jù)規(guī)模變大且數(shù)據(jù)間關(guān)系變得復(fù)雜時(shí),使用關(guān)系模型檢索時(shí)需要多個(gè)表的屬性執(zhí)行連接操作,數(shù)據(jù)寫(xiě)入時(shí)也需考慮外鍵約束,從而導(dǎo)致較大的額外開(kāi)銷,對(duì)性能有極高的要求。而圖數(shù)據(jù)庫(kù)則在處理復(fù)雜關(guān)系上有著天然優(yōu)勢(shì),尤其在海量數(shù)據(jù)多對(duì)多的復(fù)雜實(shí)體聯(lián)系場(chǎng)景中有著異常突出的表現(xiàn),主要體現(xiàn)在性能、靈活性和敏捷性三個(gè)方面。
其次,圖數(shù)據(jù)庫(kù)是基于圖模型以一種直觀的方式存儲(chǔ)和展示這些關(guān)系。因?yàn)槭腔谑挛镪P(guān)系的模型表達(dá),圖因此也具有天然的可解釋性。
目前,圖數(shù)據(jù)技術(shù)因其在處理海量關(guān)聯(lián)數(shù)據(jù)時(shí)的天然優(yōu)勢(shì)和符合人腦直觀印象的展示形式正被應(yīng)用在多個(gè)行業(yè)的生產(chǎn)環(huán)境和業(yè)務(wù)實(shí)踐場(chǎng)景中。例如,數(shù)據(jù)集成(知識(shí)圖譜)、個(gè)性化推薦、欺詐與威脅檢測(cè)、風(fēng)險(xiǎn)分析與合規(guī)、身份(與控制權(quán))驗(yàn)證、IT 基礎(chǔ)設(shè)施管理、供應(yīng)鏈與物流、社交網(wǎng)絡(luò)研究等,甚至于 AI機(jī)器學(xué)習(xí)、NLP(自然語(yǔ)言處理)、區(qū)塊鏈等新興技術(shù)領(lǐng)域,你都可以看到圖數(shù)據(jù)技術(shù)的身影。
上云的趨勢(shì)在加速,對(duì)于彈性能力提出更高要求
根據(jù) Gartner 的預(yù)計(jì),云服務(wù)一直保持較快的增速和滲透率。大量的商業(yè)軟件,正在從 10 年前完全私有本地逐步轉(zhuǎn)向基于云服務(wù)的商業(yè)模式。 云服務(wù)的一大優(yōu)點(diǎn)是其提供了近乎無(wú)限的彈性能力,這也要求各種基于云基礎(chǔ)設(shè)施的軟件必須有更好的快速?gòu)椥詳U(kuò)縮容能力。
在此背景下,分布式圖數(shù)據(jù)庫(kù) NebulaGraph 成為了阿里云計(jì)算巢上第一家圖數(shù)據(jù)庫(kù)合作伙伴,與阿里云一起幫助更多企業(yè)用戶更好地進(jìn)行低成本、高效率的云上圖數(shù)據(jù)庫(kù)部署。
“對(duì)于數(shù)據(jù)庫(kù)產(chǎn)品來(lái)說(shuō),底層基礎(chǔ)設(shè)施的穩(wěn)定性以及安全性對(duì)于客戶來(lái)說(shuō)至關(guān)重要。阿里云是國(guó)內(nèi)領(lǐng)先的云計(jì)算提供商,我們看重其穩(wěn)定的基礎(chǔ)設(shè)施和安全性,此次與阿里云計(jì)算巢的合作,通過(guò)計(jì)算巢更高效地利用底層資源的彈性擴(kuò)縮容以及便捷的服務(wù)編排等能力,可以使我們的客戶放心、省心地使用基于云上的 NebulaGraph 產(chǎn)品。”NebulaGraph 創(chuàng)始人兼 CEO 葉小萌表示。
云原生,即云上內(nèi)生的云能力,天然就“生于云,長(zhǎng)于云”,基于統(tǒng)一的架構(gòu)和云原生基礎(chǔ)設(shè)施,實(shí)現(xiàn)多云/混合云解決方案、邊云協(xié)同等能力。云原生時(shí)代下,企業(yè)應(yīng)用數(shù)據(jù)的方式發(fā)生了根本性變化,即基于統(tǒng)一云基礎(chǔ)設(shè)施的云原生數(shù)據(jù)庫(kù)、大數(shù)據(jù)解決方案,將成為企業(yè)數(shù)字化轉(zhuǎn)型的數(shù)據(jù)底座。
傳統(tǒng)模式下,企業(yè)采購(gòu)硬件資源,數(shù)據(jù)庫(kù)部署在自建 IDC 并由企業(yè)監(jiān)管和運(yùn)維。企業(yè)的開(kāi)發(fā)人員則采用 DevOps 模式或安排 IT 人員來(lái)管控?cái)?shù)據(jù)庫(kù)。接入業(yè)務(wù)后要時(shí)刻關(guān)注數(shù)據(jù)庫(kù)集群狀態(tài)來(lái)保障可用性,這對(duì)數(shù)據(jù)庫(kù)內(nèi)部實(shí)現(xiàn)不太了解的用戶來(lái)說(shuō)是個(gè)巨大的挑戰(zhàn)。而云計(jì)算作為技術(shù)載體,天然具備跨越時(shí)空的優(yōu)勢(shì),云技術(shù)正在從單一的計(jì)算能力發(fā)展為體系化的創(chuàng)新。對(duì)于企業(yè)來(lái)說(shuō),“上云”是一個(gè)技術(shù)選擇、是企業(yè)數(shù)字化的起點(diǎn),而基于云構(gòu)建新的生產(chǎn)關(guān)系,打造新的業(yè)務(wù)增長(zhǎng)引擎則是一個(gè)戰(zhàn)略選擇。
NebulaGraph 是一個(gè)可靠的分布式、線性擴(kuò)容、性能高效的圖數(shù)據(jù)庫(kù),其 Shared Nothing 和存儲(chǔ)計(jì)算分離的底層架構(gòu)讓它具有了云原生的特征,可以有效降低成本和彈性擴(kuò)縮容。而云端部署則屏蔽了數(shù)據(jù)庫(kù)部署、性能調(diào)優(yōu)、運(yùn)維等繁雜過(guò)程,幾分鐘內(nèi)就可以在云上創(chuàng)建一個(gè)圖數(shù)據(jù)庫(kù),并快速擴(kuò)展計(jì)算、存儲(chǔ)等資源。
作為能夠容納海量關(guān)聯(lián)數(shù)據(jù)并進(jìn)行毫秒級(jí)查詢延時(shí)的高性能圖數(shù)據(jù)庫(kù)產(chǎn)品,NebulaGraph 已經(jīng)被多家行業(yè)領(lǐng)先的科技和通信公司應(yīng)用在反欺詐、風(fēng)險(xiǎn)控制、社區(qū)發(fā)現(xiàn)等場(chǎng)景,其中某頭部互聯(lián)網(wǎng)公司的 NLP 團(tuán)隊(duì)也基于 NebulaGraph 搭建了自己的圖數(shù)據(jù)庫(kù)平臺(tái),目前已經(jīng)有 60多條業(yè)務(wù)線接入使用,在智能助理、搜索召回等業(yè)務(wù)場(chǎng)景均已落地。
開(kāi)箱即用:快速部署更方便
由于云廠商提供了統(tǒng)一的基礎(chǔ)設(shè)施,企業(yè)無(wú)需自行采購(gòu)硬件,還可以根據(jù)業(yè)務(wù)的靈活度和資源需求彈性調(diào)配云資源,實(shí)現(xiàn)快速上線。基于阿里云計(jì)算巢提供的ROS(資源編排),NebulaGraph實(shí)現(xiàn)了云上自動(dòng)化部署,幾分鐘內(nèi)即可交付一個(gè)圖數(shù)據(jù)庫(kù)集群,相比傳統(tǒng)以天、甚至以周為單位的交付周期,有極大的提升。
其次,NebulaGraph Cloud 支持包年包月與按量付費(fèi)的靈活付費(fèi)方式,節(jié)省新購(gòu)設(shè)備、自建機(jī)房等一次性建設(shè)費(fèi)用,當(dāng)不再需要的時(shí)候可以及時(shí)銷毀,顯著降低了研發(fā)成本。為了進(jìn)一步的優(yōu)化體驗(yàn),下一階段 NebulaGraph 還將結(jié)合自身在云上的優(yōu)化特性和測(cè)試結(jié)果,陸續(xù)推出高性價(jià)比的云服務(wù)器規(guī)格套餐,讓用戶以更低的價(jià)格獲得更高的性能,大家不妨也拭目以待一下。
高可用性:數(shù)據(jù)備份更安心
- 架構(gòu)高可用
NebulaGraph 集群包含三類服務(wù),即 Query Service、Storage Service 和 Meta Service。
1、Meta Service 采用 Leader/Follower 架構(gòu)。 Leader由集群中所有的 Meta Service節(jié)點(diǎn)選出,然后對(duì)外提供服務(wù);Followers 處于待命狀態(tài),并從 Leader 復(fù)制更新的數(shù)據(jù)。一旦 Leader 節(jié)點(diǎn) Down 掉,會(huì)再選舉其中一個(gè) Follower 成為新的 Leader。
2、 Query Service 對(duì)應(yīng)的進(jìn)程是 nebula-graphd ,它由完全對(duì)等、無(wú)狀態(tài)、無(wú)關(guān)聯(lián)的計(jì)算節(jié)點(diǎn)組成,計(jì)算節(jié)點(diǎn)之間相互無(wú)通信。
3、Storage Service 采用 Shared-nothing 的分布式架構(gòu)設(shè)計(jì),共有三層,最底層是Store Engine,它是一個(gè)單機(jī)版 Local Store Engine,提供了對(duì)本地?cái)?shù)據(jù)的get/put/scan/delete 操作,該層定義了數(shù)據(jù)操作接口,用戶可以根據(jù)自己的需求定制開(kāi)發(fā)相關(guān)Local Store Plugin。
在Local Store Engine之上是 Consensus 層,實(shí)現(xiàn)了Multi Group Raft,每一個(gè)Partition都對(duì)應(yīng)了一組Raft Group。
- 數(shù)據(jù)可靠性
NebulaGraph 數(shù)據(jù)存儲(chǔ)使用阿里云的云盤(pán)產(chǎn)品。云盤(pán)是阿里云為云服務(wù)器ECS提供的數(shù)據(jù)塊級(jí)別的塊存儲(chǔ)產(chǎn)品,具有低時(shí)延、高性能、持久性、高可靠等特點(diǎn)。云盤(pán)采用分布式三副本機(jī)制,為 ECS 實(shí)例提供極高的數(shù)據(jù)可靠性保證。
極致彈性:存算分離更可靠
NebulaGraph 采用存儲(chǔ)與計(jì)算分離的架構(gòu)。存儲(chǔ)計(jì)算分離有諸多優(yōu)勢(shì),最直接的優(yōu)勢(shì)就是,計(jì)算層和存儲(chǔ)層可以根據(jù)各自的情況彈性擴(kuò)容、縮容。存儲(chǔ)計(jì)算分離還帶來(lái)了另一個(gè)優(yōu)勢(shì):使水平擴(kuò)展成為可能,通過(guò)云上極致彈性能力,保障自身擴(kuò)縮容需要。
NebulaGraph 在集群部署時(shí)會(huì)創(chuàng)建兩個(gè)彈性伸縮組,一個(gè)對(duì)應(yīng) Graph 服務(wù),另一個(gè)對(duì)應(yīng) Storage 服務(wù)。為了更好的擴(kuò)縮容體驗(yàn),我們做了以下考量:
1.將部分控制權(quán)交到用戶手里。如果是 Graph 服務(wù)只需要將 ECS 資源按照目標(biāo)數(shù)量彈性伸縮即可,因?yàn)?Graph 本身是無(wú)狀態(tài)的;如果是 Storage 服務(wù),我們會(huì)在編排頁(yè)面提供一個(gè)控制開(kāi)關(guān),用于彈性擴(kuò)容后是否自動(dòng)平衡數(shù)據(jù),因?yàn)樵跇I(yè)務(wù)高峰期時(shí)數(shù)據(jù)搬遷會(huì)影響服務(wù)穩(wěn)定性,所以何時(shí)去執(zhí)行 balance 操作可以由用戶自己來(lái)完成,部署的 Dashboard 工具也支持這個(gè)操作。
2.安全保護(hù)策略。大家都知道數(shù)據(jù)庫(kù)服務(wù)數(shù)據(jù)不丟失是第一要素,因此我們對(duì) Storage 伸縮組啟用了刪除保護(hù)開(kāi)關(guān)以防止用戶誤操作,另外當(dāng)用戶需要縮容時(shí),需要先在 Dashboard 界面找到對(duì)應(yīng)伸縮組管理的 Storage 節(jié)點(diǎn)執(zhí)行數(shù)據(jù)分片移除操作,等到數(shù)據(jù)分片清空后才會(huì)接受彈性伸縮lifecycle-hook請(qǐng)求。
除此之外,阿里云的彈性擴(kuò)縮容提供了豐富的伸縮規(guī)則與定時(shí)任務(wù)能力,用戶可以針對(duì)業(yè)務(wù)波動(dòng)情況以及應(yīng)用場(chǎng)景(OLTP或者OLAP)動(dòng)態(tài)伸縮 Graph 節(jié)點(diǎn),針對(duì)CPU平均使用率彈性擴(kuò)容 Storage 節(jié)點(diǎn)。
安全可靠:角色身份可溯源
NebulaGraph 支持嚴(yán)格的角色訪問(wèn)控制和 LDAP(Lightweight Directory Access Protocol)等外部認(rèn)證服務(wù),能夠有效提高數(shù)據(jù)安全性。當(dāng)客戶端連接到 NebulaGraph 時(shí),NebulaGraph 會(huì)創(chuàng)建一個(gè)會(huì)話,會(huì)話中存儲(chǔ)連接的各種信息,如果開(kāi)啟了身份驗(yàn)證,就會(huì)將會(huì)話映射到對(duì)應(yīng)的用戶。
同時(shí),NebulaGraph 內(nèi)置角色權(quán)限,用戶可以把角色分配給創(chuàng)建的用戶,從而實(shí)現(xiàn)訪問(wèn)控制。
目前,NebulaGraph 與阿里云計(jì)算巢正在開(kāi)展限時(shí)免費(fèi)試用活動(dòng),需要試用的用戶登錄到阿里云計(jì)算巢后,先申請(qǐng)?jiān)囉脵?quán)限,填寫(xiě)信息審批通過(guò)后,就可以看到一個(gè)完全白屏化的服務(wù)創(chuàng)建頁(yè)面。
在引導(dǎo)步驟里填寫(xiě)必須的配置參數(shù),一鍵提交后等待 5 分鐘左右即可體驗(yàn) NebulaGraph,隨后正常使用圖數(shù)據(jù)的各種功能即可,大大降低了用戶部署數(shù)據(jù)庫(kù)的門檻。
歡迎有興趣的小伙伴直接去阿里云計(jì)算巢官網(wǎng)體驗(yàn) NebulaGraph 服務(wù)。
[免責(zé)聲明]
原文標(biāo)題: NebulaGraph x 阿里云計(jì)算巢,云上構(gòu)建超大規(guī)模圖數(shù)據(jù)庫(kù)|深度解讀
本文由作者原創(chuàng)發(fā)布于36氪企服點(diǎn)評(píng);未經(jīng)許可,禁止轉(zhuǎn)載。




