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